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. Identify and Nest Dependent Files in Solution Explorer using Right Click Menu

    Identify and Nest Dependent Files in Solution Explorer using Right Click Menu.

    Allow us to nest files in solution explorer without having to edit the csproj file. For example, we have 4 files that are breeze.*.js, and I like to nest them as dependent on breeze.js so they show up collapsed in solution explorer.

    Currently we edit the csproj file to do this, and we also do it for css and for custom js. Another example:

    repositories.js
    -- attendee.repository.js
    -- session.repository.js
    -- speaker.repository.js
    -- lookup.repository.js
    -- abstract.repository.js

    For files like jQuery that have 4 or 5 dependent files this is…

    381 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 →
    • Create a UTF8 C-runtime

      In the past few years I've worked on cross platform apps, mostly between Windows and linux. The biggest stumbling block are path and file names. In our latest project, it got so clunky, that we decided to drop all the UNICODE code compile the Windows side in MBCS. One thing that would help would be to have a C-runtime which works with UTF8 (also having one that drops the underscores would be another huge help.)

      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…)
        9 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
      • Enable IntelliTest to generate tests for VB.NET projects

        Please extend IntelliTest to enable generating tests for VB.NET projects.

        375 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  ·  Test Tools  ·  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.

          375 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  ·  Flag idea as inappropriate…  ·  Admin →
          • Allow Drag-Drop Project References between projects

            It would be nice if we were able to just drag a reference from one project to the next.

            374 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  ·  Project  ·  Flag idea as inappropriate…  ·  Admin →
            • Support c++11 concurrency header files in c++/cli

              When using the /clr switch in VC++ 2012, it is not possible to include some of the new c++11 header files (i.e. <atomic> / <thread>) as compilation will break.

              One typical application of c++/cli is to wrap a native class inside a (managed) ref class to expose its functionality to the .net world.

              The restriction previously described prevents a ref calss to consume a native class with members like std::thread or std::atomic<T>.

              A workarround (pimpl-idiom) is discussed in this topic:
              (http://social.msdn.microsoft.com/Forums/en-US/vclanguage/thread/9771f61c-05b7-4e3e-96fb-ac9ea31ac3f4)

              The former approach requires to change existing code, therefore support for the new c++11 header files in…

              372 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  ·  Languages - C++  ·  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 →
                • 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.

                  370 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 a Treeview Control to Lightswitch

                    Display of hierarchical data is a requirement in many business applications. The forums and blogs are full of questions on how to add a treeview to a Lightswitch application. While it can be done with a custom control, adding it to the standard set of controls would certainly make Lightswitch a more powerful business application development environment. BTW, be sure and have a two-way SelectedItem property.

                    370 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  ·  LightSwitch  ·  Flag idea as inappropriate…  ·  Admin →

                      Dave,

                      Thank you for the suggestion. We have added it to our product backlog and will consider it for a future release.

                      Displaying hierarchical data is possible today using custom controls in a LightSwitch HTML client application. Michael Washington has written a blog post (http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/2220/JQuery-Mobile-Tree-Using-Collapsible-Sections-and-Dynamic-Views-in-LightSwitch.aspx) describing how to implement collapsible sections using Jewel Lambart’s Collapsible Content Control (http://jewellambert.com/jquery-mobile-collapsible-content-control-with-lightswitch/).

                      Thanks,
                      Elizabeth Maher, LightSwitch Team

                    • 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.

                      367 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 →
                      • 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 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.

                          358 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 →
                          • 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…

                            350 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 →
                            • 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.

                              347 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  ·  Test Tools  ·  Flag idea as inappropriate…  ·  Admin →
                              • Allow developer to copy/paste layout hierarchy between screens.

                                Often I'm finding screens may have similar custom layouts, but I need to build each one from scratch. I have to flip back and forth between screens (see my other sugg. "Allow developer to have multiple screen designers open simultaneously."), and manually tweak the hierarchy to get screens to be consistent with each other. I'd like to be able to select a node in one design screen, copy it, and paste it into another.

                                346 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  ·  LightSwitch  ·  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,…

                                  346 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 →
                                  • 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

                                    340 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  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
                                    • 335 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 →
                                      • Make Visual Studio per-monitor/multi-monitor DPI aware

                                        http://msdn.microsoft.com/en-us/library/windows/desktop/dd464646
                                        http://imgur.com/qAiVw1Q,eVRIBlZ

                                        When dragging VS 2013.1 Express to my second monitor running at a different DPI, it becomes blurry. VS seems to be acting as if it only has support for global DPI settings instead of per-monitor settings. It would be great if VS followed the same guidelines its users are attempting to follow when it comes to developing desktop apps ;-).

                                        330 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 →
                                        • 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.

                                          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…)
                                            under review  ·  28 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →
                                          • Don't see your idea?

                                          Feedback and Knowledge Base