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. MSDN Website Documentation

    Ref: https://msdn.microsoft.com/en-us/library/0ka9477y(v=vs.110).aspx

    When giving code examples, it may be helpful to color code the "using <name>" namespace ref. for each specific namespace method as it is used in the code. This can help with forming a quick association to which namespace is being used as a reader is skimming the code.

    A method similar to the above example is worth exploring also. :-)

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  2. PopBrowseContext

    The command View.PopBrowseContext is no longer working, which is unfortunate, because I've used it a lot in the past. The command View.NagivateBackward is not the same thing!

    16 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  3. Improve documentation of Interfaces in C++/C# by copying it from a class when users extract the interface via dialog in VS

    I usually document my stuff well and have done 80% of a class documentation when I set out to extract interfaces. Its always a pain to extract methods and properties automatically and having to go over it again and copy&paste comments MANUALLY.

    Viewing documenting comments and their items (methods, properties) as a unit leads me to stating that I am not aware of an auto extract interface feature in Visual Studio :-(

    4 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

    I want to personally thank you for taking the time to share this suggestion. Since the suggestion you raised has not gathered many votes, the Visual Studio team is prioritizing other suggestions and closing it at this time.

    If you would like us to reconsider this, please create a new suggestion. Again, thank you for sharing with us!

    — The Visual Studio Team

  4. 1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  5. Make "lock" keyword more like "using" and "foreach"

    There are many lock primitives in .NET today (like Monitor.Enter, ReaderWriterLockSlim, etc.).
    Lock keyword make lock context very transparent. Bounds are explicit.

    When we use other primitives - bounds are not explicit and often this is hard to understand locks flow.

    Other keywords, like "using" and "foreach" are designed in same way. Using operates on IDisposable and foreach operates on IEnumerable.

    So, I think, there should be some interface like ILockable. At first look this interface can looks like:
    ILockable
    {
    ILockToken Enter(object obj);
    void Exit(ILockToken token);
    }

    In more details, ILockable should be designed with lock primitives keeping in…

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  6. 3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  7. Proxies for type composition

    It would be very helpful, and improve code maintenance, to have a way to automatically proxy functions. In particular to implement an interface via another internal object.

    The basic syntax would be:

    public class Composed : ISomething {
    SomethingImpl impl;

    proxy impl as ISomething;
    }

    Though individual method proxying would also be available.

    See http://mortoray.com/2014/12/22/adding-proxies-to-c-a-simple-proposition/

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  8. Support GUID Constants

    A syntax for defining a constant GUID. This would allow GUIDs to be used directly as Attribute parameters, rather than converting from constant strings at runtime. This would also make referencing the same guid in code and attributes much easier, as such cases will often run into what would otherwise be avoidable runtime evaluation.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  9. Change form font default to Segoe UI

    In windows 7 or higher,Windows use font 'Segoe UI' for dialog(s).But in visalul studio use 'Microsoft Sans Serif' in design and run dialog (form).
    Please change default form font from 'Microsoft Sans Serif' To 'Segoe UI'.

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  10. Allow to view base class code of a derived subclass "in place"

    When defining a subclass e. g. create a subclass from a baseclass, usually when viewing the code of the subclass, one will see only that it is derived from a baseclass but to view the baseclass itself, one has to open the definition of the baseclass code which is usually in another file.

    Now because class B "is a" class A in case that class B is a subclass of class A, why do we see just the code of the derived class and not also the part of the base class?

    Allow to view the code of a derived…

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  11. Handle exceptions like a switch statement

    Allow for handling multiple exceptions with the same block:

    try
    {
    ... // My code that throws
    }
    catch(WebException ex)
    catch(EndpointNotFoundException ex)
    {
    // Handle both exceptions the same way
    }
    catch(Exception ex)
    {
    // Handle unknown exceptions differently
    throw;
    }

    The only issue I see is the fact that you would need the same name for the local exception variable, but maybe there is a slightly better syntax for this.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  12. Support for DocBlock comments in C#

    Xml comments are out. DocBlocks is the future.
    Visual Studio should really support DocBlock comments.

    /**
    * Short one line description.
    * <p>
    * Longer description. If there were any, it would be
    * here.
    * <p>
    * And even more explanations to follow in consecutive
    * paragraphs separated by HTML paragraph breaks.
    *
    * @param variable Description text text text.
    * @return Description text text text.
    */
    public int MethodName (...)
    {
    // method body with a return statement
    }

    http://en.wikipedia.org/wiki/Docblock
    http://www.phpdoc.org/docs/latest/guides/docblocks.html

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  13. 1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  14. Display preview for XML comments

    The XML comments starting with /// are currently displayed in a tooltip. However, this tooltip doesn't display more sophisticated formatting like bullet points or code.
    I would appreciate a way to get a nicely rendered instant preview at the time I write the comment - by tooltip or some other view.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  15. support localization in "new format string"

    With C#, it should be possible to use "Hello \{Firstname} \{Lastname}" instead of string.Format("Hello {0} {1}", Firstname, Lastname);

    The change is welcome, but it does not support localization of text messages as I can see. How would you put the string in a ResX?

    If the string is not localizable, then I do not see the point. The developers ought to know the correct syntax. That syntax would be great for translators.

    Since there is now a "nameof" operator, is there a chance that string.Format will accept such named paramters as well?

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  16. Inline abstract class

    Please consider adding the ability to define abstract classes inline (similarly to what you can do in Java)

    for example:

    abstract class X
    {
    public abstract int f();
    }

    class Y
    {
    public X GetX()
    {
    return new X
    {
    public override int f() => 1
    }
    }
    }

    This idea matches your concept of making C# more concise and allows to remove yet another piece of boilerplate code.

    Thanks

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  17. reference

    Add reference to variable like reerences to functions (in VS 2015).

    2 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  18. Add memberof operator in C#

    Add "memberof" operator same as "nameof" operator usages.

    The "memberof" operator returns, MethodBase, FieldInfo, PropertyInfo, EventInfo, or Type.

    An advantage is the same as a "nameof" operator. Better safe coding in meta-programming.

    Moreover, since the compiler can change the result of memberof into tokenindex directly, it is efficient.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  19. Execution of c# in the browser without a plugin

    Now that microsoft has announced roslyn, .Net native and CoreFX it's possible that whole apps can be portable enough to effectively run anywhere.

    Most browsers have support for things like webGL and libraries that can do amazing things.

    Can we have a javascript library that we can give a dll name to in order to call a function within it inside the browser.

    Example:
    I've been building a toolkit for stacking complex perlin noise modules together, running the result in javascript would be insanely slow.
    Allow me to send a request in to a C# assembly to call a method…

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  20. Add "into", "into first", "into first?" "any", and other agregation operators to Linq

    Syntax examples
    //whole expression returns the collection, specified as into argument
    var evens = from x in [1, 2, 3, 4, 5, 6] where x / 2 == 0 select x into new List<int>();
    //accepts existing ICollection<TResult>, appends resulting elements to it, the returns that collection as result of whole collection
    from x in [1, 2, 3, 4, 5, 6] where x / 2 == 0 select x into evens;
    var oddsCount = from x in [1, 2, 3, 4, 5, 6] where x / 2 != 0 into count x;
    var hasEven = from x in [1, 2, 3,…

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
← Previous 1 3 4 5 30 31

Feedback and Knowledge Base