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. Note that Application Insights has moved to its own UserVoice forum.

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

    69 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 →
    • 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…)
        2 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 →
        • 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.

          62 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 →
          • Make System.Web.HttpValueCollection public

            Right now, System.Web.HttpValueCollection is internal and derives from NameValueCollection.

            This is problematic for two reasons:
            First, HttpUtility.ParseQueryString returns a HttpValueCollection as a NameValueCollection but because HttpValueCollection overrides ToString(), this is a source of hard to spot bugs: I can call ToString on the "NameValueCollection" returned by ParseQueryString and get a proper querystring, but calling ToString on a real NameValueCollection just returns the type name. (Unlike interfaces, returning a more derived concrete type as a base type that overrides ToString is very surprising)

            Second, HttpValueCollection actually contains really useful functionality for creating querystrings - functionality that is useful for building URLs.

            61 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…

              61 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 →
                • 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 →
                  • .Net Native compliler for Desktop

                    Provide the .Net Native compiler not only for Windows Store applications.

                    50 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 →
                    • Add LocalDB to Clickonce automatic publishing Prerequisite

                      We need an easy way to publish an app with LocalDB. Clickonce does not currently support this as an easy prerequisite the same way it does SQL Server Express, or Compact. Developers will likely use LocalDB as a solution more if it was easier to publish. Not everyone is going to be wiling to spend 2- 5 hours researching how to hard code a bootstrap to publish LocalDB when ClickOnce does it with a check box. I think developers like myself will remain resistant to using this until Microsoft makes it easier to publish.

                      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…)
                        2 comments  ·  .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 →
                        • GeoCoordinate class included in Portable Class Library

                          Seems like a natural fit. The title really says it all.

                          47 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 →
                          • Create [WarningAttribute] that triggers compiler warnings/errors the way [ObsoleteAttribute] does.

                            Add a [WarningAttribute] that works the same way as [ObsoleteAttribute]; it would trigger a compiler warning or error with a customized message. Ideally it would not be sealed. You could do things like:

                            [Warning("This class uses PInvoke and will prevent ARM compatibility.")]

                            [Experimental("This method has not completed Quality Assurance, and should not be used in a production environment.")]
                            This feature would be particularly useful for component creators.

                            This would be the bees' knees.

                            46 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 →
                            • Reduce JIT time with by packaging profiles for non-win8 Store apps

                              It is great that I can package my profiles using System.Runtime.ProfileOptimization for Win8 Store Apps (http://support.microsoft.com/kb/2715214). However we need to do it for NON-Win8 Store apps.

                              42 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 →
                              • Adopt dependency injetion patterns in core fx classes

                                Many "core" framework classes (File, ConfigurationManager, ResourceManager, etc) rely on static members to provide their functionalities, making them very hard to mock without the use of isolation framework (such as Moles or TypeMock, which add their own functionality).

                                If the framework just offered interfaces for such classes, injecting them as dependencies would be an easy task and avoid a lot of the hassle with those isolation tools.

                                41 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 →
                                • Please implement ReaderWriterLockSlim on the .Net Compact Framework

                                  Please implement ReaderWriterLockSlim on the .Net Compact Framework

                                  41 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 →
                                  • Add the DatabaseFirst option for Asp.Net 5 projects how it was in earlier versions of Asp.Net

                                    Give back the wizard for using Database First like it was for Asp.Net in earlier versions where we could add the Db Entities just by right-click->add new item->ado.net data entity instead of writing all the commands in Package Manager and Command Prompt, it takes us a lot time and is risky (easy to write commands wrong). Bring the designer back.

                                    40 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 →
                                    • Cortana API for web applications

                                      Right now cortana is available for win phone apps and with windows 10 she'll come to desktops too. But why restrict her to native machines. Unleash her into the internet by providing API to integrate cortana into web applications with asp.net, mvc etc. This way it would change the way web is used. Cortana could be every where and users can browse through applications or look for content even if they don't know the navigation or use any other capabilities that the developer enables. Also that way she could be even an avatar like feature to help users and will…

                                      37 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 →
                                      • 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…)
                                          2 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                        • Named Token String Formatting

                                          Currently when using `String.Format` to insert text in a string placeholders are defined by index; e.g.

                                          string s = String.Format("{0} is the name of my pet {1}","Brian","Dog");

                                          Instead it would be nice to have a mechanism to allow these placeholders to be named, such as:

                                          string s = String.Format("{name} is the name of my pet {animal}",{"name","Brian"},{"animal","Dog"});

                                          It seems to be a popular question on forums, suggesting there's demand:
                                          http://stackoverflow.com/questions/159017/named-string-formatting-in-c-sharp

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

                                          Feedback and Knowledge Base