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. New VS option to have fully qualified using definitions inside the namespace

    It would be nice it there were an option to specify if using definitions, added inside a namespace, should be added fully qualified or shortened using the "Quick Fix" command.
    Current it's only possible to add shortened usings, which leads to a strange sorting order for sub-namespaces (and doesn't give that good of an overview what namespaces are used in that scope).
    Also the current Visual Studio 2015 feature removes the empty line that separates the using definitions and the class documentation comment, that should probably just be fixed.

    For details and some screenshots of the current behavior see: https://social.msdn.microsoft.com/Forums/en-US/visualstudiogeneral/thread/8673cc0c-679c-493a-baa3-611a33acdc18/

    137 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…)
      1 comment  ·  IDE and Editor  ·  Flag idea as inappropriate…  ·  Admin →
    • Provide a more robust Exceptions window in Visual Studio.

      It would be great to be able to save the Exceptions configuration in the Debug -> Exceptions window into various profiles. Once saved, allowing us to switch between profiles would be a tremendous help when debugging a variety of projects.

      136 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  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
      • Adopt IANA Standard Time Zones

        The .Net BCL TimeZoneInfo class is a wrapper on top of Windows timezone data. Now that ICANN/IANA is formally managing the zoneinfo database (since Oct 14, 2011), Microsoft should favor this standard instead of its proprietary time zone implementation. See http://www.iana.org/time-zones and http://en.wikipedia.org/wiki/Tz_database for further details.

        This would allow .Net much greater interopability with other Internet platforms.

        Since Windows timezones have been around for quite some time, Microsoft should provide this as an option, perhaps in a different set of classes, with some translation to and from the existing TimeZoneInfo class for backwards compatibility.

        (also - it would be ideal…

        136 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…)
          3 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
        • 135 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  ·  Extensibility  ·  Flag idea as inappropriate…  ·  Admin →
          • Add Emscripten/WebAssembly to platforms supported from VisualC++

            Much like support for iOS/Android (http://blogs.msdn.com/b/vcblog/archive/2015/07/30/cross-platform-code-sharing-with-visual-c.aspx). I'd love to add Emscripten build target for my application in Visual Studio 2015.

            135 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…)
              1 comment  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
            • Enable "compare shelved file with local edits"

              If you are interacting with a file in a shelveset, you get 3 options to compare the file in the shelveset to:

              1. Compare with Unmodified Version: shelved file vs. version last gotten in the workspace that made the shelf

              2. Compare with Workspace Version: shelved file vs. version last gotten in the local workspace (but without any local changes)

              3. Compare with Latest Version: shelved file vs. latest version in TFS

              *** I frequently want this fourth option, which is notably absent ***

              4. Compare with local Version: shelved file vs. version last gotten in the local workspace (including…

              134 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  ·  Version Control (Git/TFVC)  ·  Flag idea as inappropriate…  ·  Admin →
              • Circular shift / Rotate JIT support

                Many cryptographic hash and encryption functions take advantage of circular shift:

                (val << shift) | (val >> (32 - shift))

                Modern C and C++ compilers recognize this expression, and compile it accordingly to X86's ROTR/ROTL instruction. I believe the .NET runtime should be able to recognize the IL sequence that the above expression would generate:

                ldloc val
                ldloc shift
                shl
                ldloc val
                ldc.i4 32
                ldloc shift
                sub
                shr.un
                or

                And optimize that sequence into a single X86 ROTR/ROTL sequence.

                I'm pretty sure it doesn't do that now, according to my experiments.

                The best thing to do is to introduce some…

                133 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  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                • Support patch adding in Visual Studio Tools for Git

                  Patch adding allows to stage only parts of a file (hunks), not an entire file.
                  The command line equivalent is the command "git add --patch"

                  For example if you edit a file on line 20 and make another change on line 40 and now you want to split this changes into two separate commits because they are unrelated to each other you can do this by patch adding the file. It would be nice to have this functionality available inside of Visual Studio.

                  The same funcionality could be used to automatically include the changed parts of the csproj file when…

                  133 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…)
                    3 comments  ·  Version Control (Git/TFVC)  ·  Flag idea as inappropriate…  ·  Admin →
                  • Enterprise Library as default framework

                    I think include enterprise library as default framework will become handy as this will help for consistency. As my concern, I think most of development works now need dependency injection (unity), Logging tool and config tool. So why not put enterprise library as the first option

                    133 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…)
                      25 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                    • 132 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 →
                      • Support the -Loopback token in proxy bypass lists

                        The .NET Framework is currently hardcoded to bypass the proxy for traffic destined to localhost/127.0.0.1/::1. This makes sense in general, but greatly complicates debugging with Fiddler or other proxies.

                        In 2011, this problem was fixed in WinINET and WinHTTP with the introduction of the "minus-loopback" token in proxy bypass lists. When <-loopback> is present, the client should not bypass the proxy for local addresses.

                        See http://blogs.msdn.com/b/fiddler/archive/2011/02/10/fiddler-is-better-with-internet-explorer-9.aspx for more detail.

                        131 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  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                        • MSTest API

                          It would be very useful if MSTest could be made available through a programmatic API, and have programmatic access to the results.

                          Whilst it's true that we can lunch MSTest.exe from a separate process, and then query the corresponding results file, in reality this is clunky, inelegant and annoying.

                          The of other unit test frameworks (NUnit, xUnit) is already publicly available, so why can't we have this for MSTest.

                          130 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…)
                            3 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                          • add custom tool support to shared projects

                            Both VS 2013 U4 and VS 2015 Preview does not seem to support custom tools in shared projects. That makes it impossible to use shared projects with many useful single file generators, including those shipped with Visual Studio (RESX, T4 Templates, etc.).

                            In our usecase we would like to use shared projects for shared data models. Normally these data models are specified in our schema DSL and we have MsBuild tasks that generate necessary source code. This approach is not applicable to shared projects because they are never built, however we could do the same with custom tool (single file…

                            130 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  ·  Project  ·  Flag idea as inappropriate…  ·  Admin →
                            • Split "Solution Explorer" and "Compilation Order"

                              This would allow alphabetically sorted items in the solution explorer, and support for folders in F# projects.

                              Currently, the only way to organize large F# projects is to (artificially) break them down into smaller projects.

                              The codeplex project "fsprojectextender" is a proof of concept.

                              129 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 →
                              • Add a new directory-based solution or project type

                                Visual Studio should support opening a directory and working with 'directory-based' projects using actual files on disk (no solution/project files, but instead Visual Studio can store project settings inside '.vs' hidden folder, similar to .idea in WebStorm / ItelliJ). The existing Website project type is not an option!

                                Visual Studio should support working with existing directory structures widely used in the front-end community. See project templates like 'angular-seed' or templates in 'yeoman' gallery. Developers should be able to work comfortably with these directory structures and actual files on disk, without any tweaks. Also it should have a first-class console window…

                                129 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  ·  Project  ·  Flag idea as inappropriate…  ·  Admin →
                                • Add lambda support to C++/CLI

                                  Lambda is now supported in C++ 0x but not in C++/CLI. It means we are not able to use C++ lambda to define delegates in ref class. This makes using .Net libraries like Task<T> and System::Linq a very tedious work.

                                  129 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 →
                                  • Stop suggesting application insights, the pop up is rather annoying.

                                    Stop suggesting application insights, the pop up is rather annoying.

                                    129 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  ·  User Interface  ·  Flag idea as inappropriate…  ·  Admin →
                                    • Make IList<T> inherited from IReadOnlyList<T>

                                      It satisfies Liskov substitution principle.
                                      Example:

                                      void SomeMethod(IReadOnlyList<T> list)
                                      {/*...*/}

                                      void MyMethod(IList<T> list)
                                      {
                                      //do something with list, add/remove elements etc.
                                      SomeMethod(list);//PROBLEM
                                      }

                                      Currently IList<T> cannot be passed to SomeMethod. But IReadOnlyList<T> consists of a subset of methods from IList<T> with the same signature and semantics. I feel it would be much better to make this explicit by inheriting IList<T> from IReadOnlyList<T>.

                                      128 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…)
                                        8 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                      • Add Auto-Reload to Visual Studio when adding C# scripts to the project from Unity

                                        There is an option in Visual Studio to auto reload when changing a file as long as there are no unsaved changes, but there is no option to auto reload when adding files to a project.

                                        Everytime adding a new script inside of Unity we get a prompt in Visual Studio to Reload/Reload All. It would be really nice to have UnityVS handle this since it happens a ton of times during the development of a project and it is something it really should be doing anyway.

                                        128 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…)
                                          7 comments  ·  Visual Studio Tools for Unity  ·  Flag idea as inappropriate…  ·  Admin →
                                        • Provide simple syntax to create a weak-referenced eventhandler

                                          The by far most common memory leak people introduce in .NET apps are caused by event handlers added to longer-lived objects. For instance an event on a static instance, or on an instance who's lifetime is the entire app lifetime (like app view model or app settings).
                                          Listening for events on this from a shorter-lived object, makes this short-lived object hang around in memory until the app stops running. A common scenario is the INotifyCollectionChanged event listened to by a XAML control, with data coming from a collection provided by some app state. This will cause a very memory-consuming object…

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

                                          Feedback and Knowledge Base