Visual Studio IDE

Announcement: Last fall, we migrated this forum to Visual Studio Developer Community to provide you one convenient and responsive system for all feedback. As the final step in the migration, this forum will be closed off completely on June 1st, 2019. We encourage you to visit Visual Studio Developer Community where you can now suggest new ideas, browse and vote on existing ideas, and engage with Visual Studio teams.

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. Allow Expression.Assign() to set readonly struct fields as in IL & reflection

    Expression trees offer a very good alternative to direct IL generation, they are much easier to write and debug. Yet, for some reason, they attempt to enforce C# language rules instead of allowing the same functionality as reflection and IL.

    When deserializing an array of structs T, if the struct contains a readonly field, there are no way to initialize it except through the use of IL or reflection.

    Expression.Assign( fieldOfStructInArrayExpression , newValueExpression )
    throws ArgumentException "Expression must be writeable"

    Disscussion is at http://stackoverflow.com/questions/9930459/how-to-initialize-a-struct-in-array-with-readonly-values-using-expression-trees

    52 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  2. SmtpClient should allow a null MAIL FROM in the SMTP envelope

    Currently, the behavior of the built-in SmtpClient is to set the SMTP envelope's MAIL FROM as follows:

    - Use the MailMessage.Sender property if it is not null; otherwise
    - Use the MailMessage.From property

    When a .NET application wants to send an auto-response e-mail (such as a "Support Ticket Created" or a "Message Accepted") e-mail, it would be nice to be able to send a null envelope from ("MAIL FROM: <>"). This translates to a "Return-Path: <>" stamp and is the SMTP-sanctioned way to say "I don't want to start an auto-responder war; don't send any bounces back to me."

    But…

    52 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  3. Additional overload to System.Concurrent.ConcurrentDictionary GetOrAdd

    As it stands, the ConcurrentDictionary has a GetOrAdd method that accepts a valueFactory delegate that is not included within the scope of the lock, hence it can be executed multiple times and as a result adding the value to the dictionary and executing the valueFactory is not an atomic operation. This behaviour seems to be misleading in relation to what the API leads one would assume that the benifit of having a method accepting a function overload would be. Let's see an example:

    For example, the intention of the following code is clear:
    Object value = ValueFactory(); myConcurrentDictionary.GetOrAdd(key, value)

    From…

    49 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    5 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  4. Create [WarningAttribute] that triggers compiler warnings/errors the way [ObsoleteAttribute] does.

    Add a [WarningAttribute] that works the same way as [ObsoleteAttribute]; it would trigger a compiler warning or error with a customized message. Ideally it would not be sealed. You could do things like:

    [Warning("This class uses PInvoke and will prevent ARM compatibility.")]

    [Experimental("This method has not completed Quality Assurance, and should not be used in a production environment.")]
    This feature would be particularly useful for component creators.

    This would be the bees' knees.

    49 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we havenÕt acted on it. Looking at the VS Ò15Ó plans, weÕre not going to take action on this item, so weÕre going to close it. If the suggestion is still relevant, please either take a look to see if thereÕs another suggestion thatÕs similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  5. NGEN should support explicit path based assembly load

    Please add NGEN support for Assembly.LoadFile and Assembly.LoadFrom. For more context see the blog post http://blog.bonggeek.com/2013/12/net-ngen-explicit-loads-and-load.html

    Today NGEN images (or native image probing) is supported only in the default load context. That means any mechanism used to load assemblies from an path, e.g. using Assembly.LoadFile do not get NGEN support. For Assembly.LoadFrom it's even weirder, it sometimes work and not on other times. This makes hard to build performant large scale applications that uses loosely coupled plugins that are loaded dynamically

    49 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we havenÕt acted on it. Looking at the VS Ò15Ó plans, weÕre not going to take action on this item, so weÕre going to close it. If the suggestion is still relevant, please either take a look to see if thereÕs another suggestion thatÕs similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  6. Enable Global NoTracking of Data in Entity Framework

    Hi,
    This is just an extension of existing behavior.
    My understanding of Model, View, Controller is that changes to the model should be reflected in interested views at the earliest opportunity (for example, the observer pattern allows for this). Thus if a data value is changed in an underlying database or persistent data store such as a file, any view that is observing that data model should reflect the change at the earliest opportunity (in the web world when the user refreshes a page, or when a page timer fires causing a page refresh).
    It appears that the default behavior…

    47 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  7. Add a method bool TryGetItem(TKey key, out TItem item) to a KeyedCollection<TKey, TItem> class

    KeyedCollection<TKey, TItem> class has an ability to fast find and return item in a list by a key. In a many scenarios is comfortably to check and get item in a single call, like IDictionary<,>::TryGetValue.

    This method can not be implemented outside of the class, because it need an access to protected dictionary in a KeyedCollection.

    My method implementation is:

    public bool TryGetItem(TKey key, out TItem item) {
    if(Dictionary != null) {
    return Dictionary.TryGetValue(key, out item);
    }//if

    foreach(var i in Items) {
    var k = GetKeyForItem(i);
    if(Comparer.Equals(key, k)) {
    item = i;
    return true;
    }//if
    }//for

    item = default(TItem);
    return…

    44 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  8. Objective-C compiler support in Visual Studio .NET

    I am a computer science student and want to try out Objective-C. It isn't always possible to get an Apple Mac to do all the objective-C programming that I am learning. Most of the time I can't get hold of my friend who has a Macintosh as he stays busy. I would like to suggest the idea of including and supporting the objectivc-c compiler in the future releases of Visual Studio .NET if possible. I understand that it is very time consuming job to get the objective-c compiler ready for a windows computer but still I keep the hope of…

    43 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  9. Reduce JIT time with by packaging profiles for non-win8 Store apps

    It is great that I can package my profiles using System.Runtime.ProfileOptimization for Win8 Store Apps (http://support.microsoft.com/kb/2715214). However we need to do it for NON-Win8 Store apps.

    42 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.
    - The Visual Studio Team

  10. Adopt dependency injetion patterns in core fx classes

    Many "core" framework classes (File, ConfigurationManager, ResourceManager, etc) rely on static members to provide their functionalities, making them very hard to mock without the use of isolation framework (such as Moles or TypeMock, which add their own functionality).

    If the framework just offered interfaces for such classes, injecting them as dependencies would be an easy task and avoid a lot of the hassle with those isolation tools.

    41 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.
    - The Visual Studio Team

  11. Multiplatform Framework

    We are really bored to write applications only for Windows. You should publish .NET Framework for other platforms. Mono project is not enugh. We need offical .NET Framework package for Linux Distros and OS X. And "build once, run everywhere" option would be good. Like Java's JAR packages...

    41 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  12. Interlocked.Increment for uint and ulong

    Add an overload for Interlocked.Increment for uint and ulongs.

    41 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  13. Please implement ReaderWriterLockSlim on the .Net Compact Framework

    Please implement ReaderWriterLockSlim on the .Net Compact Framework

    41 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.
    - The Visual Studio Team

  14. Add the Set Null proprety to the Delete Rule in Entity Framework edmx

    Now we can just put the "No Action" or "Cascade" on the Delete property on a association between two entity in the edmx.

    We use the Code First so we don't want to modify the SQL script after.

    And we don't want to read all the Data from the two entity, we read only the one we want to delete.

    41 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  15. Make VS2012 not hide .NET 4.0 bugs when targeting .NET 4.0

    Since .NET 4.5 will overwrite .NET 4.0 assemblies and because you can’t deploy .NET 4.5 on Windows XP and Windows Server 2003 there is a chance that I will not be aware of bugs existing in .NET 4.0 which are fixed in .NET 4.5.

    If I target the 4.0 version, bugs may be hidden from me because they are not present in .NET 4.5 which assemblies are used when debugging in VS2012 project targeting .NET 4.0. That means I can’t use VS2012 if I target .NET 4.0 on Windows XP or Windows Server 2003 machines unless I’m prepared to live…

    39 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  16. NGen should be able to produce optimized binaries outside the GAC, so that it could run without Administrator rights

    NGEN sould be able to produce binaries in a specified local folder, outside the GAC, without requiring Administrator rights.
    On the other side, there could be a runtime flag to put in app.config to specify where optimized binaries can be found so that the application would benefit from the pre-generated binaries instead of using jit compiler.

    This would respond to scenarios where applications are not deployed in "program files" by an MSI but rather stored in the user local storage (for ex. for a silent updates mechanism) but requiring the performance gain brought by ngenized binaries.

    38 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  17. support OData Client in Portable Class Library

    WCF Data Services & OData supposed to be a universal way to access data.

    Why should I have to implement this application layer in each client technology I create μυ application, and not in a portable library?

    36 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
  18. Provide an option for Silverlight sites to output HTML

    Not an easy task I'm sure, but wouldn't it be cool to work in Silverlight and serve up HTML to the browser!

    35 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  19. We need Xslt 2.0 Support

    We need Xslt 2.0 Transformation Support

    33 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  20. Remove everything outdated and antiquated from .NET vNext

    .NET is starting to have a lot of the same "mess" than Java had when .NET pummeled it in the early part of the last decade. We have stuff like ArrayList, non-generic collections, ADO.NET, stream-based XML processing, and LINQ to SQL all cluttering up the libraries. It's rare I find a .NET developer who things he's using the best tools available but is wasting his time using some of these older, slower, ******-to-use libraries.

    .NET is becoming too hard to learn to be good at for new developers fresh out of school. They're going to go to other languages they…

    32 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.
    - The Visual Studio Team

Feedback and Knowledge Base