Visual Studio

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, visit the Visual Studio Connect site: http://connect.microsoft.com/visualstudio.

ASP.NET Runtime/Web Tooling suggestions have moved! All your ideas, including your votes, have been transferred and are searchable in the ASP.Net Uservoice forum. Please submit any new ASP.NET Runtime/Web Tooling suggestions, or vote on existing suggestions by going to http://aspnet.uservoice.com.

We look forward to hearing from you!

Thanks – Deon Herbert
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 vote and comment on it.

If it doesn't exist, you can post your idea so others can vote on it.

Enter your idea and we'll search to see if someone has already suggested it.

  • Hot ideas
  • Top ideas
  • New ideas
  1. Take advantage of the new IReadOnlyList<T> interface

    Surely ReadOnlyCollection<T> does not require its underlying list to implement the full IList<T> interface. In fact, surely it requires only those members that belong to the new IReadOnlyList<T> interface. ReadOnlyCollection<T> should add a constructor that accepts IReadOnlyList<T>, in addition to the one that requires the full IList<T> (since, surprisingly, IList<T> cannot simply extend IReadOnlyList<T>). Internally, ReadOnlyCollection<T> should be changed to work off of IReadOnlyList<T>, and the IList<T> constructor can simply cast its parameter to IReadOnlyList<T>, or -- if the cast fails -- can wrap it in a trivial IList<T> - to - IReadOnlyList<T> adapter. As things stand, I can implement…

    7 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, make each GC run cheaper

      currently, one .NET process shares one GC. making as program gets bigger, cost of GC gets worse and worse and there is no clear way to avoid this problem. most of time, due to this issue, people creates outer proc just to avoid GC cost when doing big analysis or allocation heavy operations. and remote data between these two processes.

      please, make better solution and this. explicitly moving data between processes are pain in the ***. this problem basically makes .NET only for small apps. but not for serious apps.

      ...

      one solution I can think of to mitigate this…

      7 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 →
      • Value Changed event: eventargs should return old and new value

        I'm renewing a suggestion that I first made during the beta phase of VS 2005.

        The ValueChanged/TextChanged events on Controls should have old and new values in the eventargs. The response I got from MS at the time was that it was too late in the beta cycle to implement it in .NET 2.0. I had hoped it would have been included in .NET 4.0 and the new CLI/CLR.

        I have started to develop a new Project where this would be beneficial so I'm renewing this suggestion hoping it will get enough votes to be considered for .NET Framework 5.0

        7 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 smooth streaming media element to WPF

          Currently you can play smooth streaming media from silverlight and winrt, but not from a desktop application! (Or windows media player for that matter)

          7 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 →
          • CIL language support in Visual Studio

            Add support for programming in Common Intermediate Language (CIL) in Visual Studio.

            Project templates, syntax highlighting, IntelliSense and debugging.

            7 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 →
            • shove .net up your boss's butt. bring me VB6-A already.

              shove .net up your boss's butt. bring me VB6-A already.

              7 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 →
              • Making a NotImplementedAttribute that would give an warning when it's attached to a method, just like the Obsolete

                A simple question: Why there isn't any NotImplementedAttribute in .NET?

                You can always throw the exception, but I think it would be nice for this to work as the ObsoleteAttribute -> you get an warning for using that method.

                Ok, you have a method with this attribute, and when you implement it you have to remove the attribute by hand, but I think this is safer than using methods with throw new NotImplementedException() inside...and wait for them to get called.

                I remember reading that the Obsolete is hard coded into the compiler, but maybe there is some spare room for…

                7 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 native .NET support for hot swappable devices

                  Provide a .NET library that exposes devices such as USB, Thunderbolt, eSATA, etc. This library should also provide events such as device arrival, request for removal, removal, etc.

                  7 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 →
                  • clickonce should be able to harvest query string parameters also from browsers other than Internet Explorer

                    Currently ClickOnce can harvest url parameters only for I.E this approache is passe . no developer can allow himself to deploy an app that it's functionality is limited only for I.E
                    usage : http://localhost/publisher/WindowsFormsApplication1.application?username=joeuser
                    this code works only for I.E
                    private NameValueCollection GetQueryStringParameters()
                    {
                    NameValueCollection nameValueTable = new NameValueCollection();

                    if (ApplicationDeployment.IsNetworkDeployed)
                    {
                    string queryString = ApplicationDeployment.CurrentDeployment.ActivationUri.Query;
                    nameValueTable = HttpUtility.ParseQueryString(queryString);
                    }

                    return (nameValueTable);
                    }

                    6 votes
                    Vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      I agree to the terms of service
                      Signed in as (Sign out)
                      You have left! (?) (thinking…)
                      0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                    • Support for hierarchyid?

                      When does EF will support hierarchyid?

                      6 votes
                      Vote
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        I agree to the terms of service
                        Signed in as (Sign out)
                        You have left! (?) (thinking…)
                        0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                      • Support Spatial Types in Portable Class Libraries

                        The EF guys finally implemented support for SQL Server spatial types. Unfortunately, EF maps spatial data to a type that belongs to the System.Data.Entity.Spatial namespace in the EntityFramework.dll binary. This is rather unfortunate since this prevents entity classes with spatial data from being included in portable class libraries.

                        I hope you guys can work with the EF team to create a new spatial type that's less coupled to EF so that it may be included in portable class libraries.

                        6 votes
                        Vote
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          I agree to the terms of service
                          Signed in as (Sign out)
                          You have left! (?) (thinking…)
                          0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                        • control the maximum idle time of a connection in the ado.net pool (mainly SqlClient)

                          in cloud scenarios, there are multiple worker roles all connecting to a shared database. each worker role has a connection pool which ado.net maintains internally.
                          now, if my sql db allows a maximum of 180 connections; one option is to configure the connection string for each worker role to allow 180/n connections. But, this approach doesn't gel well when I want to scale up or scale down - I don't want to have to keep touching the connection string.
                          As I scale out (due to CPU requirements of my service), more and more connections become idle in the per-worker-role connection…

                          6 votes
                          Vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            I agree to the terms of service
                            Signed in as (Sign out)
                            You have left! (?) (thinking…)
                            0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                          • add new words to linq, first, take, skip

                            add new words to linq to do some like this

                            from i in entityset
                            skip 10
                            select first
                            or

                            from i in entityset
                            skip 100
                            select 10

                            6 votes
                            Vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              I agree to the terms of service
                              Signed in as (Sign out)
                              You have left! (?) (thinking…)
                              1 comment  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                            • Add an interface for Enums that exposes their based type to allow easier working in a generic manner

                              When you declare an enum like so:
                              enum MyEnum : BaseType
                              {
                              }
                              It should automatically implement an interface like IBaseEnum which might have an interface like so::

                              Interface IIntEnum
                              {
                              int ToBaseType()
                              }

                              And an implementation will be always marked as explicitly implemented so as to avoid showing up publicly and potentially being a breaking change.

                              The interface will always be implemented like so:

                              int IIntEnum.ToBaseType(){
                              return (int)this;
                              }
                              The cast mentioned is always valid. This will solve the performance issue on enums methods like HasFlags and the Convert API (which is painfully slow when given an enum as…

                              6 votes
                              Vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                I agree to the terms of service
                                Signed in as (Sign out)
                                You have left! (?) (thinking…)
                                0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                              • Update WinForms Framework, by using DirectX instead of GDI+ and updating some of the controls

                                WinForms is a technology that is still being heavily used for enterprise development, since it's fast, tested, reliable, and it enhances rapid development.
                                Yet, Microsoft seems to have abandoned it in favor of WPF.
                                I think that WinForms could and should be developed side by side with WPF. Microsoft should give it a little more love and update some of its core, migrating it from GDI+ to DirectX, or even offer them as an option to the developer.

                                6 votes
                                Vote
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  I agree to the terms of service
                                  Signed in as (Sign out)
                                  You have left! (?) (thinking…)
                                  0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                • Fix debugging Silverlight bindings

                                  You cannot put a breakpoint on SL5 bindings as of VS 11 Beta.

                                  The Visual Studio vNext debugging forums sent me to the silverlight forums: http://social.microsoft.com/Forums/en-US/Offtopic/thread/1fe67906-6d07-415a-a9ba-da07daf5765c

                                  The silverlight forums sent me here: http://forums.silverlight.net/t/252812.aspx/1?Cannot+insert+a+breakpoint+VS+11+beta+Silverlight+5

                                  6 votes
                                  Vote
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    I agree to the terms of service
                                    Signed in as (Sign out)
                                    You have left! (?) (thinking…)
                                    0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                  • 6 votes
                                    Vote
                                    Sign in
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      I agree to the terms of service
                                      Signed in as (Sign out)
                                      You have left! (?) (thinking…)
                                      0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                    • Add an EmptyDataText template to the asp:Repeater

                                      As with the GridView, the Repeater control would benefit from an EmptyDataText template that rendered exactly as defined, e.g.

                                      <asp:Repeater ID="rpt_products" runat="server">
                                      <EmptyDataTemplate>
                                      <div class="nodata">No results found!</div>
                                      </EmptyDataTemplate>

                                      6 votes
                                      Vote
                                      Sign in
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        I agree to the terms of service
                                        Signed in as (Sign out)
                                        You have left! (?) (thinking…)
                                        0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                      • Please add IEEE754:2008 decimal data types.

                                        The Decimal standard type has 2 problems: It is HUGH (16 bytes) and it is SLOW. Now, often one does not need the size - then 16 bytes instead of 4 is a big price .And slow - well, as Decimal data types will get hardware support slowly.... the .NET type is basically outdated.

                                        For compatibility leave it there and add Decimal32, Decimal64 and Decimal128, according to the IEEE specs.

                                        I deal with a ton of smaller financial data. Floatings (float, double) - unusable. And spending 16 bytes for small numbers (that are stored as smallmoney in SQL server) gets…

                                        6 votes
                                        Vote
                                        Sign in
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          I agree to the terms of service
                                          Signed in as (Sign out)
                                          You have left! (?) (thinking…)
                                          0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                        • Provide options for limiting AppDomain resource consumption

                                          When executing code in an AppDomain I would like to limit the CPU usage and amount of memory the AppDomain can comnume.

                                          This would make loading plugins or user defined business rules much safer. In it's current form I cringe at the thought of a business user creating a bad rule and killing the system.

                                          6 votes
                                          Vote
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            I agree to the terms of service
                                            Signed in as (Sign out)
                                            You have left! (?) (thinking…)
                                            0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                          • Don't see your idea?

                                          Feedback and Knowledge Base