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. Offer to implement callbacks

    I type-in new PropertyMetadata(OnCenterXPropertyChanged) but since I haven't yet implemented On..., I get a suggestion by the IDE to implement it but it suggests to add field, property or read-only field, not to implement the callback for me with the given name. It can find the method signature needed from the delegate that PropertyMetadata (one of its overloaded versions) expects

    0 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 →
    • Support OData Destination

      Please add support of OData Destination in SSIS packages, supporting operations: POST, PUT, PATCH.

      0 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  ·  SQL Server and Data Tools  ·  Flag idea as inappropriate…  ·  Admin →
      • select different Test Agent for different scenarios in load test plugin

        Whether could add a feature that let us select different Test Agent for different scenarios in load test plugin. Just as the following community's requirement.

        0 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  ·  Accessibility  ·  Flag idea as inappropriate…  ·  Admin →
        • Add "initializers" for existing variables

          Add semantic sugar to set properties in a "batch" just like the object initializers work. Example:

          Today:

          theObjToSetTheProperty.Prop1 = "I";
          theObjToSetTheProperty.Prop2 = "like";
          theObjToSetTheProperty.Prop3 = "long";
          theObjToSetTheProperty.Prop4 = "names";

          Suggestion:

          theObjToSetTheProperty
          {
          Prop1 = "I",
          Prop2 = "like",
          Prop3 = "long",
          Prop4 = "names",
          }

          0 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 →
          • Rule Set Adds Relative Path in CSProj

            When selecting your own defined rule set in a VS project, it adds the relative path in the .csproj file. Meaning, if I have a rule set stored at a certain location show below:

            C:\Team\TFS\Project\Team.ruleset

            The .csproj file will contain something like:

            <CodeAnalysisRuleSet>\..\..\TFS\Project\AlcMfgItMain.ruleset</CodeAnalysisRuleSet>

            I should be something like this:

            <CodeAnalysisRuleSet>C:\Team\TFS\Project\Team.ruleset</CodeAnalysisRuleSet>

            I would like the ability to set absolute path without have to unload project, edit the xml manually, reload the project. The reason is we may have extension templates (or the project may move locations) and the relative path is no longer valid.

            0 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 →
            • Queue build upon saving a build definition

              Give the option to queue a new build upon saving a build definition. This ensures that people think about retesting their build definition after performing changes (we had the situation where someone update a CI build which is not used on a daily basis, all of a sudden we had build issues, where we spend a while in analyzing the latest change set before coming to the point of going through the build definition changes...)

              0 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  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
              • 0 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 →
                • Support shorcuts on the tabs floating in another monitor

                  Currently, when you try the shorcut shift + f5 to stop debugging in a floating tab in another monitor, nothing happens. I have to go back to the original monitor (the one with vs) and then press shift + f5.

                  0 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  ·  Flag idea as inappropriate…  ·  Admin →
                  • if should accept bool?

                    At TrackingCam app (http://TrackingCam.codeplex.com) I have the following WPF code, where cbTrackingPresenter is a CheckBox control defined in my MainWindow's XAML:

                    private void cbTrackingPresenter_Checked(object sender, RoutedEventArgs e)
                    {
                    if (cbTrackingPresenter.IsChecked == true)
                    StartTrackingPresenter();
                    else
                    StopTrackingPresenter();
                    }

                    note the (redundant in my opinion) == true pattern used there. If the == true is omitted, you get the compile-time error "CS0266", with message "Cannot implicitly convert type 'bool?' to 'bool'. An explicit conversion exists (are you missing a cast?)"

                    Why not make the "if" clause (and "while" and any clause accepts a boolean/condition) more clever and have it accept bool?…

                    0 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 a bottom type

                      It would be nice if C# had a bottom type.A true bottom type would make C# a far more pleasant and consistent language to work with, requiring fewer hacks.

                      void doesn't fit the bill; I can't declare void as the type of a parameter, nor as a type parameter.

                      0 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 →
                      • Keep Debugger Events after the debug session ended

                        from external user: Can you keep the debugger events after the debugging session? Would be cool to analyze my debug outputs, exceptions etc. after ending the debug session. I am missing the white markers in the diagnostic chart.

                        0 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  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
                        • Solution explorer should illustrate difference between library and executable projects

                          The icons and property sheets for C# libraries and C# executables are identical. One shouldn't have to bring up the project property page in order to see the difference, it should be obvious from the icon. Or *at least* show the target type on the properties pane when the project is selected.

                          0 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 →
                          • Show the checkout status for a file in the tab for the document in the editor

                            I often find myself having to click on 'Sync with Active Document' in order to view whether a particular file has been modified (i.e. we use Git and modified means whether I've edited the file locally).

                            It would be useful to have this information displayed in the tab for the document.

                            0 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  ·  Version Control (Git/TFVC)  ·  Flag idea as inappropriate…  ·  Admin →
                            • Сворачивание блока кода

                              Было бы удобно если бы в редакторе была возможность сворачивать блок кода ({ ... }) по аналогии с возможностью сворачивания тела классов, тела методов, регионов (#region ... #endregion), пространств имён, комментариев и других элементов.

                              0 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 →
                              • Extend the With statement in Visual Basic

                                Take the following code:

                                object1.prop1 = object2.prop1
                                object1.prop2 = object2.prop2
                                object1.prop3 = object2.prop3

                                Using the current With statement, I can rewrite this to:
                                With object1
                                .prop1 = object2.prop1
                                .prop2 = object2.prop2
                                .prop3 = object2.prop3
                                End with

                                To minimize the amount of typing, I'd like a second objectExpression in the With statement:

                                With object1, object2
                                .prop1 = .prop1
                                .prop2 = .prop2
                                .prop3 = .prop3
                                End with

                                0 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 - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →
                                • Remove "doesn't return a value on all code paths" Warning for Enum

                                  When creating a Function or a Property's Get method, it is not unusual to use a Select statement to return a value based on a variable that is of an Enum type. Because an Enum type has a finite (and usually small) number of possible values, it is not uncommon to have a Case for each one. If there is a Case for each one, and each one returns a value, there is no need for a Case Else or other Return statement, yet Intellisense gives a Warning saying that the method does not return a value on all code…

                                  0 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 - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →
                                  • Create forced lambda expression syntax to distinguish from delegates and implement 'var' type inference

                                    Example says more than 1000 words...

                                    C# 6:
                                    Func<string,bool> testString = str => str.Equals("Test")
                                    Expression<Func<string,bool>> testStringExpr = str => str.Equals("Test")

                                    Suggested C# 7 (or 8 ;)):
                                    var testString = str => str.Equals("Test")
                                    var testStringExpr = str ==> str.Equals("Test")

                                    Note: Inference was already suggested: https://visualstudio.uservoice.com/forums/121579-visual-studio-2015/suggestions/2873856-implement-var-type-inference-for-lambda-expressi

                                    0 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 →
                                    • 变量名打印

                                      //richTextBox1.Text += arry.GetType().ToString()+"\n";// 输出为 System.Int32
                                      //richTextBox1.Text += arry.GetType().Name.ToString() + "\n";//输出为Int32
                                      //richTextBox1.Text += arry.GetHashCode().ToString()+"\n";//输出为8;

                                      int arry = 8; richTextBox1.Text += arry.ToString() + "\n";
                                      //输出为arry;要输出arry 不是 8// 我上面是错的 正确的请给下

                                      0 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 →
                                      • 来看看java的提示,你们这些高高在上的工程师是不是感觉,这就是垃圾?

                                        int[][] a1 = {{1,5},{1,18}};
                                        int[][] a2 = {{0,0},{2,20}};
                                        int[][] a3 = {{1,0},{4,20}};
                                        s.threeSegment(a1, a2, a3);
                                        int i,j;
                                        for (int j2 = 0; j2 < a3.length; j2++) {

                                        }

                                        0 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 →
                                        • Can you make solution macros available for VC# and VB projects?

                                          When we create a VC++ project, we can indicate the output directory like $(SolutionDir)$(Platform)\$(Configuration)\, but these convenient solution macros can not be used in VC# and VB projects. So can you please make these macros available for VC# and VB projects so that we can use them to set output directories and intermediate directories like VC++ projects, especially it would be convenient in a mixed solutions which contains both C++/CLR projects and C# projects.

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

                                          Feedback and Knowledge Base