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. 

NOTE: The Applications Insights forum has moved to the Azure feedback site.

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. Bring back Number Drag in Blend 2015

    In Blend 2013 and previous, whenever editing a numeric value in the Properties Pane the values could be changed with the mouse alone. A Target cursor would appear and by holding down left mouse button + dragging to left or the right the number would increase or decrease. This was an invaluable feature when adjusting margin, padding and even grid rows/columns. It allowed for adjustments to be made without staring at the number, nor two hands on the keyboard.

    IMHO, this was one of the killer features of Blend as a Visual Designer where the one hand is nearly always…

    12 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  ·  Blend for Visual Studio  ·  Flag idea as inappropriate…  ·  Admin →
    • Add IntelliTest for C++ native apps

      I just saw in the VS2015 launch video how IntelliTest works for C# and I would love to see similar functionality for native desktop C++ apps.

      With tools available like libFuzz from the LLVM project, this would actually hopefully not be as hard as it sounds to add at first glance.

      Add IntelliTest for C++ native apps

      36 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 →
      • add UNITY_VS compilation symbol.

        We've used ProjectFileGeneration event but have a issue regarding planner environment.

        They don't use Visual Studio and Visual Studio Tools for Unity. so our project file generator will cause compile error on their unity environment.

        We can ignore generator class with preprocessor if Unity Visual Studio Tools for Unity defines UNITY_VS compilation symbol.

        And, we use unity 5.2.0f2 and unity has UnityVS out of box support.
        I think it's not a bad idea to add compilation symbol.

        21 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…)
          2 comments  ·  Visual Studio Tools for Unity  ·  Flag idea as inappropriate…  ·  Admin →
        • Add support for LEFT/RIGHT/INNER/FULL/CROSS modifiers in linq JOIN expressions.

          In Linq/Entity framework, you transform LINQ statements into SQL. This is cool, because that way, I can have compile-time syntax/schema-checking in the SQL-statements I write. However, since there are no modifiers LEFT/RIGHT/INNER/FULL/CROSS, there's no user-friendly way to write LINQ/Entity SQL-statements. into ps from p in ps.DefaultIfEmpty() is not very intuitive, to say the least. If somebody sees this for the first time, it's absolutely not clear what this does. Furthermore, this makes writing complex expressions unnecessarely complicated. Why not just add support for left/right/inner/full/cross join ? That would make code a lot more maintainable. Having to write "from c in…

          28 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  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
          • Synthax highlighting for files

            I am able to set the type of a file in Visual C++ via the property pages (in my case C++ header) but it doesn't get a proper syntax highlighting.
            There is another option that can do that but I think if the type of the file is set via the property pages VS should recognize that and automatically apply the proper syntax highlighting and other code editor features.

            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…)
              under review  ·  0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
            • Add a "self" keyword, similar to PHP's self:: keyword, for accessing static members.

              In C# if you wish to unambiguously reference a static member locally you must specify the full type name, e.g.

              class ContrivedName {
              static void Foo() {
              }

              public ContrivedName() {
              ContrivedName.Foo();
              }
              public static ContrivedName Clone(ContrivedName source) {
              ContrivedName dolly = new ContribedName();
              dolly.CopyFrom( source );
              return dolly;
              }
              }

              I find it strange I had to type out "ContrivedName" 3 times in that example. It means I will have to use the Refector-rename functionality should I rename the type to something else, it also makes it more difficult to copy+paste code or other kinds of source-level code reuse.

              10 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 →
              • Enabe colors in solution Folders.

                I have many folders in my solution but only mainly focus on a few at a time. It would be great to be able to select a color for each folder (and a reset all back to yellow option) so I can instanly see folders I'm currenty working with.

                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  ·  User Interface  ·  Flag idea as inappropriate…  ·  Admin →
                • Allow 3rd Party Developers Access To ASP.NET Web Project "Change Authentication" Dialog

                  I run the very popular ASP.NET MVC Boilerplate project template extension which is currently the most popular project template in the Visual Studio Gallery.

                  I am asked every few days to add authentication support to the project template. I want to be able to hook into the "Change Authentication" dialogue and give consumers of my template the choice of which authentication provider they want to add.

                  77 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  ·  Extensibility  ·  Flag idea as inappropriate…  ·  Admin →
                  • Add Support For Non-Generic Members Within Generic Classes

                    I often find myself implementing the following (going for brevity over grammar here):

                    abstract class SomeClass<T>
                    where T : SomeClass<T>
                    {
                    overrides DoSomethingSansType(SomeClassSansType obj ){
                    DoSomething((T) obj)
                    }

                    DoSomething(T obj){
                    //42
                    }
                    }

                    abstract class SomeClassSansType {
                    abstract DoSomethingSansType(SomeClassSansType obj );
                    }

                    This allows all instances of SomeClass<?> to be grouped together and have their common functionality used.

                    It would be nice if the following could be added as syntactic sugar for the above:

                    abstract class SomeClass<T>
                    where T : SomeClass<T>
                    {
                    sanstype DoSomethingSansType(SomeClassSansType obj ){
                    DoSomething((T) obj)
                    }

                    DoSomething(T obj){
                    //42
                    }
                    }

                    //And later:
                    var list = new…

                    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 →
                    • How about Visual Basic search in the Developer Assistant and not just C# filter

                      Developer Assistant is a great tool, but we can only filter for C# code when searching, not everyone is C# expert, how about adding VB search also?

                      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 - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →
                      • Switch ranking of matches when searching with "CamelHumps" in NavigateTo

                        When using "CamelHumps" e.g. searching for FooBarBaz class by entering FBB in the NavigateTo (Ctrl+,) box, the matches for the camel humps are ranked lower than character matches (e.g. FbbClass). Since the camel hump style search only works if you enter in CAPS, it certainly seems like any camel hump matches should be ranked first in the results.

                        For the longest time, I didn't even realize camel hump searching even work in VS (I actually started writing an extension to add it) because of the poor ranking in the results.

                        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  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                        • Functions that return multiple values

                          I think it will be useful to let functions define anonymous types as return values, instead of declaring a structure or a class just to hold return values. I suggest something like this:

                          Function x() As {string, string}
                          Return New With {.Name = "Jon", .Note = "Test"}
                          End Function

                          Or:
                          Function x( ) As {Name As String, Note As String}
                          Return New With {.Name = "Jon", .Note = "Test"}
                          End Function

                          Or: use a keyword (i.e. Anonymous) and let the function infer the Anonymous Type definition from the return value:

                          Function x() As Anonymous
                          Return New With {.Name = "Jon",…

                          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  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                          • Add support for Proxy pattern

                            By specifying an optional "implementing" member for an interface, all calls are by default delegated to the implementing member. Optionally you can implement one or more in your class.

                            Interface definition thus:
                            public interface ISomeInterface
                            {
                            void SomeInterfaceMethod();
                            void SomeItherInterfaceMethod();
                            }

                            Class definition thus:

                            public class MyProxy : ISomeInterface by MyDelegateObject
                            {
                            private DelegateObjectClass MyDelegateObject {get; set;}

                            public SomeInterfaceMethod()
                            {
                            //do some extra stuff
                            MyDelegateObject.SomeInterfaceMethod(); // call delagate
                            }
                            }

                            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 →
                            • add option to NuGet to reinstall package

                              Sometimes references for a project gets messed up and the package that's installed (listed in packages.config) isn't matching what assemblies are referenced. It would be a good time saver to have an option/action on the nuget screen to be able to re-install a single package (ignoring any dependencies, etc). It can be done today with the uninstall, but then you have to search the whole NuGet directory and remember which version. When you have 10+ that becomes cumbersome.

                              14 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  ·  NuGet Package Manager  ·  Flag idea as inappropriate…  ·  Admin →
                              • Clean up MFC/ATL by building with /Wall - remove the warnings (aka sloppiness) before release

                                If using MFC/ATL and compiling with /Wall, there is an ocean of warnings. The idea is for ME to find issues with MY code, the that provided my MS. There's no excuse to leaving C4365 (type conversion) warning littered everywhere. C4574, C4263, 4264 should also be addressed. C4820 is in the winnt.h file. Explicit padding to remove the warning would be more professional.

                                Who knows, in the process of cleaning up, real issues can be uncovered and resolved.

                                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 →
                                • Add VS Express and VS Code to visualstudio.com/ Comparison Page

                                  hi,

                                  i could not find the correct place to submit this request.

                                  i have a request for this page on your site

                                  https://www.visualstudio.com/en-us/products/compare-visual-studio-2015-products-vs.aspx

                                  i want you to add two products to this page

                                  Visual Studio Express and VS Code

                                  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  ·  Flag idea as inappropriate…  ·  Admin →
                                  • new concepet compressing file is't mathematic prosedur for a binary forme

                                    french languge
                                    la méthode c'est purement mathématique .c'est une suite a parmetrage infinie! je vous donne laprocedure de compression
                                    1)soit les donneés x1 x2 x3 x4.......xn
                                    2)soit Rn+1=(xn+1)^2+(Un)^2+(Vn)^2
                                    Un+1=(Rn+1)^1/2+(Un^2)/Rn+1
                                    Vn+1 =(Rn+1)^1/2-(Vn^2)/Rn+1
                                    les (xn) sont des fragments du code(chaine) binaire du fichier à compressé

                                    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 - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →
                                    • 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 - Other  ·  Flag idea as inappropriate…  ·  Admin →
                                      • Create an IDE that not only support current version but also supports other version. One in all and all.

                                        To optimize the Performance issues, Make Sure we can Use only one Version at a time.
                                        To optimize the Storage issues, For the developer versions or Pro ones, Try and make it in the Cloud rather than Local Machines such that it will not only optimize our Personal Machine but also improves the overall Performance.

                                        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  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                        • auto-create delegates for addressof

                                          When using AddressOf in VB.NET to reference a method for a P/Invoke, such as a subclassing method referenced by the Int32 lVal parameter of the SetWindowLong() API, we are required to create a Delegate to the P/Invoke declaration, thus replacing something like "ByVal lVal As Integer" with "ByVal lVal As SubClassDelegate" in the SetWindowLong() declaration. Being that the signature of the method being referenced by AddressOf is already understood by the compiler (after the first pass), and the compiler knows that it is a method, why can we not short-circuit this by allowing the developer to simply declare "ByVal lVal…

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

                                          Feedback and Knowledge Base