Visual Studio

Welcome to the Visual Studio UserVoice site. Let us know what you would like to see in future versions of the Visual Studio suite of products. This site is for suggestions and ideas. If you need to file a bug, visit the Visual Studio Connect site: http://connect.microsoft.com/visualstudio.

ASP.NET Runtime/Web Tooling suggestions have moved! All your ideas, including your votes, have been transferred and are searchable in the ASP.Net Uservoice forum. Please submit any new ASP.NET Runtime/Web Tooling suggestions, or vote on existing suggestions by going to http://aspnet.uservoice.com.

We look forward to hearing from you!

Thanks – Deon Herbert
Visual Studio Team

Terms of Service and Privacy Policy

I suggest you ...

You've used all your votes and won't be able to post a new idea, but you can still search and comment on existing ideas.

There are two ways to get more votes:

  • When an admin closes an idea you've voted on, you'll get your votes back from that idea.
  • You can remove your votes from an open idea you support.
  • To see ideas you have already voted on, select the "My feedback" filter and select "My open ideas".
(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can vote and comment on it.

If it doesn't exist, you can post your idea so others can vote on it.

Enter your idea and we'll search to see if someone has already suggested it.

  • Hot ideas
  • Top ideas
  • New ideas
  1. Add a Command property to SqlException

    When a SqlException is thrown, it will always be thrown by invoking an execute statement on the SqlCommand object. It would be helpful to have access to the actual SqlCommand object when handling the exception (which may be caught by some logging functionality far removed from the code that actually generated the exception.

    Right now, I have to catch and then rethrow the exception after adding the individual parameter values that were passed to the execute method.

    I usually let exceptions propagate up the call stack until a central handler can log the exception (and send them to me via…

    1 vote
    Vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)
      You have left! (?) (thinking…)
      0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
    • Provide reassurance of strict security practices for users of Visual Studio Online

      Before we can use Visual Studio online for our business, which builds software to protect Protected Health Information (PHI), we would want to see some stringent certifications, reassuring us of secure computing practices by Microsoft as a host of the Visual Studio Online. Microsoft already provides a number of certifications regarding Windows Azure. See the Microsoft compliance language for Azure as an example: http://azure.microsoft.com/en-us/support/trust-center/compliance/
      Please make it clear that Visual Studio Online is operated in a similarly strict manner.

      19 votes
      Vote
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        I agree to the terms of service
        Signed in as (Sign out)
        You have left! (?) (thinking…)
        0 comments  ·  Cloud  ·  Flag idea as inappropriate…  ·  Admin →
      • compare equality of ranges of items in collections

        Currently NETFX has weak/incomplete support for comparing the equality of ranges of items in arrays, lists, strings. This is such a fundamental and common operation yet it is still missing/incomplete!

        Please consider adding the following simple and fast method to System.Buffer to compare the equality of a range of items in a large array of primitives:

        public static bool BlockEquals(System.Array a, int aOffset, System.Array b, int bOffset, int count);

        The proposed BlockEquals() method would be consistent with the existing BlockCopy() method in System.Buffer:

        public static void BlockCopy(System.Array src, int srcOffset, System.Array dst, int dstOffset, int count);

        Like BlockCopy(), the proposed…

        1 vote
        Vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          I agree to the terms of service
          Signed in as (Sign out)
          You have left! (?) (thinking…)
          0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
        • make T4 ".tt" use "code-behind" files

          I love the T4 ".tt" files, in particular the ability to auto-generate source code (a ".cs" output file) at compile-time within Visual Studio. I have found multiple uses for that. Quite convenient. Thanks for adding that feature to Visual Studio!

          However, wouldn't it be better if it used "code-behind" files like how ASP.NET does?

          Currently, a ".tt" file contains both T4 instructions/syntax and embedded C# code, both in the same ".tt" file. The lesson learned in ASP.NET is that it's better to extract the embedded C# code out of the HTML and store it in a separate-but-linked ".cs" file. I…

          1 vote
          Vote
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            I agree to the terms of service
            Signed in as (Sign out)
            You have left! (?) (thinking…)
            0 comments  ·  Editor  ·  Flag idea as inappropriate…  ·  Admin →
          • initialize an array "sparsely" or in non-sequential order

            C# is a wonderful accomplishment, but further improvements are still desirable. I would like to describe a helpful feature that is supported in ISO standard C, but half-present and half-missing in C#.

            In the C standard, you can initialize an array "sparsely" or in non-sequential order. For example, this feature is quite useful (and more reliable) for making a translation table that translates an input value (such as an enumeration value) to an output value in instant O(1) time.

            In ISO C99, you can write:
            int a[6] = { [4] = 29, [2] = 15 };

            And it produces the…

            1 vote
            Vote
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              I agree to the terms of service
              Signed in as (Sign out)
              You have left! (?) (thinking…)
              0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
            • TF225001 creating a build definition requires a build controller be defined for this team project collection. there may not be any controll

              I am using VS2012
              TF225001 creating a build definition requires a build controller be defined for this team project collection. there may not be any controllers configured or you may not have permissions to view them. contact your team foundation server administrator

              1 vote
              Vote
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                I agree to the terms of service
                Signed in as (Sign out)
                You have left! (?) (thinking…)
                0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
              • Check overflow without throwing exception

                The C# "checked" and "unchecked" keywords are great, but I wish the .NET Framework had some simple functions (written in native assembler) for reporting overflow *without* throwing a time-consuming exception. This is especially useful for situations where the overflow is expected to occur commonly.

                Also for situations where throwing overflow exceptions is unacceptable because it enables a Denial-of-Service attack where the attacker triggers millions of overflow exceptions to delay the service (remember throwing .NET Exceptions is expensive).

                I suggest implementing functions in System.Int64, UInt64, Int32 (etc) like the following:

                // return true if successful, or false if overflow.
                public static…

                1 vote
                Vote
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  I agree to the terms of service
                  Signed in as (Sign out)
                  You have left! (?) (thinking…)
                  0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                • Add option to disable "*" on every line of multi-line C# comments

                  In the C# text editor, I wish there was an option to disable the behavior where it automatically inserts an asterisk (at the beginning of the new line) every time you press the Enter key inside a /* multi-line comment */

                  1 vote
                  Vote
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    I agree to the terms of service
                    Signed in as (Sign out)
                    You have left! (?) (thinking…)
                    0 comments  ·  Editor  ·  Flag idea as inappropriate…  ·  Admin →
                  • fix some issues in System.Numerics.BigInteger

                    Great work on System.Numerics.BigInteger. It is quite nice, and smartly designed, and will ultimately be appreciated by many people. Thanks for creating it. However it is still missing a few significant things.

                    It lacks an efficient constructor. I wish you could add a constructor like this:

                    BigInteger(uint[] data, int length, bool isNegative);

                    Currently it only has a BigInteger(byte[]) constructor, however it is a problematic constructor:

                    (1) It has messy/tricky (mistake-prone) handling of signed numbers (explained in the documentation but nevertheless tricky). It would be better to simply use a separate boolean parameter to indicate sign: Simple, reliable, efficient, no tricky…

                    1 vote
                    Vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      I agree to the terms of service
                      Signed in as (Sign out)
                      You have left! (?) (thinking…)
                      0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                    • Remove Visual Basic from Visual Studio 2013

                      I love VS.NET but I never write code in Visual Basic. I always write code in C#.

                      VS.NET 2013 does not allow anyone to un-install visual basic from vs.net

                      older versions of vs.net did used to allow people to be able to pick the languages. but vs.net always installs the visual basic.

                      please allow me to remove visual basic from vs.net

                      1 vote
                      Vote
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        I agree to the terms of service
                        Signed in as (Sign out)
                        You have left! (?) (thinking…)
                        0 comments  ·  IDE  ·  Flag idea as inappropriate…  ·  Admin →
                      • fix issues with checking for NULL

                        In C#, it is very easy to make the mistake of failing to realize that "a == null" invokes an operator == overload function defined in the class of "a". In other words, surprisingly, "a == null" is NOT always the same as System.Object.ReferenceEquals(a,null).

                        Please consider adding the following simple, convenient, unambiguous functions to System.Object:

                        public static bool IsNull(object obj) { return obj == null; }
                        public static bool IsNotNull(object obj) { return obj != null; }

                        Then you can use them like this:

                        MyClass a = new MyClass();
                        ...
                        if (object.IsNull(a)) { ... }

                        The proposed object.IsNull(a) always returns…

                        1 vote
                        Vote
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          I agree to the terms of service
                          Signed in as (Sign out)
                          You have left! (?) (thinking…)
                          0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                        • improve Null Coalescing operator ("??")

                          The idea of the C# Null Coalescing operator ("??") is great but the current implementation is defective and needs to be fixed, in my opinion. For starters, I will explain problems using "??" in conjunction with "foreach".

                          If you jump ahead and say the answer is System.Linq.Enumerable.Empty<T>() then my reply is: I know it exists but it is problematic, as I will explain.

                          Firstly, to refresh our memory, note that "foreach" throws NullReferenceException if the collection is null (as opposed to empty non-null). This exception can be avoided in the case of iterating thru the chars of a string as…

                          1 vote
                          Vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            I agree to the terms of service
                            Signed in as (Sign out)
                            You have left! (?) (thinking…)
                            0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                          • Please provide NT Service monitoring

                            Please provide NT Service monitoring

                            53 votes
                            Vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              I agree to the terms of service
                              Signed in as (Sign out)
                              You have left! (?) (thinking…)
                              5 comments  ·  Application Insights  ·  Flag idea as inappropriate…  ·  Admin →
                            • add BitScanForward and BitScanReverse functions to .NET Framework, like in C++.

                              The .NET Framework seems to be missing functions to give us safe access to the BitScanForward and BitScanReverse x86 instructions, for 32-bit and 64-bit integers.

                              Following you can see the C/C++ functions documented but there is no C# or .NET equivalent.
                              http://msdn.microsoft.com/en-us/library/wfd9z0bb(v=vs.100).aspx
                              http://msdn.microsoft.com/en-us/library/fbxyd7zd(v=vs.100).aspx

                              If you are bothered by the fact that BitScanForward returns 2 values (boolean and index), or if you wish to make the name less ambiguous than "BitScanForward", then you could make a slight modification as follows and name it "CountTrailingZeroBits".

                              int CountTrailingZeroBits64(UInt64 inValue)
                              {
                              int i;
                              return _BitScanForward64(&i, inValue) ? i : 64;
                              }

                              And similarly for…

                              1 vote
                              Vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                I agree to the terms of service
                                Signed in as (Sign out)
                                You have left! (?) (thinking…)
                                0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                              • Provide a backup service for Visual Studio Online

                                As a paid subscriber Microsoft does not provide a back to Visual Studio Online. If a user accidentally deletes a project there is no way to recover.

                                89 votes
                                Vote
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  I agree to the terms of service
                                  Signed in as (Sign out)
                                  You have left! (?) (thinking…)
                                  2 comments  ·  Team Foundation Server  ·  Flag idea as inappropriate…  ·  Admin →
                                • Rename Visual Basic to V#

                                  I believe it is time that the acronym BASIC (Beginner's All-purpose Symbolic Instruction Code) be disassociated from VB.

                                  1 vote
                                  Vote
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    I agree to the terms of service
                                    Signed in as (Sign out)
                                    You have left! (?) (thinking…)
                                    0 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →
                                  • Include fully featured grid control in LightSwitch HTML client

                                    LightSwitch HTML client grid that includes built in column filter, sort, group, or edit features. Not having this feature is a major barrier to using LightSwitch HTML for LOB applications.

                                    38 votes
                                    Vote
                                    Sign in
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      I agree to the terms of service
                                      Signed in as (Sign out)
                                      You have left! (?) (thinking…)
                                      0 comments  ·  LightSwitch  ·  Flag idea as inappropriate…  ·  Admin →
                                    • Add folders for Visual F# Projects

                                      Realted to this post: http://stackoverflow.com/questions/5918534/why-cant-i-add-a-subfolder-in-a-f-project

                                      When using type providers, you ofen need to keep a static file to declare the type. Having a folder where I keep all of these files (versus scattered in my project's main folder) would be very helpful

                                      5 votes
                                      Vote
                                      Sign in
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        I agree to the terms of service
                                        Signed in as (Sign out)
                                        You have left! (?) (thinking…)
                                        0 comments  ·  Languages - F# Tools  ·  Flag idea as inappropriate…  ·  Admin →
                                      • Group solutions by branch in Team Explorer - Home

                                        When you have multiple solutions in each branch, the list of available solutions for a TFS team project grows pretty quickly. It even says, "There were more solutions found, open them from [here]", which leads to the Source Control Explorer. It would be useful to group the solutions by branch, tree-view style, so that you could pick the right branch first, and then the right solution, because now you often find the right solution first (it's in black instead of gray), but then it's one from the wrong branch.

                                        3 votes
                                        Vote
                                        Sign in
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          I agree to the terms of service
                                          Signed in as (Sign out)
                                          You have left! (?) (thinking…)
                                          0 comments  ·  Team Foundation Server  ·  Flag idea as inappropriate…  ·  Admin →
                                        • add heirarchy navigation combos when open .js and .config files

                                          When opening java script file or configuration file, it will be helpful if there are the top two dropdown menus that we get when opening c# or vb.net classes files

                                          3 votes
                                          Vote
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            I agree to the terms of service
                                            Signed in as (Sign out)
                                            You have left! (?) (thinking…)
                                            0 comments  ·  IDE  ·  Flag idea as inappropriate…  ·  Admin →
                                          • Don't see your idea?

                                          Feedback and Knowledge Base