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. msbuild run targets within a project in parallel

    Would make cl.exe /MP superfluous and allow parallel execution of things like Qt's moc and ui generation steps.

    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  ·  Project  ·  Flag idea as inappropriate…  ·  Admin →
    • Add Class Diagram Support to .Net Core Projects

      Currently Class Diagrams, it appears, are not supported by .Net Core projects. Class Diagrams are a valuable tool, particularly for us visual thinkers.

      This tool can assist with documentation and can also accelerate the process of creating classes.

      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  ·  Project  ·  Flag idea as inappropriate…  ·  Admin →
      • I recommend that you folks fix the BUGs in VS 2015 before selling VS 2017.

        Since it is called VISUAL STUDIO, it would be nice to be able to access databases and associated controls visually. In the same package, Visual Basic has all the elements and yet C++ doesn't.
        The CRecordSet can be used to inherit however, there is associated CRecordView class to inherit from?
        WHY. And now you are selling VS 2017 and I'm sure you have the same problems in it. When the studio is invoked, it hangs for the longest time and a notification indicates that the application is busy.
        GOOD STUFF?????????????? %&^%$#^

        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 it easier to comply with nuGet package licences

          Make it easier to comply with nuGet package licences by allowing to filter that are nor compatible with the desired licence.

          Also, it would be nice to be able to automatically generate and maintain the list of licences that are in use and have some way to display the information in common frameworks (ASP.NET (MVC), Windows Forms, WPF...).

          Also some packages have licences where it seems that we need to provide a way to use an updated version of the library (LGPL). For desktop application, I think that it would be possible to somehow allow the user to load an…

          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  ·  NuGet Package Manager  ·  Flag idea as inappropriate…  ·  Admin →
          • Go To Files should never use Current Document option

            I'm using Go To Files and Go To Members to navigate around my project. It is annoying to have to switch current document option off every time I use Go To Files, otherwise it won't find any results.

            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  ·  IDE and Editor  ·  Flag idea as inappropriate…  ·  Admin →
            • include a list of the chosen options when I report a problem

              Much like the auto-included screen shot, the option to include a list of all the chosen options would be useful. Some problems may well be related to (not) chosen options.This is related to the VS2017 RC installer.

              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  ·  Install  ·  Flag idea as inappropriate…  ·  Admin →
              • Add Back and Forward buttons to Find Symbol Results

                When investigating or refactoring code it's often necessary to look not just at references to a single thing, but references to related things (e.g. a field and also the property that returns that field). VS should add one or both of the following features:

                1. Browser-like Back and Forward buttons in Find Symbol Results
                2. An alternate shortcut key for "Find all references" that would not clear the existing list, but add new references to the bottom instead.

                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  ·  IDE and Editor  ·  Flag idea as inappropriate…  ·  Admin →
                • Add operation to automatic property set;

                  Auto properties can have one line additions to set, making a function call or one operation possible.

                  Suggested Syntax:
                  public int Something { get; set; } += doSomething();

                  For better example view and all my suggestions visit http://www.jsmars.com/csharp.php

                  2 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 →
                  • return void, returnif, returnsame, break on

                    return [void operation]; - One line returns
                    returnif [boolean operation]; - Returns if operation is true
                    public int MyProperty { get; returnsame set; } - Doesn't set the value if it equals the current value.
                    break [operation]; - Shorter breaks

                    Example code:

                    public WindowStyle Style { get; returnsame set; }

                    public void DoSomething()
                    {
                    if (something)
                    return Something();
                    }

                    returnif myVar;

                    public void Check(int var)
                    {
                    if (var == 0)
                    break doSomething();
                    // something else
                    }

                    For better example view and all my suggestions visit http://www.jsmars.com/csharp.php

                    2 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 →
                    • if finally & loop finally clauses

                      A clause which is run after any of the conditions in an if tree are true. Note: When used with else, the finally clause will only run if any of the other conditions are true. Sort of like an else-else.

                      And a final clause which is run if the loops exits from its own condition, not breaking. Instead of reduntantly checking the i variable. Should work for both foreach and for loops.

                      Syntax:
                      if (something)
                      doOne();
                      else if (something)
                      doTwo();
                      finally
                      ifOneOrTwo();

                      foreach (var item in collection)
                      // run loop
                      finally
                      // do something

                      Before:

                      var done = true;
                      if…

                      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…)
                        1 comment  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                      • Get enum length and next/previous methods

                        Be able to get length of enum as a compile time constant instead of having to store value from enum.GetValues().
                        Next/Previous methods which also work when items are not directly after each other, on Flag enums for example.

                        Suggested Syntax:
                        Enum.Length(typeof(MyEnum));

                        var second = Enum.Next(typeof(MyEnum), MyEnum.First);
                        var first = Enum.Previous(typeof(MyEnum), MyEnum.Second);

                        For better example view and all my suggestions visit http://www.jsmars.com/csharp.php

                        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 →
                        • Update parameter & modifier references

                          When changing parameters in a method, be able to “update all references” of any overriden methods parameters. Would save a lot of manual work. And when changing a class or members modifier, be able to update all references.

                          For better example view and all my suggestions visit http://www.jsmars.com/csharp.php

                          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 and Editor  ·  Flag idea as inappropriate…  ·  Admin →
                          • Scrollbars to object explorer and better multi dimensional array view

                            To avoid scrolling forever when looking at big collections. Preferably also a index input box, and the ability to "pin" the whole view so you don't accidentally hover off it when you've found your correct range.

                            Also a better way to view multi dimensional arrays, possibly a scroll bar for each dimension.

                            For better example view and all my suggestions visit http://www.jsmars.com/csharp.php

                            2 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  ·  IDE and Editor  ·  Flag idea as inappropriate…  ·  Admin →
                            • Implicit static members for static classes

                              Static classes cannot have non-static members. Don't require static syntax in static classes on any members to avoid tons of redundant code.

                              Before:

                              static class MyStaticClass
                              {
                              public static int One { get; set; }
                              public static int Two { get; set; }
                              public static int Three { get; set; }
                              public static int Four { get; set; }

                              static int number = 5;

                              public static void DoSomething()
                              {

                              }
                              }
                              After:

                              static class MyStaticClass
                              {
                              public int One { get; set; }
                              public int Two { get; set; }
                              public int Three { get; set; }
                              public int Four…

                              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  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                              • Inherit superclass constructors

                                A syntax to inherit constructor from base class. For easiest implementation, the ability to right-click menu the class and "implement constructor... " with a list of possible constructors, in the same fashion VS suggests simplifications.

                                Suggested Syntax:
                                public base myClass(string, bool, int, double)

                                Before:

                                class baseClass
                                {
                                public baseClass(string has, bool lots, int of, double parameters)
                                {

                                }
                                }

                                class myClass : baseClass
                                {
                                myClass(string has, bool lots, int of, double parameters)
                                : base(has, lots, of, parameters)
                                {

                                }
                                }
                                After:

                                class baseClass
                                {
                                public baseClass(string has, bool lots, int of, double parameters)
                                {

                                }
                                }

                                class myClass : baseClass …

                                2 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 - C#  ·  Flag idea as inappropriate…  ·  Admin →
                                • Automatic constructor parameter setters

                                  Parameters may be set to members of the same name instead of having to have tons of lines of copying code.

                                  Suggested Syntax:
                                  public MyConstructor(this int MyPropertyName)

                                  Example before:
                                  public string Name { get; set; }
                                  public int Age { get; set; }
                                  public int Height { get; set; }

                                  public Person(string Name, int Age, int Height)
                                  {
                                  this.Name = Name;
                                  this.Age = Age;
                                  this.Height = Height;
                                  }

                                  Example after:
                                  public string Name { get; set; }
                                  public int Age { get; set; }
                                  public int Height { get; set; }

                                  public Person(this string Name, this int Age, this int…

                                  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  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                                  • Toggle visibility of comments & summary lines

                                    Be able to toggle visibility of full comment lines (//) and summary lines (///) for better code visibility. When these are hidden a one-pixel line in the comment color is shown between the lines. A quick hotkey will toggle all visibility, or hovering over a line will show a tooltip with the comment contents.

                                    For all my suggestions visit http://www.jsmars.com/csharp.php

                                    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…)
                                      1 comment  ·  IDE and Editor  ·  Flag idea as inappropriate…  ·  Admin →
                                    • Give the ability to add a few more rules to the coding conventions

                                      It would be nice to be able to add rules like exclusions to the naming conventions system introduced in VS 2017. I know it is possible to get something like this by ordering them, but it is a bit cumbersome.

                                      It would also be nice to have a few more smarts around which symbols it targets. For instance, the default end in Async for async methods gets triggered even if you are overriding a method for a class that doesn't follow that convention.

                                      In addition to this, it would be good to be able to set rules based on parent…

                                      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  ·  IDE and Editor  ·  Flag idea as inappropriate…  ·  Admin →
                                      • put out a virtual box image with visual studio 17 rc

                                        It would be useful to put out a virtual drive with visual studio 17 rc already pre-configured and ready to run.

                                        This would allow the hobbyist a lower bar to hurdle, and removes any chance of the RC corrupting a professionals dev box.

                                        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  ·  Developer Community  ·  Flag idea as inappropriate…  ·  Admin →
                                        • Allow using statements to be applied to the watch window

                                          If the current execution context at a breakpoint doesn't have a namespace referenced with a using statement, I have to manually type out the fully qualified name of any types I want to use there. There ought to be an option to somehow add a using statement to the watch window so the namespaces I want remain in scope.

                                          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  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
                                          • Don't see your idea?

                                          Feedback and Knowledge Base