Visual Studio IDE

Announcement: This forum has been migrated to provide our customers one convenient and responsive system for all feedback. You can now suggest new ideas, browse and vote on existing ideas in the Visual Studio Developer Community. To learn more about the migration to Visual Studio Developer Community please check out the release blog post.

We’d like your suggestions and ideas to help us continuously improve future releases of Visual Studio, so we’ve partnered with UserVoice, a third-party service, to collect your feedback. Please do not send any novel or patentable ideas, copyrighted materials, samples or demos for which you do not want to grant a license to Microsoft.

This site is for feature suggestions; if you need to file a bug, you can visit our Developer Community website to get started.

Note: your use of the portal and your submission is subject to the UserVoice Terms of Service & Privacy Policy and license terms.

We look forward to hearing from you!
- The 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 support and comment on it.

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

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

  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. 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…

    134 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    9 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  2. Enterprise Library as default framework

    This suggestion is migrated to Developer Community. Please use below link to view the current status.
    https://developercommunity.visualstudio.com/content/idea/351184/enterprise-library-as-default-framework.html
    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

    133 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    25 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  3. Add an async-compatible "logical call context"

    It would be useful to have a logical call context that implicitly flows from "parent" async methods to "child" async methods.

    Microsoft has stated that CallContext is not to be used for this: https://connect.microsoft.com/VisualStudio/feedback/details/276325/provide-better-context-support-to-async-operations

    Also see this forum post: http://social.msdn.microsoft.com/Forums/en-US/async/thread/ea21ca57-5340-439c-8ee9-f0185b5787a1

    124 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    6 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  4. Publish WCF service with command line

    Actually I can't publish a WCF service without Visual Studio. I suggest provide an alternative to publish WCF services using a command line using MSBuild to publish services.

    117 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  5. Make the WebBrowser Control work with Project Spartan

    We've heard quite a bit of news lately about Project Spartan and how it's a replacement for Internet Explorer.

    However, anyone who has used the WebBrowser control knows that it's just a wrapper around Internet Explorer, and it's quite painful to actually use in .net if you want to do anything more complicated than display a web page on a form, especially if you want to do so without a UI.

    If Internet Explorer goes away, what happens to the WebBrowser Control? Now seems like a great time to really take a swing at improving the WebBrower control and web…

    113 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    6 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  6. Allow HtmlAttributes in ASP.MVC EditorFor

    Allow HtmlAttributes in ASP.MVC EditorFor now.
    Gareth posted in StackOverflow:

    "Why can't I pass in html attributes to EditorFor()? eg;"

    <%= Html.EditorFor(model => model.Control.PeriodType,
    new { disabled = "disabled", readonly = "readonly" }) %>

    http://stackoverflow.com/questions/3735400/html-attributes-for-editorfor-in-asp-net-mvc

    Well, still in MVC3 I am having the same problem. There is no sense in having this limitation. Why can't a developer add a @class, or any other attribute. Today they cannot be rendered easily.

    112 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  7. Please create a DGML visualizer control that can be incorporated into applications at runtime.

    This suggestion is migrated to Developer Community. Please use below link to view the current status.
    https://developercommunity.visualstudio.com/content/idea/351234/please-create-a-dgml-visualizer-control-that-can-b.html
    It would be very nice to have a control for displaying DGML graphs at runtime for my application. I think it would make a greate UI element.

    111 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    9 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  8. Support System.ComponentModel.DataAnnotations in Portable Class Libraries

    Entity classes should be the linchpin of any application, no matter what platform your application is built on.

    Therefore, it would be nice if entity classes could be defined in a single portable class library and reused on multiple platforms. To that end, it's imperative to allow System.ComponentModel.DataAnnotations namespace to be used in PCLs since attributes contained therein are used for data validation in multiple frameworks.

    109 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  9. Add WebAssembly / asm.js as a target platform to .Net

    I think, generating WebAssembly/asm.js code from .Net IL would be really appreciated. It can be a good alternative to Silverlight.

    107 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  10. Make Task<T> implement covariant interface ITask<out T>

    Task<T> sounds like a good candidate for covariance. Except classes can't be covariant in .Net, only interfaces can.

    So it would be nice if Task<T> implemented a new, covariant interface ITask<out T>.

    I believe that adding a new interface to existing class doesn't break any backwards compatibility, so this shouldn't cause any problems.

    104 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  11. kproj/xproj should not be associated with ASP.Net it makes sense for all other application types too.

    As the title states, don't make xproj/kproj exclusive to sp.net projects. The general idea behind this project also applies to desktop (and all other project types) too. Even better just use project.json without any *.*proj file as another suggestion already states.
    Just allow for a target to build into binaries directly.

    100 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  12. Self-hosted WCF services stack in .NET Core

    I would like to see the WCF service side being made available in the .NET core, so that we can continue developing WCF services and start targeting other platforms.

    Ultimately I would like to see the full stack including the common bindings: NetTcp, NetPipe, and maybe WsHttpBasic.

    But to cut this short, my priority lies with the self-hosting and the base classes for custom bindings. This way, the community can start implementing the various bindings on their own, while Microsoft can focus on getting the core of WCF right.

    83 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  13. SDK-based csproj files for full framework projects

    This suggestion is migrated to Developer Community. Please use below link to view the current status.
    https://developercommunity.visualstudio.com/content/idea/351556/sdk-based-csproj-files-for-full-framework-projects.html
    I love the new "SDK based .csproj" files for .NET Core. Unfortunately, I'm working on a project that targets the full .NET framework and uses old technologies like Classic ASP! There seems to be a manual "hacked" way of using the SDK based .csproj files for these projects by setting the TargetFramework to e.g. "net461", but it doesn’t work 100% smoothly. It would be great to get all this goodness for older project types as well.

    Some of the great thing about the…

    75 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  14. Cortana API for web applications

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

    71 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  15. Make System.Web.HttpValueCollection public

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

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

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

    71 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  16. Add a IFormattable to the boolean type

    This suggestion is migrated to Developer Community. Please use below link to view the current status.
    https://developercommunity.visualstudio.com/content/idea/351201/add-a-iformattable-to-the-boolean-type.html
    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)

    67 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  4 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  17. reverse the deprecation of XPS Print API, or produce a viable server-side alternative

    There is currently no supported .NET API for printing server-side (e.g .from Services). In 2009 I was put in touch with one of the relevant people at Redmond, who said that some people get away with using System.Printing from services, but its unsupported, and fails for many people. He helped these people re-write their code to use unmanaged APIs.

    There were two unmanaged alternatives: GDI and XPS Print. GDI is too much work, but XPS Print worked great, because you can easily use managed code to create the XPS, and then the unmanaged XPS Print API to print it. But…

    66 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  18. Windows Services in .NET Core

    Create modern alternative for windows services that we can use to create background worker for Windows, Linux, Azure and maybe even Windows Mobile. It should use project.json, maybe support .net native and should be easy to deploy like web application.

    64 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  19. Add support of null propagating operator to the expression

    Null propagating operator "?." was added to C# 6 but unfortunately you cant define an expression with this operator. The following code fails with "Error CS8072 An expression tree lambda may not contain a null propagating operator." compilation error

    Expression<Func<User, string>> epr = usr => usr?.Name;

    I know the main reason is to prevent using this operator with ORM frameworks but this really limits the language because of implementation of same libraries. Expression is a great way to dynamically generate functions and would benefit Rx.NET and LINQ to Object.

    64 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  20. Modify CultureData to support PersianCalendar

    Currently, the windows OS does not return the correct Calendar for "fa-IR" culture, so anytime you create a new CultureInfo instance you end up with a wrong calendar!
    I couldn't help but notice in the .net reference source there's also a similar issue with the "zh-TW" culture which you have managed to fix when you make reference to CalendarIds property, as you can see here:
    http://referencesource.microsoft.com/#mscorlib/system/globalization/culturedata.cs,93714edd02838809

    As mentioned above there's a line of code in culturedata.cs class which fixes ""zh-TW"" culture with Calendar.CAL_TAIWAN
    I suggest you do the same with PersianCalendar (which is a built-in type within .net framework)
    I…

    60 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

Feedback and Knowledge Base