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. Updating the Basic setup and deployment

    InstallShield is sucks complicated , too much complicated , why don't you just update the basic setup and deployment and add more options in there , it gonna be more helpful and useful than the installshield ..

    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  ·  Visual Studio Ultimate  ·  Flag idea as inappropriate…  ·  Admin →
    • 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 →
      • Allow to save tests runs and restore crashed ones - Visual Studio Test Explorer

        Save the last run in a temporary location and been able to loaded at any time. Been working with Visual Studio Test 2010 and this always been a problem, now with Visual Studio 2013 Update 2 I'm getting random crashes at the middle of my work, is becoming annoying and a wastes of time, every-time Visual Studio crashes or become unresponsive I have to rerun the whole regression ( > 1000 test, ~2 hours to complete)

        17 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  ·  Visual Studio Test and Lab Management  ·  Flag idea as inappropriate…  ·  Admin →
        • Add a button to sort the product backlog based on the rate between Business Value and Effort

          We want to deliver the highest value to our customers as soon as possible, so it make sense (as the ALM MCSD certification describes), to sort the product backlog based on this rate:
          Business Value / Effort (story points).

          So, the higher ranked features requiring the less effort are developed first.

          We do that sorting by editing an excel file, querying TFS / adding a new list to the worksheet, adding the "priority backlog" column to the list, sorting descending by that column, copying the entire column out of the list in order to backup the original priority values, adding…

          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…)
            1 comment  ·  Team Foundation Server  ·  Flag idea as inappropriate…  ·  Admin →
          • Integrate Azure to Lab Management

            Azure as Virtual Machine Manager must be integrated in to the Microsoft Test Manager.

            So those developers, like i am an many others, who does not have a whole infrastructure with SCVMM installed would be able to fully utilize ALM patterns to test their apps within the custom environments in fast and easy way.

            9 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  ·  Visual Studio Test and Lab Management  ·  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 →
              • 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 →
                • 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 →
                  • 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 →
                    • 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 →
                      • 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 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 →
                          • 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 →
                            • 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 →
                              • 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 →
                                • Release bootstrapper packages through VS "Extensions and Updates"

                                  Currently the prerequisite component bootstrapper packages used by ClickOnce and Visual Studio Installer are either installed along with Visual Studio or must be downloaded manually. An example of this is the latest .Net Framework 4.5.2 package which you need to Google to find (searching the Microsoft website doesn't even work).

                                  Bootstrapper packages should be released along with other Visual Studio updates in the "Extensions and Updates" dialog as long as being listed in the Visual Studio Gallery online.

                                  Additionally, to enable the "Download prerequisites from the same location as my application" I shouldn't have to manually open the package.xml file…

                                  6 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  ·  Flag idea as inappropriate…  ·  Admin →
                                  • SQL Server 2014 ClickOnce bootstrapper packages

                                    Visual Studio 2013 comes with bootstrapper packages for 'SqlExpress2008R2', 'SqlExpress2012' and 'SqlLocalDB2012'. SQL Server 2014 was released earlier this year but bootstrapper packages are still unavailable. Please release the bootstrapper packages.
                                    Although it would be possible to create a package by myself there are a few problems which make this difficult and undesirable:
                                    - What are the fwlink links for download packages from Microsoft's website
                                    - What are the public keys for the packages

                                    LocalDB in particular is supposed to be used as a replacement for SSCE which is deprecated. How can we use it if there's no simple way…

                                    6 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  ·  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 →
                                      • support a tooltip to describe the area path

                                        I suggest you support a tooltip to describe the area path. When you have multiple area paths, for other team members it is not clear what they all for. So a tooltip when mouse over could be nice.

                                        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…)
                                          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 →
                                          • Don't see your idea?

                                          Feedback and Knowledge Base