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

    386 votes
    Vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      Signed in as (Sign out)
      You have left! (?) (thinking…)
      13 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
    • Start developing the Windows API Code Pack again

      Back in the Windows 7 timeframe, Microsof gave us the "Windows API Code Pack", as a way of using some of the new Win 7 APIs from .Net.

      It was really useful, but (like anything) it had some bugs, and was missing some useful features.

      Unfortunately it seems to have been abandoned by Microsoft, with no release since August 2010, and the website moved to the "archive" site:
      http://archive.msdn.microsoft.com/WindowsAPICodePack

      Please bring it back!

      NuGet seems like a perfect vehicle for distributing a package such as this, so that API bindings can ship alongside OS releases (or not), rather than being…

      350 votes
      Vote
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        Signed in as (Sign out)
        You have left! (?) (thinking…)
        10 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
      • Please provide Visual Studio 2017 Express.

        This suggestion is migrated to Developer Community. Please use below link to view the current status.
        https://developercommunity.visualstudio.com/content/idea/351470/please-provide-visual-studio-2017-express.html
        Please provide Visual Studio 2017 Express.

        311 votes
        Vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          Signed in as (Sign out)
          You have left! (?) (thinking…)
          9 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
        • WeakReference and WeakEvent operators

          //weak reference:
          var value = weak(new Reference());

          //weak event:
          var source = GetLongRunningObject();
          source.PropertyChanged += weak(source_PropertyChanged)

          Or in VB.NET:
          'reference:
          Dim source = Weak(GetReference)

          'event:
          Dim source = GetLongRunningObject();
          AddWeakHandler source.PropertyChanged, AddressOf source_PropertyChanged

          I would surely prefer a symbol operator rather than a verbose one, but I would prefer seeing it in the language

          277 votes
          Vote
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            Signed in as (Sign out)
            You have left! (?) (thinking…)
            4 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
          • make .net real platform independent. add linux support, mac osx, etc.

            This suggestion is migrated to Developer Community. Please use below link to view the current status.
            https://developercommunity.visualstudio.com/content/idea/351010/make-net-real-platform-independent-add-linux-suppo.html
            create .net runtime for other os. linux, mac osx,

            268 votes
            Vote
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              Signed in as (Sign out)
              You have left! (?) (thinking…)
              10 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

              Thanks a lot for the feedback. Not only is this happening, it’s also happening in the open! You can follow as we’re making progress on GitHub. You can even participate and help us bringing .NET to Mac OSX and Linux!

              See these posts for more details:

              http://blogs.msdn.com/b/dotnet/archive/2014/12/04/introducing-net-core.aspx

              http://blogs.msdn.com/b/dotnet/archive/2014/11/12/net-core-is-open-source.aspx

              http://blogs.msdn.com/b/dotnet/archive/2015/02/03/coreclr-is-now-open-source.aspx

              Thanks,
              Immo Landwerth
              Program Manager
              .NET Team

            • Provide a ResourceManager abstraction mechanism

              The existing System.Resources.ResourceManager is based on .resx files built into a fallback assembly with multiple satellite assemblies. This model works fine for some situations but it is inappropriate for others. It is relatively easy to create custom resource managers but it is not simple to get an application to use the custom resource manager instead of the ResourceManager.

              What is needed is an abstraction from the 'default' ResourceManager - a mechanism by which I can tell my application to use *my* resource manager instead of System.Resources.ResourceManager.

              The solution should not be tied to a specific user interface technology. For example…

              246 votes
              Vote
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                Signed in as (Sign out)
                You have left! (?) (thinking…)
                3 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
              • Allow bulk update target .NET framework version for all projects in a solution

                The solution (.sln) properties allows bulk update of Configuration and Platform properties. It should also allow updating the TargetFramework property.

                202 votes
                Vote
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  Signed in as (Sign out)
                  You have left! (?) (thinking…)
                  6 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                • Custom AOP Aspects implementation and aspect-weaver using Roslyn

                  Roslyn is a very open compiler framework which could be used to implement AOP aspect-weaver at compile time instead of using Dependency Injection containers at run time which is not good for many scenarios.

                  194 votes
                  Vote
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    Signed in as (Sign out)
                    You have left! (?) (thinking…)
                    0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                  • Allow building, running, and debugging a .NET application in a long path

                    This suggestion is migrated to Developer Community. Please use below link to view the current status.
                    https://developercommunity.visualstudio.com/content/idea/351628/allow-building-running-and-debugging-a-net-applica.html
                    Filed on behalf of our customers from here:

                    https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/2156195-fix-260-character-file-name-length-limitation

                    The Windows and .NET platform have changed their IO APIs to allow handling paths that are longer than MAX_PATH. At the same time, this doesn't immediately make all scenarios work, specifically:

                    - The CLR loader needs to support loading PE files (both native and managed) from paths longer than MAX_PATH
                    - Windows still doesn't support handling long paths from all CLI commands
                    - Many products have excessive path validation and block longer paths even…

                    183 votes
                    Vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      Signed in as (Sign out)
                      You have left! (?) (thinking…)
                      4 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                    • Add more garbage collector options including a low latency option and an option tuned for immutable data structures

                      GC latency in .NET 4 is orders of magnitude worse than competitors like Staccato (2008). Performance when using immutable data structures is several times worse than alternatives like OCaml (1995).

                      181 votes
                      Vote
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        Signed in as (Sign out)
                        You have left! (?) (thinking…)
                        5 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                      • Make Entity Framework Designer support Synonyms

                        Entity Framework will happily support Synonyms in Code First, and if you can manage to merge two edmx files, you can make it work as well (see http://rachel53461.wordpress.com/2011/05/22/tricking-ef-to-span-multiple-databases)

                        All that is necessary is to add a "Synonyms" item in the Update Model from Database dialog. Of course this would also require that Synonyms be loaded into the SSDL so they can be mapped.

                        This would allow cross-database queries and execution without having to change Entity Framework at all. Of course true cross-database support would be ideal, but I see this as an effective compromise.

                        175 votes
                        Vote
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          Signed in as (Sign out)
                          You have left! (?) (thinking…)
                          1 comment  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                        • Support Bridge.net

                          Along with Xamarin and Cordova tools that indeed help multi-platform development, maybe you should also promote Bridge.NET's C#-to-JavaScript/TypeScript.

                          This way a developer can write business logic AND user interface façade services using C#, and then develop NATIVE user interfaces using any of these technologies: WPF/XAML, UWP, Windows Forms, ASP .NET WebForms/MVC/WebAPI, Xamarin, Unity (!) - directly, and using the generated JavaScript and TypeScript definitions as well with: HTML5 (Angular/other DOM frameworks), UWP JS, Cordova tools, and NodeJS (server side)!

                          173 votes
                          Vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            Signed in as (Sign out)
                            You have left! (?) (thinking…)
                            3 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                          • Adopt IANA Standard Time Zones

                            The .Net BCL TimeZoneInfo class is a wrapper on top of Windows timezone data. Now that ICANN/IANA is formally managing the zoneinfo database (since Oct 14, 2011), Microsoft should favor this standard instead of its proprietary time zone implementation. See http://www.iana.org/time-zones and http://en.wikipedia.org/wiki/Tz_database for further details.

                            This would allow .Net much greater interopability with other Internet platforms.

                            Since Windows timezones have been around for quite some time, Microsoft should provide this as an option, perhaps in a different set of classes, with some translation to and from the existing TimeZoneInfo class for backwards compatibility.

                            (also - it would be ideal…

                            165 votes
                            Vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              Signed in as (Sign out)
                              You have left! (?) (thinking…)
                              3 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                            • OpenGL in Windows 10 Universal Apps

                              It would be great to see OpenGL supported in Windows Universal Apps. So we can use OpenGL in modern apps for the desktop as well as for phones.

                              Please visit the SharpGL project at GitHub (https://github.com/dwmkerr/sharpgl) where Dave Kerr and I am working on. We provide a simple wrapper and some framework stuff around OpenGL to make it available in .NET languages.

                              We want to be platform independent as OpenGL is. So please help us and all the developers who wants to bring their iOS and Android OpenGL apps to Windows 10 (desktop and phone).

                              161 votes
                              Vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                Signed in as (Sign out)
                                You have left! (?) (thinking…)
                                6 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                              • SmtpClient should allow to specify the envelope sender to support a return path for VERP

                                Implement an optional envelope sender address used for the MAIL FROM command.

                                This is needed, because the address in the MAIL FROM command is used for bounce messages.
                                This will also result in an different return path header.

                                Read more on "Variable envelope return path" here: http://en.wikipedia.org/wiki/Variable_envelope_return_path

                                please see also this similar feature request: http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2180497-smtpclient-should-allow-a-null-mail-from-in-the-sm

                                155 votes
                                Vote
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  Signed in as (Sign out)
                                  You have left! (?) (thinking…)
                                  0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                • Number interface for int,short, double, float, etc...

                                  Here's the doc's for Linq.Sum : http://msdn.microsoft.com/en-us/library/bb345537.aspx

                                  It would be nice if there could be just 1 method

                                  Sum(IEnumerable<Number>)

                                  For this to happen there would need to be a Number Interface that is common to the number structs (int, short, double, etc)

                                  I would suggest it includes add, subtract, multiply, divide and asInt, as Double etc....

                                  I believe this would reduce a lot of duplicate code, plus would allow for expandability with new objects

                                  146 votes
                                  Vote
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    Signed in as (Sign out)
                                    You have left! (?) (thinking…)
                                    7 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                  • Make IList<T> inherited from IReadOnlyList<T>

                                    It satisfies Liskov substitution principle.
                                    Example:

                                    void SomeMethod(IReadOnlyList<T> list)
                                    {/*...*/}

                                    void MyMethod(IList<T> list)
                                    {
                                    //do something with list, add/remove elements etc.
                                    SomeMethod(list);//PROBLEM
                                    }

                                    Currently IList<T> cannot be passed to SomeMethod. But IReadOnlyList<T> consists of a subset of methods from IList<T> with the same signature and semantics. I feel it would be much better to make this explicit by inheriting IList<T> from IReadOnlyList<T>.

                                    143 votes
                                    Vote
                                    Sign in
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      Signed in as (Sign out)
                                      You have left! (?) (thinking…)
                                      8 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                    • MSTest API

                                      It would be very useful if MSTest could be made available through a programmatic API, and have programmatic access to the results.

                                      Whilst it's true that we can lunch MSTest.exe from a separate process, and then query the corresponding results file, in reality this is clunky, inelegant and annoying.

                                      The of other unit test frameworks (NUnit, xUnit) is already publicly available, so why can't we have this for MSTest.

                                      142 votes
                                      Vote
                                      Sign in
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        Signed in as (Sign out)
                                        You have left! (?) (thinking…)
                                        3 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                      • Support the -Loopback token in proxy bypass lists

                                        The .NET Framework is currently hardcoded to bypass the proxy for traffic destined to localhost/127.0.0.1/::1. This makes sense in general, but greatly complicates debugging with Fiddler or other proxies.

                                        In 2011, this problem was fixed in WinINET and WinHTTP with the introduction of the "minus-loopback" token in proxy bypass lists. When <-loopback> is present, the client should not bypass the proxy for local addresses.

                                        See http://blogs.msdn.com/b/fiddler/archive/2011/02/10/fiddler-is-better-with-internet-explorer-9.aspx for more detail.

                                        141 votes
                                        Vote
                                        Sign in
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          Signed in as (Sign out)
                                          You have left! (?) (thinking…)
                                          4 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                        • Option to disable file nesting in ASP.NET 5 / MVC 6 projects

                                          Can we please have a way to disable the auto file nesting in ASP.NET 5 / MVC 6 projects? In some folder structures it can be extremely annoying - for example, if the folder itself already represents a group of related files, in which case the additional nesting becomes highly frustrating.

                                          Also, the auto nesting is highly inconsistent:
                                          It nests .css, .js and .ts under .html, but for some reason .less and .scss are not nested, despite the fact that they are conceptually exactly the same as .ts - they just compile to .css instead of .js.

                                          There really need…

                                          135 votes
                                          Vote
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            Signed in as (Sign out)
                                            You have left! (?) (thinking…)
                                            7 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

                                          Feedback and Knowledge Base