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

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. Add restriction for interface on generic type declarations

    Presently, generic types allow restricting what can be used as its type parameter: class, struct or type with public parameterless constructor. What I propose is to add a restriction for interface, like this:

    public class MyGenericType<T> where T: interface

    1 vote
    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 →
    • Base interface for serializers

      At the moment, we have different types of serializers in .NET:

      - XmlObjectSerializer-derived (DataContractSerializer, NetDataContractSerializer, DataContractJsonSerializer)
      - XmlSerializer
      - IFormatter-derived (BinaryFormatter, SoapFormatter)

      I propose a simple base interface for unifying all these serializers. It only needs two methods:

      void Serialize(Stream stream, Object graph);
      Object Deserialize(Stream stream);

      All of the above serializers support these methods.

      1 vote
      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);

        1 vote
        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 →
        • Allow using different languages more easily

          Allow using different languages dynamically.

          So in my C# file I could do:
          string a = "Space";
          string b = "Hello";
          using(C)
          {
          int g = 0, h = 0;
          while(a[g++] = b[h++]);
          }

          And a string is copied (or did I make a mistake? :P)

          I don't know if this is even possible, but it would allow you to use the old optimization hacks in any language.
          Of course any objects created in the using would be inaccessible after the bracket closes.

          1 vote
          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 →
          • SafeCast for Linq

            Imagine
            class A{}
            class B:A{}

            You have an IEnumerable<B> (by select), but a method needs IEnumerable<A>. Your only Linq-Option is:

            myEnumerable.Cast<A>();

            But as you refacture your code and B does not inherit from A any more, you will get an runtime error. The extension method is really simple, but it would be nice to have it in the standard library:

            IEnumerable<TBase> SafeCast<TBase,TChild>(this IEnumerable<TChild> enumerable) where TChild:TBase
            {
            foreach(TChild c in enumerable)
            yield return c;
            }

            1 vote
            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 →
            • Provision for Base Page for faster performance and data integrity

              Every Project has a Base Page with required consolidated settings. this page when inherited by other pages extends the performance and minimizes code, every page has an option of accessing this page at the very first stage of page cycle and has extensive Exception handling and redirecting to custom error pages at run time would be helpfull for beginners and moderate developers to work on other stuff rather then debugging....

              1 vote
              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 →
              • Ease generated code and AOP by Addding Inline Methods

                Constructors are a great tool to initialize an object for use. They can get complex and even be overloaded and "inherited". Occasionally there are snippets of code that should always be part of the initialization while this works well using inheritance this does not always work out when generating partial classes.

                For instance, all constructors built for Forms children must call InitializeComponent() in their constructors or the form will not work as designed. To avoid creating constructor dependencies a class attribute like [InlineWith("ctor*", "InitializeComponent()"] would tell the compiler to inline any InitializeComponent with every constructor. No more constructor chains!

                With…

                1 vote
                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 →
                • My idea is to extend the windows clipboard. • Can be keep multiple values in clipboard and those are stored as stack. • Ctrl+V give top most

                  My idea is to extend the windows clipboard.
                  • Can be keep multiple values in clipboard and those are stored as stack.
                  • Ctrl+V give top most values and it will not affect to existing functionality. Then Ctrl+V+1, 2… can be use to navigate to other values in clipboard.
                  • Right click menu can be extending by adding submenu for past option.
                  • It this can implement on the windows API, and then it can use for all application that run top of it.

                  1 vote
                  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 →
                  • Enum.TryParse not only gerneric but also by passing object type

                    Currently only

                    Enum.TryParse<TEnum>(String, Boolean, TEnum&)

                    is available.

                    But if the enum type is known only at runtime and not design time, this method is of no help and only

                    try { Enum.Parse(...) } catch {}

                    can be used, which is not so good for performance.

                    Please expose a wrapper on the private

                    Enum.TryParseEnum(Type, String, Boolean, EnumResult&)

                    which accepts the enum type as a parameter.

                    1 vote
                    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 Task.Complete property returning a completed task

                      If a method with a return type of Task completes synchronously, I would like to write something like:
                      return Task.Complete;

                      Now I have to write:
                      return Task.FromResult(false);
                      Or maybe Task.FromResult(true) or Task.FromResult(0) or Task.FromResult(42).

                      It doesn't look right to me. Why do I have to return some value wrapped in a Task when the method doesn't return any value? An expression like Task.Complete would make the intent of the return statement more obvious.
                      With Task.FromResult(), anyone reading the code will wonder what the return value means until he notes that it is just a dummy.

                      1 vote
                      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 →
                      • DateTimePicker control - enhancements

                        In the .NET Framework,
                        System.Windows.Forms namespace,
                        DateTimePicker control,
                        does not have implemented properties
                        BackColor and ForeColor
                        for the control combo box like all other controls does (labels, text boxes etc.).
                        Please, if it is reasonably possible, implement these methods for the control combo box.
                        I believe this can increase visual appeal of the designed forms that uses the control.

                        1 vote
                        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 →
                        • Bring back the bindingnavigator in WPF

                          It's a real slow-down when you have to make your own navigator for every datagrid you place on the form.

                          1 vote
                          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 →
                          • A method to delete all files from a directory passing a pattern as parameter.

                            I think it'd be useful to have a method to delete all files from a directory passing a pattern as parameter, so you don't have to build a bucle and delete each one.

                            1 vote
                            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 a "Collected" event to WeakReference class

                              The idea is to add WeakReference class an event to be signaled when the target object is being collected by GC. This would be useful to to auto clean weak references collections (I'd need this in a custom serialization framework). In my opinion, there's an efficient implementation for this: the GC internally keeps a map<IntPtr, set<WeakReference>>, to be updated in response to add or remove calls of a VIRTUAL event in WeakReference class. The GC itself updates the map if the actual IntPtr is changing for a reference (example when the memory is defragmented). When a object is being collected,…

                              1 vote
                              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 pacing and ramp down setting to conduct better load test in VS 2010 ultimate

                                We are using VSTS 2010 ultimate for web performance testing and engineering purpose. So for conducting load test and some other trye of performance test.It is better to use if you add below setting.
                                1. Add pacing properties for webtest to achive target
                                2. Ramp down setting for uses aftrer competion steady state
                                3. Constant user load for individual webtest.(% available there)
                                4. help file for function used in coadded uI

                                1 vote
                                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 SQL Server 2012 Native Client Support for System.Data.SqlClient

                                  Currently to ensure you are accessing the SQL Server 2012 Native Client you need to use the OdbcConnection provider. The problem with this is a number of systems are built around using the ADO.NET providers themselves. This leaves us vulnerable to missing out on features like subject alternative name support for SSL encrypted SQL Server connections. Either keep pace with the SQL Server Native Client when it comes to SqlClient or provide a clear set of examples on how to use it.

                                  1 vote
                                  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 →
                                  • ability to override a subset of coding rules in fxCop/any other way

                                    I want to use microsoft coding rules. however one of the the guideline in our company requires constants to be in upper case. fxCop is excellent. I could write a custom rule. however, when I ran Microsoft.Naming and this custom rule together, I still get warnings on my constants because I can't override microsoft.naming rule. unfortunately, there's no way as of now to run customrules + subset of microsoft predefined rules. please can you accomodate this. would be very useful

                                    1 vote
                                    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 →
                                    • Optimization Edmx

                                      Good afternoon!
                                      During updating of model Edmx it is possible to add choice function "Check of other changes in a database".
                                      By default to expose value in true.

                                      1 vote
                                      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 all releases of the .NET runtime side by side

                                        Some releases of the .NET runtime (e.g. 4.0 to 4.5) upgrade the existing installed version. This causes support issues with having to test all existing web sites and services to ensure they still operate correctly. Side by side releases does not do that.

                                        1 vote
                                        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 →
                                        • BindingList should include a RowState Property

                                          BindingList shoud be extened to include a RowState Property.

                                          I'm in the process of upgrading an old Project where I used ADO.NET and databound Controls against a DataTable.

                                          In my new Project I'm using Linq to SQL and a WCF Plain service and got the tip to use a BindingList(Of MyTable) to transport data throgh my Tiers and databind my Controls against that.

                                          It Works Fine but It doesn't track Changes like the RowState on a DataRow.

                                          I got the tip to Create my own ExtendedBindingList that Inherits from BindlingList and add this property.

                                          The Problem is that when I…

                                          1 vote
                                          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