Visual Studio IDE

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, you can visit our Developer Community website to get started. 

For suggestions for improvements to other developer products, see these sites:

To review the current UserVoice statuses and their definitions, please review our “What Does the Status of My Feedback Mean?” article.

We look forward to hearing from you!

- The 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 support and comment on it.

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

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

  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. Add TryRemove(TKey key, out TValue value) to Dictionary<TKey, TValue>

    Currently, to "pull" an item out of a Dictionary it is a two step process:

    SomeClass value = null;
    if (dictionary.TryGetValue(theKey, out value))
    {
    dictionary.Remove(theKey);
    // do something with the item...
    }

    This requires the hash code to be generated twice, which can be costly in high performance scenarios (which is why TryGetValue exists in the first place).

    It would be optimal to be able to do:

    SomeClass value = null;
    if (dictionary.TryRemove(theKey, out value))
    {
    // do something with the item...
    }

    Implementation would be trivial and provide significant benefit.

    376 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…)
      11 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
    • Add .Net Framework v. 4.5 support to Visual Studio 2010

      Since Visual Studio 2010 was originally built to support newer versions/future version of the .Net Framework, .Net 4.5 support should be added to Visual Studio 2010 since Visual Studio 2012 has significantly reduced the usability and productivity of the IDE by discoloring the UI as well as removing critical features such as "Creating Unit Test". Adding .Net 4.5 support to Visual Studio 2010 would allow developers who do not wish to upgrade to Visual Studio 2012 the ability to continue using their favorite IDE with the latest .Net technology.

      376 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…)
        13 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
      • Starting then running all unit tests in a solution can take a very long time.

        We have over 200 projects, 2900+ unit tests. It takes over a minute some times to get to the point where it can start listing all the unit tests in the test window, and start executing. We have latest gen Core I7, 8GB 64 bit windows, and it is still a pain. Maybe this area needs 're-imagining', as I can understand the complexities of managing this large number of projects/tests, but it is not working well for us.

        373 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…)
          27 comments  ·  Test Tools  ·  Flag idea as inappropriate…  ·  Admin →
        • Open fast

          Make it so that opening a simple text file from Explorer is fast. It's just Text. Make it so fast to open that I no longer need a notepad replacement.
          Make VS2011 into the best notepad replacement!!

          It's just text, after all. It's ALL text.

          371 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…)
            12 comments  ·  IDE and Editor  ·  Flag idea as inappropriate…  ·  Admin →
          • Add a better shortcut for commenting and uncommenting - "CTR+/"

            “CTR+K,C” for commenting “CTR+K,U” for uncommenting shortcuts are NOT useful, easier to click a button on a toolbar instead.

            Every developer comment / uncomment pieces of code quite often. Please add "CTR+/" shortcut for toggling comments.

            This tiny addition could save tones of working hours for developers. ReSharper has it; but it would be much better to have it as a build-in feature.

            371 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…)
              32 comments  ·  IDE and Editor  ·  Flag idea as inappropriate…  ·  Admin →
            • Provide us with a project type that officially supports the development of VGA-heavy applications from managed code

              With the official announcement: “XNA Game Studio will not support Metro style apps” XNA has been marked as a legacy platform.

              Please provide us with a replacement that:
              -Fully satisfies .NET library design guidelines.
              -Allows direct access to the VGA.
              -Implements most strong points of XNA and learns from its mistakes.
              -Has a feature set that is ON PAIR with DirectX 11.1 and stays UP TO DATE with future DirectX releases, at least ones that are accessible on WinRT.
              -Enables developers to make applications capable of running on WinRT, Classic Desktop (at least on Windows 8), and at least on…

              371 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…)
                16 comments  ·  Games  ·  Flag idea as inappropriate…  ·  Admin →
              • Allow precompiled headers to be shared between projects

                In Visual Studio 2008 and earlier, I believe you could (by an unsupported method) allow one project to generate a precompiled header which other projects could then use. But I understand this is not possible, or only works in limited ways in VS 2010 and later.

                Please add official support for allowing a precompiled header to be shared between projects.

                As a nice to have it would also be ideal if more than one precompiled header could be used by a project so that both a shared and project specific precompiled header could be used.

                See also:

                http://social.msdn.microsoft.com/Forums/vstudio/en-US/665d4183-f85c-481d-bada-03283b310099/shared-precompiled-header?forum=vclanguage

                http://stackoverflow.com/questions/14048212/can-i-share-a-precompiled-header-between-projects-to-reduce-compile-time

                364 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…)
                  16 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
                • Replace Action Recordings in MTM with Xamarin Test Recorder

                  Action Recordings (https://msdn.microsoft.com/en-us/library/dd286647(v=vs.110).aspx) are nearly useless and are very fragile. Instead Xamarin Test Recorder https://www.xamarin.com/test-cloud/recorder should be integrated into MTM (Microsoft Test Manager) and extended to work with WPF/Win Form/ Desktop applications that require automated testing.

                  361 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…)
                    6 comments  ·  Test Tools  ·  Flag idea as inappropriate…  ·  Admin →
                  • Add ligatures to Consolas font

                    I like coding with ligatures, using FiraCode font:
                    https://github.com/tonsky/FiraCode

                    But as much as I like the ligatures, I find the font itself (letters and numbers) to be less nice than Consolas, which I really like.

                    My suggestion is to add optional ligatures to Consolas, for people who want them.

                    354 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…)
                      9 comments  ·  IDE and Editor  ·  Flag idea as inappropriate…  ·  Admin →
                    • Unmanaged generic type constraint + generic pointers

                      Add an "unmanaged"/"blittable" generic type constraint and use it to allow generic pointers and related features. Related post by Eric Lippert:
                      http://stackoverflow.com/questions/7551461/c-sharp-generic-constraint-where-is-not-class/7557040#7557040

                      The end result would allow this sort of code:

                      unsafe void DoSomeStuff<T>() where T : unmanaged
                      {
                      T t = new T();
                      T* tPointer = &t;
                      T* aBunchOfT = stackalloc T[100];
                      var tSize = sizeof(T);
                      byte* aBunchOfBytes = stackalloc byte[tSize * 100];
                      T* aBunchOfCastedT = (T*)bunchOfBytes;
                      }

                      Performance critical generic data structures, particularly those using preallocated pools of memory, would be a good example use case for this.

                      Currently, a data structure using pointers to represent data would…

                      353 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  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                      • Return Multiple values from functions effortlessly without creating new classes for everything

                        When you think of it, its silly that methods by default can only return one value, but can take many arguments. Often times you want many return values, but it would be too painful to create classes/structs for each set, so often developers decide to then use ref or out parameters.

                        Instead what if method/function calls could return many values without the need to define a class/struct.
                        This example is a bit contrived but this shows the power of the fact that error information and values can easily be returned al at once.

                        Syntaxt like:

                        private {int index, bool IsError=false,…

                        349 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…)
                          53 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                        • 338 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…)
                            19 comments  ·  IDE and Editor  ·  Flag idea as inappropriate…  ·  Admin →
                          • Let lambdas with a statement body be converted to an expression tree

                            The C# compiler supports translating a lambda expression to an expression tree (System.Linq.Expressions).

                            Today lambdas with no statement body (only a single statement) are supported just fine.

                            Expression<Action> x = () => Console.WriteLine("Hello World");

                            But lambdas with a statement body (braces), which is needed to have multiple statements, doesn't compile.

                            Expression<Action> y = () => { Console.WriteLine("Hello"); Console.WriteLine("World"); };

                            I believe there is a lot of awesome stuff not being possible due to this lack of support.

                            It seems very unproblematic to implement, but if there are any hidden issues with this feature, it would be nice to know so…

                            328 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…)
                              4 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                            • "View White Space" should show line endings too

                              As described here: http://connect.microsoft.com/VisualStudio/feedback/details/621096/view-white-space-should-show-line-endings-too

                              Request:
                              * Visual Studio > Edit menu > Advanced > View White Space.
                              * Currently, this feature shows a symbol for space and tab characters.
                              * I would like to be able to view line endings too.
                              * I would like to be able to view what style of line ending was used.

                              And that's it for the request.

                              And now I offer some suggestions as to how this may look. Here's what I've seen other tools do:
                              * TortoiseMerge uses a single, unobtrusive symbol. It is "light" and does not distract from the main document…

                              327 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  ·  IDE and Editor  ·  Flag idea as inappropriate…  ·  Admin →
                              • Allow multiple variable names with single type specifier in functin call

                                Current:
                                Public Function DoSomething(x As Integer, y As Integer, w As Integer, h As Integer, Value As Integer, Name As String, Count As Integer) As Boolean

                                Propsed:
                                Public Function DoSomething(x, y, w, h, Value As Integer, Name As String, Count As Integer) As Boolean

                                All variables x, y, w, h, Value would be of type Integer, like in Dim statement.

                                326 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…)
                                  under review  ·  28 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →
                                • Add support for link shared files in shared project

                                  Please add function to link a file file in a shared project like is actually possible in normal projects.
                                  This function is already supported with manual editing a .projitems file:

                                  myFile.cs

                                  322 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  ·  Project  ·  Flag idea as inappropriate…  ·  Admin →
                                  • Speedier F# compiling

                                    Compilation in F# awfully slow. Please improve this!

                                    321 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…)
                                      archived  ·  2 comments  ·  Languages - F# Tools  ·  Flag idea as inappropriate…  ·  Admin →
                                    • Better code navigation in F#

                                      Bring over the code navigation features found in the VB.NET/C# Visual Studio experience, such as Find All References and Call Hierarchy

                                      315 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…)
                                        4 comments  ·  Languages - F# Tools  ·  Flag idea as inappropriate…  ·  Admin →
                                      • Add SFTP/SCP and FTP over SSL/TSL as a publish method for web projects

                                        SFTP/SCP is not available as a publish method for web projects. This means that you have to publish to a local directory and then copy the files to the remote server via an external SFTP/SCP tool if you server or hosting provider uses that protocol, which is cumbersome.

                                        It would be more convenient to have the option built-in, since a lot of system admins are moving to SFTP/SCP for security purposes.

                                        315 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…)
                                          15 comments  ·  Web Development Tools  ·  Flag idea as inappropriate…  ·  Admin →
                                        • Give option to search only in uncommented code

                                          When searching for a string in a project's source code, I often find myself wasting time examining lines that have been commented out. it would be useful to offer an option to return only lines that are not commented out, so as not to confuse the results.

                                          313 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…)
                                            14 comments  ·  IDE and Editor  ·  Flag idea as inappropriate…  ·  Admin →
                                          • Don't see your idea?

                                          Feedback and Knowledge Base