Visual Studio 2015

Welcome to the Visual Studio 2015 UserVoice site. This site is for suggestions and ideas for the IDE of Visual Studio (Community, Professional or Enterprise). You can also add suggestions for Team Services or Visual Studio Code. Or go to Connect to file a bug.

We also added an Announcements section where we will be posting special opportunities for you to participate in.

Read about current UserVoice statuses and their definitions in our article “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. Please create a DGML visualizer control that can be incorporated into applications at runtime.

    It would be very nice to have a control for displaying DGML graphs at runtime for my application. I think it would make a greate UI element.

    86 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…)
      9 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
    • Integrated .Net Obfuscation for Mobile & Modern (Windows Phone & Windows Store) Apps & Games

      *** Visual Studio 2012 absolutely needs to have an integrated .Net obfuscation feature that works on Windows Store and Windows Phone Store apps & games. ***

      The Dotfuscator tool that's integrated into Visual Studio 2012 cannot be used to obfuscate Windows Store or Windows Phone Store apps, making it fairly useless to "modern app" developers who are targeting Windows 8, Windows RT, and/or Windows Phone 8.

      On April 30, 2013, PreEmptive (the vendor of Dotfuscator) expired the license of the free (and separately downloadable) "Dotfuscator for Windows Phone 7" tool. PreEmptive now charges $500/year or $150/quarter to use another version…

      78 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…)
        4 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
      • Support covariant return types

        Allow covariant return types in the CLR for overrides and interface implementations. I frequently think of designs where this would be useful, and the workarounds can be pretty clumsy: http://loyc-etc.blogspot.com/2008/09/simulating-covariant-return-types-in-c.html

        This suggestion is also listed on MS connect; I'm not sure why MS has two web sites for suggestions. http://connect.microsoft.com/VisualStudio/feedback/details/90909/need-covariant-return-types-in-c-all-net-langage

        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…)
          4 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
        • Make loading satellite assemblies signed with no key or a different key optional

          At present the CLR only loads satellite assemblies if they are signed with the same key as the fallback assembly to which they refer. This means that the only people that can add new cultures to an existing assembly are the original authors. This includes the .NET Framework itself, ASP.NET MVC, Silverlight and every signed assembly released by Microsoft (or indeed anyone else).

          The .NET Framework 4 is currently available in 23 languages (plus English). ASP.NET MVC 3 is currently available in 9 languages. If the language you want isn't on this list then there is nothing you can do…

          76 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  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
          • WCF 5 for .NET Core

            WCF is Microsoft’s unified programming model for building service-oriented applications. It support multiple transport protocols (HTTP, TCP, UDP, and custom transports) and allows switching between them (ASP.NET Web API for http/https/websockets only). Supports building services with WS-* standards like Reliable Messaging, Transactions, Message Security.

            In Enterprise Apps WCF remains very popular.

            Please impliment new WCF version for new .NET Core and continue support old WCF (4.6) like ASP.NET 4.6 supports for Full .NET and ASP.NET 5 only for .NET Core.

            74 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  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
            • Mirror the .NET framework source code on Github

              It would really be helpful if the .NET framework source code was available for online browsing and referencing. Hosting the source code on GitHub would enable this as well as the ability to link to files and even specific lines of code. However the current code drop would need to be better organized before it is mirrored online. Organizing by folder/namespace would make it really easy to navigate.

              71 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  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
              • Add ToQueue<T> and ToHashSet<T> extension methods on IEnumerable<T>

                IEnumerable<T> has the ToList<T> extension method, and it would be very useful to have equivalent ToQueue<T> and ToHashSet<T> methods. Although Queue<T> and HashSet<T> have constructors that take an IEnumerable<T>, they cannot be used when T is an anonymous type. For example this is an error:

                var q = new Queue(Enumerable.Range(1, 3).Select(i => new { Prop = 7 }));

                But the equivalent using ToQueue works fine. It is fairly easy to define your own extension methods along the lines of:

                public static HashSet<T> ToHashSet<T>(this IEnumerable<T> collection)
                {
                return new HashSet<T>(collection);
                }

                But the use case is very common, so they seem…

                68 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  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                • Add a IFormattable to the boolean type

                  It would be handy if I could provide a custom format when writing out boolean values.

                  I propose this would look like this: "{0:String_If_True:String_If_False}".

                  An example in C# would look like this:

                  bool result = SomeBoolReturningFunction();
                  Console.WriteLine("Result: {0:Success:Fail}", result);

                  Same example in VB:

                  Dim result as boolean = SomeBoolReturningFunction()
                  Console.WriteLine("Result: {0:Success:Fail}", result)

                  68 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…)
                    under review  ·  4 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                  • Support System.IO APIs for SkyDrive's Smart Files

                    Filed on behalf of our customers.

                    As described in this blog post [1], SkyDrive has a notion of smart files [2] which aren't directly accessible using the regular System.IO APIs, such as File.Open. We provided sample code [3] that shows how one can write code that handle smart files correctly.

                    But to quote our customer:

                    It would be helpful for Microsoft to provide a full blown solution to this which maps all key methods in System.IO such as File.Copy, File.Move etc. to their WinRT API equivalents. This issue is starting to crop up on support forums as it has caught…

                    64 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 →
                    • Modify CultureData to support PersianCalendar

                      Currently, the windows OS does not return the correct Calendar for "fa-IR" culture, so anytime you create a new CultureInfo instance you end up with a wrong calendar!
                      I couldn't help but notice in the .net reference source there's also a similar issue with the "zh-TW" culture which you have managed to fix when you make reference to CalendarIds property, as you can see here:
                      http://referencesource.microsoft.com/#mscorlib/system/globalization/culturedata.cs,93714edd02838809

                      As mentioned above there's a line of code in culturedata.cs class which fixes ""zh-TW"" culture with Calendar.CAL_TAIWAN
                      I suggest you do the same with PersianCalendar (which is a built-in type within .net framework)
                      I…

                      60 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  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                      • DNX Package Viewer Search

                        With so many packages and dependencies pulled into a DNX we need a way to search the package dependencies for specific packages, so we can see what references a particular package or whether it's even referenced at all. Along the same lines we also need a view that shows all packages in use as a single level, non-tree list.

                        55 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  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                        • Make System.Net.Http referenced by default in new .NET 4.5 projects

                          Open Visual Studio 2013 and create a new console project or class library. By default, the project will reference System.Data, System.Data.DataSetExtensions, but not System.Net.Http.

                          This makes no sense.

                          How is it more likely that I will be working with DataSets than making HTTP requests? This is 2014, not 2004.

                          Please update the project templates to reflect the needs of programmers today.

                          55 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…)
                            7 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                          • Make Task<T> implement covariant interface ITask<out T>

                            Task<T> sounds like a good candidate for covariance. Except classes can't be covariant in .Net, only interfaces can.

                            So it would be nice if Task<T> implemented a new, covariant interface ITask<out T>.

                            I believe that adding a new interface to existing class doesn't break any backwards compatibility, so this shouldn't cause any problems.

                            54 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…)
                              3 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                            • Update WPF to V5 by 2014

                              Can we get an update as what work is getting done on the next release of WPF from 4.5 which was released last August.

                              Want to know if I should maintain my xaml skillset or get rid of it for HTML5 and etc....

                              53 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  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                              • Allow ExcludeFromCodeCoverageAttribute to be used on assembly level

                                It is great that code coverage analysis can be easily run from test explorer window in VS 2012. But I suppose that it is often not appropriate to analyze code in test assembly itself. I think that it well be appropriate to exclude test assemblies from code coverage totally by using ExcludeFromCodeCoverageAttribute on assembly level in those assemblies so they will not produce 'garbage' code coverage results.

                                Now it is not possible since ExcludeFromCodeCoverageAttribute cannot be used at assembly level. There are several possible targets for this attribute however, allowing for some flexibility. I think, it will be convenient to…

                                52 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…)
                                  5 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                • Allow Expression.Assign() to set readonly struct fields as in IL & reflection

                                  Expression trees offer a very good alternative to direct IL generation, they are much easier to write and debug. Yet, for some reason, they attempt to enforce C# language rules instead of allowing the same functionality as reflection and IL.

                                  When deserializing an array of structs T, if the struct contains a readonly field, there are no way to initialize it except through the use of IL or reflection.

                                  Expression.Assign( fieldOfStructInArrayExpression , newValueExpression )
                                  throws ArgumentException "Expression must be writeable"

                                  Disscussion is at http://stackoverflow.com/questions/9930459/how-to-initialize-a-struct-in-array-with-readonly-values-using-expression-trees

                                  49 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  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                  • SmtpClient should allow a null MAIL FROM in the SMTP envelope

                                    Currently, the behavior of the built-in SmtpClient is to set the SMTP envelope's MAIL FROM as follows:

                                    - Use the MailMessage.Sender property if it is not null; otherwise
                                    - Use the MailMessage.From property

                                    When a .NET application wants to send an auto-response e-mail (such as a "Support Ticket Created" or a "Message Accepted") e-mail, it would be nice to be able to send a null envelope from ("MAIL FROM: <>"). This translates to a "Return-Path: <>" stamp and is the SMTP-sanctioned way to say "I don't want to start an auto-responder war; don't send any bounces back to me."

                                    But…

                                    49 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  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                    • NGEN should support explicit path based assembly load

                                      Please add NGEN support for Assembly.LoadFile and Assembly.LoadFrom. For more context see the blog post http://blog.bonggeek.com/2013/12/net-ngen-explicit-loads-and-load.html

                                      Today NGEN images (or native image probing) is supported only in the default load context. That means any mechanism used to load assemblies from an path, e.g. using Assembly.LoadFile do not get NGEN support. For Assembly.LoadFrom it's even weirder, it sometimes work and not on other times. This makes hard to build performant large scale applications that uses loosely coupled plugins that are loaded dynamically

                                      49 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  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                      • Add support for the TLS Server Name Indication (SNI) Extension to SslStream

                                        Add support for the TLS Server Name Indication (SNI) Extension to allow more flexible secure virtual hosting and virtual-machine infrastructure based on SSL/TLS protocols.

                                        49 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…)
                                          5 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                        • Additional overload to System.Concurrent.ConcurrentDictionary GetOrAdd

                                          As it stands, the ConcurrentDictionary has a GetOrAdd method that accepts a valueFactory delegate that is not included within the scope of the lock, hence it can be executed multiple times and as a result adding the value to the dictionary and executing the valueFactory is not an atomic operation. This behaviour seems to be misleading in relation to what the API leads one would assume that the benifit of having a method accepting a function overload would be. Let's see an example:

                                          For example, the intention of the following code is clear:
                                          Object value = ValueFactory(); myConcurrentDictionary.GetOrAdd(key, value)

                                          From…

                                          48 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…)
                                            4 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                          • Don't see your idea?

                                          Feedback and Knowledge Base