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.

We look forward to hearing from you!

Thanks – Doug Turnure
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…)
Reset

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. Make Entity Framework Fully Mockable and injectable

      In general, mocking out the Entity Framework DAL is a big pain to accomplish. ObjectContext has no interface and the T4 templates aren't written to create interfaces for the objects they create.

      This hampers good unit testing and makes them less injectable.

      Put an interface on ObjectContext. Have the T4 Templates put interfaces around all of the objects that are generated and make sure that all objects used have interfaces so that mocking frameworks, like MOQ or Moles & Pex can automatically generate stubs to replace the objects in unit tests so that tests don't need to be tightly coupled… more

      396 votes
      Vote 0 votes Vote Vote
      Vote
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        I agree to the terms of service

        You'll receive a confirmation email with a link to create a password (optional).

        Signed in as (Sign out)
        You have left! (?) (thinking…)
        3 comments  ·  .NET  ·  Admin →
      • Make .NET 4.5 work on any OS that supports 4.0

        .NET Framework 4.0: Supported operating systems: Windows 7, Windows Server 2008 R2, Windows Vista Service Pack 1, Windows Server 2008, Windows XP Service Pack 3, Windows Server 2003 Service Pack 2

        .NET Framework 4.5 Beta: Supported operating systems: Windows 8, Windows Server 8, Windows 7, Windows Server 2008 R2, Windows Server 2008

        If 4.5 is an in-place upgrade, it should support every OS that supports 4.0; wait until 5.0 to drop support for Vista and XP.

        379 votes
        Vote 0 votes Vote Vote
        Vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          I agree to the terms of service

          You'll receive a confirmation email with a link to create a password (optional).

          Signed in as (Sign out)
          You have left! (?) (thinking…)
          22 comments  ·  .NET  ·  Admin →
        • GPGPU programming

          It would be very beautiful if .Net supports GPGPU programming like http://en.wikipedia.org/wiki/GPGPU
          especially that know graphic accelerators are in every where from PCs to Phones to Tablets..

          175 votes
          Vote 0 votes Vote Vote
          Vote
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            I agree to the terms of service

            You'll receive a confirmation email with a link to create a password (optional).

            Signed in as (Sign out)
            You have left! (?) (thinking…)
            3 comments  ·  .NET  ·  Admin →
          • Optimize Math functions

            Currently the JITer doesn't do a good job with a lot of the .Net Framework, and the Math functions in particular.

            Example: Math.Abs

            The emitted assembly is pretty much the same for all types. It should optimize to take advantage of x86 instructions that have been around for more than a decade.

            cdq
            xor eax,edx
            sub eax,edx
            ret

            161 votes
            Vote 0 votes Vote Vote
            Vote
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              I agree to the terms of service

              You'll receive a confirmation email with a link to create a password (optional).

              Signed in as (Sign out)
              You have left! (?) (thinking…)
              4 comments  ·  .NET  ·  Admin →
            • Maximum upload size in ASP.NET is 2Gb. Increase it.

              ASP.NET 4.0 supports file uploads only up to 2Gb. For users uploading and storing videos on a server running ASP.NET this is a show stopper. Even web browsers now support uploads over 2Gb.

              Just make the upload size to be unlimited...

              123 votes
              Vote 0 votes Vote Vote
              Vote
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                I agree to the terms of service

                You'll receive a confirmation email with a link to create a password (optional).

                Signed in as (Sign out)
                You have left! (?) (thinking…)
                planned  ·  10 comments  ·  .NET  ·  Admin →
              • Better NullPointerException Error message

                Let's say you have the line

                a.b().c().d().e().f().g();

                and you run it and get an
                System.NullReferenceException: Object reference not set to an instance of an object.

                Where did this happen? what do you need to fix?

                A better error message would be

                The Call: null.e()
                Caused a Null Reference Exception

                this would make debug/life a lot easier.

                I would also suggest you use the full method signature so you might get

                The Call: null.e(string, List<string>)

                106 votes
                Vote 0 votes Vote Vote
                Vote
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  I agree to the terms of service

                  You'll receive a confirmation email with a link to create a password (optional).

                  Signed in as (Sign out)
                  You have left! (?) (thinking…)
                  3 comments  ·  .NET  ·  Admin →
                • Add spellcheck Russian language (isSpellCheck = true)

                  Please, Add support Russian spellcheck in wpf and silverlight controls!

                  92 votes
                  Vote 0 votes Vote Vote
                  Vote
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    I agree to the terms of service

                    You'll receive a confirmation email with a link to create a password (optional).

                    Signed in as (Sign out)
                    You have left! (?) (thinking…)
                    2 comments  ·  .NET  ·  Admin →
                  • Native .Net Compiler

                    possibility to compile C# (for example) code to native .exe included framework library inside assembly (here more correctly - .exe)

                    83 votes
                    Vote 0 votes Vote Vote
                    Vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      I agree to the terms of service

                      You'll receive a confirmation email with a link to create a password (optional).

                      Signed in as (Sign out)
                      You have left! (?) (thinking…)
                      5 comments  ·  .NET  ·  Admin →
                    • Better support for T4

                      Coloring and Intellisense would be nice

                      69 votes
                      Vote 0 votes Vote Vote
                      Vote
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        I agree to the terms of service

                        You'll receive a confirmation email with a link to create a password (optional).

                        Signed in as (Sign out)
                        You have left! (?) (thinking…)
                        4 comments  ·  .NET  ·  Admin →
                      • Circular shift / Rotate JIT support

                        Many cryptographic hash and encryption functions take advantage of circular shift:

                        (val << shift) | (val >> (32 - shift))

                        Modern C and C++ compilers recognize this expression, and compile it accordingly to X86's ROTR/ROTL instruction. I believe the .NET runtime should be able to recognize the IL sequence that the above expression would generate:

                        ldloc val
                        ldloc shift
                        shl
                        ldloc val
                        ldc.i4 32
                        ldloc shift
                        sub
                        shr.un
                        or

                        And optimize that sequence into a single X86 ROTR/ROTL sequence.

                        I'm pretty sure it doesn't do that now, according to my experiments.

                        The best thing to do is to introduce some… more

                        61 votes
                        Vote 0 votes Vote Vote
                        Vote
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          I agree to the terms of service

                          You'll receive a confirmation email with a link to create a password (optional).

                          Signed in as (Sign out)
                          You have left! (?) (thinking…)
                          6 comments  ·  .NET  ·  Admin →
                        • Enterprise Library as default framework

                          I think include enterprise library as default framework will become handy as this will help for consistency. As my concern, I think most of development works now need dependency injection (unity), Logging tool and config tool. So why not put enterprise library as the first option

                          59 votes
                          Vote 0 votes Vote Vote
                          Vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            I agree to the terms of service

                            You'll receive a confirmation email with a link to create a password (optional).

                            Signed in as (Sign out)
                            You have left! (?) (thinking…)
                            5 comments  ·  .NET  ·  Admin →

                            Thank you all for voting on this suggestion. The team has heard you and is considering this request, possibly for a future release.

                            Deonhe – MSFT .NET Framework team

                          • WeakReference and WeakEvent operators

                            //weak reference:
                            var value = weak(new Reference());

                            //weak event:
                            var source = GetLongRunningObject();
                            source.PropertyChanged += weak(source_PropertyChanged)

                            Or in VB.NET:
                            'reference:
                            Dim source = Weak(GetReference)

                            'event:
                            Dim source = GetLongRunningObject();
                            AddWeakHandler source.PropertyChanged, AddressOf source_PropertyChanged

                            I would surely prefer a symbol operator rather than a verbose one, but I would prefer seeing it in the language

                            55 votes
                            Vote 0 votes Vote Vote
                            Vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              I agree to the terms of service

                              You'll receive a confirmation email with a link to create a password (optional).

                              Signed in as (Sign out)
                              You have left! (?) (thinking…)
                              2 comments  ·  .NET  ·  Admin →
                            • Add more garbage collector options including a low latency option and an option tuned for immutable data structures

                              GC latency in .NET 4 is orders of magnitude worse than competitors like Staccato (2008). Performance when using immutable data structures is several times worse than alternatives like OCaml (1995).

                              49 votes
                              Vote 0 votes Vote Vote
                              Vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                I agree to the terms of service

                                You'll receive a confirmation email with a link to create a password (optional).

                                Signed in as (Sign out)
                                You have left! (?) (thinking…)
                                2 comments  ·  .NET  ·  Admin →
                              • Enable constructor contracts

                                That would be great to be able to define methods in interfaces as contructors - I mean a way of forcing the implementers to have a constructor matching the one defined in the interface.
                                Also that would be great to have static interfaces (contracts, which static classes can implement).

                                45 votes
                                Vote 0 votes Vote Vote
                                Vote
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  I agree to the terms of service

                                  You'll receive a confirmation email with a link to create a password (optional).

                                  Signed in as (Sign out)
                                  You have left! (?) (thinking…)
                                  1 comment  ·  .NET  ·  Admin →
                                • Autoconvert between C# and VB

                                  It was a big and great step to merge C and Visual Basic language in VS by using C# and VB.Net Syntax. But now, it is needed to split or convert projects. It would be creat to have an solution to convert a class in Visual Studio or use both classes in same project.

                                  44 votes
                                  Vote 0 votes Vote Vote
                                  Vote
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    I agree to the terms of service

                                    You'll receive a confirmation email with a link to create a password (optional).

                                    Signed in as (Sign out)
                                    You have left! (?) (thinking…)
                                    2 comments  ·  .NET  ·  Admin →
                                  • Integrate ilMerge into .NET exe projects

                                    Microsoft has a tool called ilMerge (http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx). This can merge several assemblies into only one exe file.
                                    A referenced assembly in a DevStudio project should have the additional property "Linking" with the possible values "Dynamic", which has the same behaviour as currently, and "Static" which uses the ilMerge technology to integrate the referenced assembly into the resulting exe file.
                                    With this possibility it is really easy to develop simple (trivial) tools which depent on standard libraries that can easily be deployd.

                                    42 votes
                                    Vote 0 votes Vote Vote
                                    Vote
                                    Sign in
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      I agree to the terms of service

                                      You'll receive a confirmation email with a link to create a password (optional).

                                      Signed in as (Sign out)
                                      You have left! (?) (thinking…)
                                      4 comments  ·  .NET  ·  Admin →
                                    • Allow direct printing (without printer dialog) in Microsoft Report Viewer 2010 (WinForms)

                                      The Microsoft ReportViewer control only has a "PrintDialog()" method. Calling this method opens the "Print" dialog where users can choose from a list of printers and then press ok to print a report. - If several reports have to be printed, this forces the user to confirm the printer choice for each report. - It would be great if Microsoft would add a method (something like "PrintImmediately()") that DIRECTLY prints the current report to the default printer, without any further user prompt.

                                      38 votes
                                      Vote 0 votes Vote Vote
                                      Vote
                                      Sign in
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        I agree to the terms of service

                                        You'll receive a confirmation email with a link to create a password (optional).

                                        Signed in as (Sign out)
                                        You have left! (?) (thinking…)
                                        2 comments  ·  .NET  ·  Admin →
                                      • Make loading satellite assemblies signed with no key or a different key optional

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

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

                                        38 votes
                                        Vote 0 votes Vote Vote
                                        Vote
                                        Sign in
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          I agree to the terms of service

                                          You'll receive a confirmation email with a link to create a password (optional).

                                          Signed in as (Sign out)
                                          You have left! (?) (thinking…)
                                          0 comments  ·  .NET  ·  Admin →
                                        • Add a IFormattable to the boolean type

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

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

                                          An example in C# would look like this:

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

                                          Same example in VB:

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

                                          37 votes
                                          Vote 0 votes Vote Vote
                                          Vote
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            I agree to the terms of service

                                            You'll receive a confirmation email with a link to create a password (optional).

                                            Signed in as (Sign out)
                                            You have left! (?) (thinking…)
                                            under review  ·  3 comments  ·  .NET  ·  Admin →
                                          • Fix it so that .NET apps can access HTTP thru authenticating proxy server by default

                                            If you run a .NET app that needs to talk to the web, and you're behind an authenticating proxy server, then that app will fail to talk to the web.

                                            Internet Explorer and Google Chrome work, Visual Studio and loads of other Microsoft apps will work. They can all talk to the web. But every .NET-based app or website I've ever seen will fail.

                                            The implications of this are profound. I've seen umpteen forum posts over the years where people are scratching their heads, wondering what's wrong. I've seen IT guys re-route their users thru special-case connections to the web,… more

                                            35 votes
                                            Vote 0 votes Vote Vote
                                            Vote
                                            Sign in
                                            Check!
                                            (thinking…)
                                            Reset
                                            or sign in with
                                            • facebook
                                            • google
                                              Password icon
                                              I agree to the terms of service

                                              You'll receive a confirmation email with a link to create a password (optional).

                                              Signed in as (Sign out)
                                              You have left! (?) (thinking…)
                                              3 comments  ·  .NET  ·  Admin →
                                            ← Previous 1 3 4 5 6 7 8 9 10 11 15 16
                                          • Don’t see your idea?
                                          • Post a new idea…
                                          • Knowledge Base and Helpdesk