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. 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 →
    • 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 →
            • Visual Studio cannot start debugging because the debug target ... is missing..."

              right click solution -> Property -> Configuration Properties ->Configuration -> Enable project in Build

              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…)
                4 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 →
                          • 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 →
                                    • TimeSpan multiplication

                                      TimeSpan supports some very useful operators, like addition with another TimeSpan or addition with DateTime, so you can do something like

                                      TimeSpan ts1 = …, ts2 = …;
                                      TimeSpan sum = ts1 + ts2;

                                      I think it would be very useful, if it also supported multiplication by an integer, so something like this would work too:

                                      TimeSpan sum = ts1 + 2 * ts2;

                                      Currently, one has to use workarounds such as:

                                      TimeSpan sum = ts1 + TimeSpan.FromSeconds(2 * ts2.TotalSeconds);

                                      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…)
                                        3 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                                      • Add System.Text.Encoder.Convert Method (String, Int32, Int32, Byte[], Int32, Int32, Boolean, Int32, Int32, Boolean)

                                        System.Text.Encoder has two Convert methods which allow chunked encoding (UTF8 or other) into buffers. They are ideal for buffered I/O, where a long string gets encoded in chunks.

                                        The only issue is that there's no overload that simply accepts... a String. We are forced to call String.ToCharArray() - producing a copy, allocating useless heap memory...

                                        I'm aware of the unsafe overload that accepts a pointer, but that is frequently not an option. We need a fully safe and efficient way to do chunked encoding of a string.

                                        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 →
                                        • Need Framework English Language on Windows 8 Non-English

                                          I am using Windows 8 Turkish and it comes with build-in Framework 4.5 TR edition. There is no English language pack on microsoft web-site. And since it is a build-in component on windows 8, i can not re-install and change the language to English.

                                          As a developer, when i encounter a .net based error message, i need to search it on the web with the exact words of its English version. So, an English language pack or a manual install option is needed!

                                          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