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 file/folder exclude in Visual Studio 2015 based on project.json exclude list

    like **node_modules**, **bower_components** files/folders I don't want to see **typings** and/or some other file/folders in solution explorer. IDE should exclude those based on project.json exclude list.

    20 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 →
  2. Namespace refactoring

    Allow to refactore namespace:

    - Renaming an existing namespace for all classes in the assembly
    - Move a class to another namespace (or even create a new namespace)

    20 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 →
  3. C#: Implement "Outline Statement Blocks" just like the one you have for C++

    Today in C# you have outlining for methods, properties, classes, namespaces and regions, this is great but not enough.

    1. First of all we want this for all statement blocks like if, while, foreach, for, using and so on.

    2. It would also be great if any selection in the editor could be collapsed.

    3. In addition to showing the content of a collapsed section when hovering over the boxed "..." at the end of the collapsed section "HeadLine", the same should content should be shown when hovering over a plus(+) sign in the "Outline column" to the left of…

    19 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 →
  4. SQL IN statement style comparison for C#

    It would be lot easier if we can have sql IN statement style to C# to compare a set of unrelated variables against a value or a set of values.

    Eg:
    string var_a="", var_b="", var=c, compare_val="";
    ...
    if((var_a, var_b, var_c)==compare_val)
    {
    }

    19 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 →
  5. C# Interactive Window: "Initialize Interactive with Project" should also load config file

    If testing a module that has a dependency on a config file value (connection string, for instance), the current implementation of "Initialize Interactive with Project" creates an interactive environment where modules will fail because the config file information is not loaded into the interactive environment. This makes testing with C# interactive useless for any such modules.

    18 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 →
  6. Add partial enum support

    // auto generated
    partial enum PartialEnum
    {
    ...
    }

    ...
    // user code
    partial enum PartialEnum
    {
    ...
    }

    17 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. const methods and const parameters

    Would pretty much work like it does in C++. Immutability is a very big deal. Using readonly wrappers is such an ugly hack, much unlike the elegancy we've come to expect from C#. Also, no hack in C# can recreate a C++ const member function. C# is supposed to be (C++)++, but it can't lack fundamental features like const functions and parameters.

    17 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 →
  8. Copy and paste Service References

    It should be great to allow copy/paste service reference from a project to a second (for example when the refered service is down it will be very useful)

    17 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 →
  9. Visual C# for Linux

    Create Visual C# for Linux templates just like Visual C++ for Linux does. So we can write, compile and debug mono code running e.g. on a Raspberry Pi from Visual Studio.

    17 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. Add unary ternary operator

    Hi,

    I'd like to ask you to allow omitting the last argument of the ternary operator, like the follows:

    var checked = flag ? "checked";

    Instead of:

    var checked = flag ? "checked" : (string)null;

    This might be very useful in Razor engine, for adding classes like .active etc.

    16 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 →
  11. Use full namespace when adding a using namespace reference

    When adding a using namespace statement to a C# file from the suggested actions dropdown, it would be nice to have an option that kept the old VS behavior where it would always use the full namespace name instead of a partial namespace.

    16 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 →
  12. Add "." unary dot operator, for class elements access expressions

    Lots of lambdas are only for accessing class elements, e.g.

    Property(x => x.Name).IsRequired();

    This could be:

    Property(.Name).IsRequired();

    More examples:

    context.Users.Where(.IsActive)
    .OrderBy(.Param)
    .Select(.Name.Trim());

    RaisePropertyChanged(.Name);

    Probably:

    context.Users.Select(string.Format("{0} - {1}", .Login, .Name));

    context.Users.Select(new {
    FullName = .Login + " " + .Name,
    Bonus = GetBonus(.Id)
    });

    16 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  13. implement xml literals

    It's about time to implement xml literals like VB.NET and ActionScript.

    Given that C# supports xml comments, xml literals should be the logical next step.

    Should not be too expensive to do on top of roslyn.

    15 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 →
  14. Dictionary get item lambda

    Dictionary<string, T> some = new Dictionary<string, T>();
    var tmp = some["some_key"]?.SomeField ?? string.Empty;

    15 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 →
  15. Bring back the full System.Net.NetworkInformation.dll for UWP

    WinRT seems to limit what a UWP app can be, normally I can use classes like Ping and DNS. Using these I can make an app that lets people know who is home or not. Since that has been removed the workaround for not having Ping or DNS is to know the device ahead of time and if a port is open for a socket connection. This involves to much information to be know about each device, where as ping does not have to worry about specific ports. I don't want to see WinRT holding back what C# is capable…

    15 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 →
  16. Use generics for DependencyProperties, Converters, and many other XAML-related objects

    It annoys me a lot whether I have to cast values and check for null references all the time, and also makes the code less readable.

    Using DependencyProperty<T> and Converter<T1, T2> would make XAML-friendly class constructions more efficient in performance, and comfortable to use in IntelliSense functions: For example, we should only be able to convert strings to ulongs by a class which implements Converter<string, ulong>.

    For DependencyProperties, the GetValue() and SetValue() functions should also only accept arguments which the property specifies. Making DependencyProperties generic would also make the registered 'typeof(T)' argument useless.

    15 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 →
  17. Allow Adding Interfaces To Existing Types At Compile Time

    This will obviate my need to use the Adapter pattern on almost every .NET type I come across which is not sealed.

    This would just be for making explicit what properties are already implemented so that I can attach extension methods to said interfaces.

    Currently there exist .NET types which implement properties with the identical names and identical types, but instead of declaring such(i.e. IHasStringNameProperty), the library code requires the developer to derive types with the needed interfaces in order to keep his/her client code DRY.

    But sometimes those types are sealed, so adapters won't work, or they are used…

    15 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 new feature to System.String like Typescript

    This suggestion is migrated to Developer Community. Please use below link to view the current status.
    https://developercommunity.visualstudio.com/content/idea/351721/add-new-feature-to-systemstring-like-typescript.html
    We can write c# code like follows:
    string name = "Tom";
    string hello = $"Hello {name}!";
    string path = @"D:\images\a.png";

    Sometimes we want to keep complicated string fromat like Json string, It's very inconvenient. We must write like this:
    string json = "{\"name\":\"Tom\"}";
    json = @"{""name"":""Tom""}";

    But in Typescript, it's very easy:
    content: string = `{"name":"Tom"}`;

    So I want to add this feature to c#/.Net.

    14 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 →
  19. Simplified XML comment tags (for less cluttered code)

    XML docs should support some simplified versions of commonly used comments. For example:

    /// <summary>
    /// This is a mess
    /// </summary>
    public int Mess;

    can be expressed in doxygen like this:

    /// @brief This is clear
    public int Clear;

    This makes for MUCH easier to read code and less clutter. With XML docs the tags can take up more space than the required comments! This makes code hard to read - especially since the programmer looses a lot of vertical code space.

    Also, for simple one line comments it would be nice to have the summary appended to the…

    14 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  20. Add Support of project level imports or project level namespaces in c# like vb.net

    hi

    vs2017 is shaping out to be the best vs ever made. but in the name of equal care between both .net languages C# and VB.net please Add Support of project level imports or project level namespaces in c# like vb.net.

    it would be great to have the exact same u.i property page / option just like any vb.net project, showing in the attached picture!

    will same a tone of issues, missing namespaces, and typed code in our classes.

    Regards

    13 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 →
1 2 5 7 9 46 47

Feedback and Knowledge Base