Visual Studio IDE

Announcement: This forum has been migrated to provide our customers one convenient and responsive system for all feedback. You can now suggest new ideas, browse and vote on existing ideas in the Visual Studio Developer Community. To learn more about the migration to Visual Studio Developer Community please check out the release blog post.

We’d like your suggestions and ideas to help us continuously improve future releases of Visual Studio, so we’ve partnered with UserVoice, a third-party service, to collect your feedback. Please do not send any novel or patentable ideas, copyrighted materials, samples or demos for which you do not want to grant a license to Microsoft.

This site is for feature suggestions; if you need to file a bug, you can visit our Developer Community website to get started.

Note: your use of the portal and your submission is subject to the UserVoice Terms of Service & Privacy Policy and license terms.

We look forward to hearing from you!
- The Visual Studio Team

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. Get rid of all the special keyboard shortcuts that put VS in some special text entry mode

    Too often (way too often), some mysterious accidental keypress will put VS in some kind of special text mode (Emacs or VI or something else with 40 year old keyboard shortcuts). VS doesn't say what the mode is or how to get out of it (I'd need to know the mode first)...it just loses normal keyboard functionality.
    TOO MANY INPUTS!

    0 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  IDE and Editor  ·  Flag idea as inappropriate…  ·  Admin →
  2. glyphicon : show the real icon when listing them in Razor view

    When we type class="glyphicon glyphicon-... intellisense kicks in to show a list of related glyphicon names but it shows a generic icon [B]. We are forced to go to the web site to search for an icon. It would be fast to see the icons right there in the list

    0 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  IDE and Editor  ·  Flag idea as inappropriate…  ·  Admin →
  3. "DLL HeLLL" is not totally gone; it got a new home reference address.

    DLL HeLLL is a lot better but there are times refereneces are hard to deal with. At many firm I've been to, I'll inherit Visual Studio Solutions with large number of projects.
    I find that are not able to build the solutions when I pull down the code from source control on to a new PC. Yes, it works on the other developers PC but it won't work without a lot of effort on other PCs or build environments. Many of the 3rd party DLLs could be missing or all pointing inconsistently to non-existent folders. These binary DLLs are not…

    1 vote
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  4. Make pack target appear in menu for legacy projects if they include NuGet.Build.Tasks.Pack e.g. <ProjectCapability Include="Pack"/>

    If a project has the pack target show the command in the menu.
    Perhaps detect from <ProjectCapability Include="Pack"/> or some other mechanism for surfacing available top level targets for the project.
    This should work for _any_ msbuild based project - even legacy projects.

    0 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  IDE and Editor  ·  Flag idea as inappropriate…  ·  Admin →
  5. Await null without an exception

    The introduction of the "myObject?.MyMethod()" construct is really cool, but exposes a new issue when using it with async. "await myObject?.MyMethodAsync()" (properly) throws null exception when myObject is null. How about introducing "async?" to allow the programmer to explicitly state "I'm expecting a null return and its okay". That'll allow for "await myObject?.MyMethodAsync()".

    If "MyMethodAsync" returns "Task<type>" rather than just "Task", "async?" would pass-through the null as "(type)null". It "type" is a value type, using "await?" would recast the "type" return to "type?". The compiler should probably warn if the "await?" result is then used as a non-nullable type and…

    0 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  6. the System.​Threading.​Tasks.Parallel class should support async operations

    Today it is not possible to await, for example, a Parallel,Invoke call. This seem a bit stange since the Parallel class is for doing cpu based work, so it would work very nicely together with async/await with is for IO based work.

    So if there were a Parallel.InvokeAsync method, it would be possible to kick of cpu based work in worker threads, which the current thread continue with IO based work.

    Also, if the Parallel class methods had overloads that accept Func<Task> in addition to those that accept Action, then the work beeing done could thmself use async/await as well…

    0 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  7. Drag and drop one or more classes in Solution Explorer to a project folder

    Drag and drop a class from a solution cs file to a new file. If a single cs file exists for several classes they should be able to be extracted through a drag and drop mechanism by simply selecting on the classes in solution explorer and then moving them to an alternate location or folder.

    0 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  8. Add search to Import and Export Wizard

    A rudimentary count of nodes in a vssettings file with all settings exported shows about 4600 nodes. Visual Studio settings are very complex. It would be useful to have a search ability in the import/export wizard to be able to quickly find settings you may want to export independently.

    0 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  User Interface  ·  Flag idea as inappropriate…  ·  Admin →
  9. Visual Studio installer should be downloading the latest version

    VS web-based installer should download the newest VS version once the latest version is released. instead of the outdated one

    0 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Install  ·  Flag idea as inappropriate…  ·  Admin →
  10. Diagnostic Tools

    Diagnostic Tools: great tool! So much easier then UMDH!
    I really miss a lot the fact of being able to save a complete session, with everything in it, including call stack. The user could have an option to save in the proprietary format of in text. This later could be searched easily. That would really big plus for me.

    0 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  11. show unit test results in the test function

    Take a look at how xcode on the mac reports unit test assert failures. it shows the failure in the editor window for the test function.

    By putting the error right near the code that had the error, it makes it much easier to determine that a test failed and where it failed. I find it very cumbersome to have to go over to the test explorer, and click on a failing test, then click on a link in the summary window just to figure out which line of the test failed. And then I find it very difficult to…

    0 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Test Tools  ·  Flag idea as inappropriate…  ·  Admin →
  12. Fix the debugger c++ variable scoping problems

    Since Visual Studio has changed to comply with variables declared in for loops, the debugger needs to be modified to take account of that. Consider the following code:

    for( int index = 0; index < 10; ++index )
    {
    x[index] = 0;

    for( index = 0; index < 10; ++index )
    {
    y[index] = 0;
    }
    }

    While stepping through the code, if I put the cursor over the "index" variable, the debbuger does not track the scope of the variables and will show incorrect values for the index in the outer loop.

    Sorry about any typeos here. This little…

    0 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  13. You asked us what you should do next.

    How about implementing the ideas listed here that have over 1,000 votes.

    0 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  14. Add methods to clone an object tree or a part of it

    Creating objects similar to others already existing is a common pattern that requires a lot of typing and bore just to map the properties of one into the other.
    There should exist an extension method on the "object" object that could allow to create an object just cloning another one, with it's entere tree, or even better, until a determinate level of depth.

    0 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  15. more than one XAML view per csharp file, selected by screen rotation/ratio

    If you want my opinion about what you are doing wrong with UWP... you are trying to fit all of you XAML into the same XAML as a rescalable desktop XAML page, except with none of the widgets that make that mode good for a desktop...

    You need the option to have different XAML views that can reorder the visual tree, but yet share the same csharp code underneath... And one of the XAML views should be call Desktop and should have extra components from WPF that UWP throws away as not being tablet like enough....

    Not to beat a…

    0 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  UWP / WPF / XAML Tools  ·  Flag idea as inappropriate…  ·  Admin →
  16. Use "private override sealed" to fully seal-off methods

    This would seem to be non-breaking.

    C# doesn't allow override to change the visibility (public/protected/private) of a virtual method. In reality there does not seem to be a problem with allowing the visibility to be reduced. In particular it would make for more "clean" code if "public virtual" (in particular) and "protected virtual" could be overridden with "private override sealed".

    If there is a concern regarding the larger overall reduction in visibility, consider limiting it to sealed-only.

    Right now an ugly kludge is required to "seal off" a virtual method through the use of "sealed" and then throwing an exception…

    0 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  17. In the Git changes form, use autocomplete to assist with commenting

    When typing the comment for a Git commit, it is useful to have AutoComplete or Intellisense to assist with typing.

    It would be even more useful if VS could autopopulate with a logical summary e.g. "Rename this to that"

    0 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Version Control (Git/TFVC)  ·  Flag idea as inappropriate…  ·  Admin →
  18. keyword "checked" should can be not use the return value

    While I'm doing with the db pager, I found I should check the page index and page size which is user input.
    So I write these codes.

    public static void CheckPagerParameter(int pageIndex,int pageSize)
    {
    try
    {
    checked(pageIndex*pageSize);
    }
    catch(OverflowException exception)
    {
    throw new ArgumentOutOfRangeException("index and size are too bigger",exception);
    }
    }

    But it can not compiler finish until I change "checked(pageIndex*pageSize)" to "int forCheck=checked(pageIndex*pageSize)".
    Why we must use the return value?
    Sometimes, we really do not care the return value from checked keyword.

    Please change this.

    0 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  19. Simultaneous Debug and Compile

    I'd love to see visual studio launch its debugger against a startup project BEFORE it fires off "msbuild" to compile all solution/project changes.

    That way the startup project could begin any necessary bootstrapping work, load most modules, attach the debugger, load most symbols into the debugger and so on. (The startup project would then need to accept a keystroke from the user before proceeding. ) All this stuff can easily take 5 seconds, even in a custom written harness for unit testing. It would be nice if this work was already well underway by the time "msbuild" finished the compiling…

    0 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  20. Easily switch from a project in Solution Explorer project to the corresponding property sheet in the property manager

    Right-click on a project in the Solution Explorer view, select something like "Goto to corresponding Property Sheets". This switches to the Property Manager view with the correct project selected and open, showing the build configurations.

    0 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  IDE and Editor  ·  Flag idea as inappropriate…  ·  Admin →

Feedback and Knowledge Base