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: https://connect.microsoft.com/visualstudio.

To review the current UserVoice statuses and their definitions, please review our “What Does the Status of My Feedback Mean?” article.

We would also like to invite you to check out the Announcements section we have added to this site, where we will be posting special opportunities for you to participate in.

We look forward to hearing from you!

The Visual Studio Team
Terms of Service and Privacy Policy

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. New way to compare objects

    Nowadays when we have to check if 2 or more objects are nulls, we do something like to code below

    string name = null;
    string lastName = null;
    string result = null;

    if (name == null || lastName == null) {
    result = "Um deles é nulo";
    }

    The new way that i was think is

    OneOF([]arrayOfObjects, value to compare)

    if (OneOf(new string[2] { name, lastName }, null)) {
    result = "One or more is null;
    }

    To compare &&

    if(a == null && b == null)

    The new way is

    if (AllOf(new string[2] { name, lastName }, null) { …

    11 votes
    Vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)
      You have left! (?) (thinking…)
      0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
    • Option of baking like cakephp based on DB table so that platform become more easy and fast for development

      I have been working in cakephp for few projects and found some good features like building complete admin panel to manage CRUD operations for all the tables that database details i have provided, really its save my lot of time to manually building it.

      3 votes
      Vote
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        I agree to the terms of service
        Signed in as (Sign out)
        You have left! (?) (thinking…)
        0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
      • enable TFS email alerts triggerd by a change in a work item's Discussion (in History)

        Right now you can configure fairly interesting email alerts in TFS. One thing we can't figure out how to do is to get an alert when someone "adds to the discussion". We don't want an email alert for just any change. We want an alert, for example, to the entire team when someone only changes the Discussion within the History control.

        1 vote
        Vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          I agree to the terms of service
          Signed in as (Sign out)
          You have left! (?) (thinking…)
        • socket support for PCL(.Net 4.X, Windows 8.X, Windows Phone 8.X)

          Currently it is not supported to write code that uses sockets and share it between .Net and Windows Apps. The best solution I found so far was to define a Interface for the Socket in a Portable Class Library and create additional Projects for every platform that implements this interface. This makes it uncomfortable to write or use libraries that needs sockets and target multiple Platforms.

          9 votes
          Vote
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            I agree to the terms of service
            Signed in as (Sign out)
            You have left! (?) (thinking…)
            0 comments  ·  Project  ·  Flag idea as inappropriate…  ·  Admin →
          • Updating the Basic setup and deployment

            InstallShield is sucks complicated , too much complicated , why don't you just update the basic setup and deployment and add more options in there , it gonna be more helpful and useful than the installshield ..

            3 votes
            Vote
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              I agree to the terms of service
              Signed in as (Sign out)
              You have left! (?) (thinking…)
              0 comments  ·  Visual Studio Ultimate  ·  Flag idea as inappropriate…  ·  Admin →
            • Support server SSL certificate chain inspection in Portable Class Libraries

              As requested in http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/3158400-add-httpclient-support-in-portable-class-libraries there is now an HttpClient that can be used in Portable Class Libraries. The latest version of portable HttpClient today is 2.2.15 and it supports also SSL connections.

              When a SSL connection is created, the HttpClient doesn't offer any way to inspect the x.509 certificate chain returned by the remote server. I want to implement certificate pinning for additional security in my app and therefore I need an API to read the values of individual x.509 certificates.

              I've understood that this could be done in these frameworks:
              - .NET FW 2.0 (or newer): using System.Net.ServicePointManager.ServerCertificateValidationCallback API…

              340 votes
              Vote
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                I agree to the terms of service
                Signed in as (Sign out)
                You have left! (?) (thinking…)
                8 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
              • Add a Command property to SqlException

                When a SqlException is thrown, it will always be thrown by invoking an execute statement on the SqlCommand object. It would be helpful to have access to the actual SqlCommand object when handling the exception (which may be caught by some logging functionality far removed from the code that actually generated the exception.

                Right now, I have to catch and then rethrow the exception after adding the individual parameter values that were passed to the execute method.

                I usually let exceptions propagate up the call stack until a central handler can log the exception (and send them to me via…

                1 vote
                Vote
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  I agree to the terms of service
                  Signed in as (Sign out)
                  You have left! (?) (thinking…)
                  0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                • Allow project settings to be stored in an XML file

                  I have an ASP.NET MVC web project that is in Visual Studio 2013 Update 2, and I use GitHub as my central repository. I work at home, commit, go to the office, pull, do work, commit, go home, pull, do work, commit, etc.

                  This is working fine. But something keeps irritating me..

                  On my web project, I specifically have disabled [Edit and Continue] and told it, under the 'Web' options, for Start Action to be set to Specific Page, like seen in the picture below.

                  But every single time I change computers and do a Pull of the latest version,…

                  1 vote
                  Vote
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    I agree to the terms of service
                    Signed in as (Sign out)
                    You have left! (?) (thinking…)
                    0 comments  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
                  • compare equality of ranges of items in collections

                    Currently NETFX has weak/incomplete support for comparing the equality of ranges of items in arrays, lists, strings. This is such a fundamental and common operation yet it is still missing/incomplete!

                    Please consider adding the following simple and fast method to System.Buffer to compare the equality of a range of items in a large array of primitives:

                    public static bool BlockEquals(System.Array a, int aOffset, System.Array b, int bOffset, int count);

                    The proposed BlockEquals() method would be consistent with the existing BlockCopy() method in System.Buffer:

                    public static void BlockCopy(System.Array src, int srcOffset, System.Array dst, int dstOffset, int count);

                    Like BlockCopy(), the proposed…

                    1 vote
                    Vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      I agree to the terms of service
                      Signed in as (Sign out)
                      You have left! (?) (thinking…)
                      0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                    • make T4 ".tt" use "code-behind" files

                      I love the T4 ".tt" files, in particular the ability to auto-generate source code (a ".cs" output file) at compile-time within Visual Studio. I have found multiple uses for that. Quite convenient. Thanks for adding that feature to Visual Studio!

                      However, wouldn't it be better if it used "code-behind" files like how ASP.NET does?

                      Currently, a ".tt" file contains both T4 instructions/syntax and embedded C# code, both in the same ".tt" file. The lesson learned in ASP.NET is that it's better to extract the embedded C# code out of the HTML and store it in a separate-but-linked ".cs" file. I…

                      1 vote
                      Vote
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        I agree to the terms of service
                        Signed in as (Sign out)
                        You have left! (?) (thinking…)
                        0 comments  ·  Editor  ·  Flag idea as inappropriate…  ·  Admin →
                      • initialize an array "sparsely" or in non-sequential order

                        C# is a wonderful accomplishment, but further improvements are still desirable. I would like to describe a helpful feature that is supported in ISO standard C, but half-present and half-missing in C#.

                        In the C standard, you can initialize an array "sparsely" or in non-sequential order. For example, this feature is quite useful (and more reliable) for making a translation table that translates an input value (such as an enumeration value) to an output value in instant O(1) time.

                        In ISO C99, you can write:
                        int a[6] = { [4] = 29, [2] = 15 };

                        And it produces the…

                        1 vote
                        Vote
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          I agree to the terms of service
                          Signed in as (Sign out)
                          You have left! (?) (thinking…)
                          0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                        • Check overflow without throwing exception

                          The C# "checked" and "unchecked" keywords are great, but I wish the .NET Framework had some simple functions (written in native assembler) for reporting overflow *without* throwing a time-consuming exception. This is especially useful for situations where the overflow is expected to occur commonly.

                          Also for situations where throwing overflow exceptions is unacceptable because it enables a Denial-of-Service attack where the attacker triggers millions of overflow exceptions to delay the service (remember throwing .NET Exceptions is expensive).

                          I suggest implementing functions in System.Int64, UInt64, Int32 (etc) like the following:

                          // return true if successful, or false if overflow.
                          public static…

                          1 vote
                          Vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            I agree to the terms of service
                            Signed in as (Sign out)
                            You have left! (?) (thinking…)
                            0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                          • Add option to disable "*" on every line of multi-line C# comments

                            In the C# text editor, I wish there was an option to disable the behavior where it automatically inserts an asterisk (at the beginning of the new line) every time you press the Enter key inside a /* multi-line comment */

                            1 vote
                            Vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              I agree to the terms of service
                              Signed in as (Sign out)
                              You have left! (?) (thinking…)
                              0 comments  ·  Editor  ·  Flag idea as inappropriate…  ·  Admin →
                            • fix some issues in System.Numerics.BigInteger

                              Great work on System.Numerics.BigInteger. It is quite nice, and smartly designed, and will ultimately be appreciated by many people. Thanks for creating it. However it is still missing a few significant things.

                              It lacks an efficient constructor. I wish you could add a constructor like this:

                              BigInteger(uint[] data, int length, bool isNegative);

                              Currently it only has a BigInteger(byte[]) constructor, however it is a problematic constructor:

                              (1) It has messy/tricky (mistake-prone) handling of signed numbers (explained in the documentation but nevertheless tricky). It would be better to simply use a separate boolean parameter to indicate sign: Simple, reliable, efficient, no tricky…

                              1 vote
                              Vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                I agree to the terms of service
                                Signed in as (Sign out)
                                You have left! (?) (thinking…)
                                0 comments  ·  .NET  ·  Flag idea as inappropriate…  ·  Admin →
                              • fix issues with checking for NULL

                                In C#, it is very easy to make the mistake of failing to realize that "a == null" invokes an operator == overload function defined in the class of "a". In other words, surprisingly, "a == null" is NOT always the same as System.Object.ReferenceEquals(a,null).

                                Please consider adding the following simple, convenient, unambiguous functions to System.Object:

                                public static bool IsNull(object obj) { return obj == null; }
                                public static bool IsNotNull(object obj) { return obj != null; }

                                Then you can use them like this:

                                MyClass a = new MyClass();
                                ...
                                if (object.IsNull(a)) { ... }

                                The proposed object.IsNull(a) always returns…

                                1 vote
                                Vote
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  I agree to the terms of service
                                  Signed in as (Sign out)
                                  You have left! (?) (thinking…)
                                  0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                                • improve Null Coalescing operator ("??")

                                  The idea of the C# Null Coalescing operator ("??") is great but the current implementation is defective and needs to be fixed, in my opinion. For starters, I will explain problems using "??" in conjunction with "foreach".

                                  If you jump ahead and say the answer is System.Linq.Enumerable.Empty<T>() then my reply is: I know it exists but it is problematic, as I will explain.

                                  Firstly, to refresh our memory, note that "foreach" throws NullReferenceException if the collection is null (as opposed to empty non-null). This exception can be avoided in the case of iterating thru the chars of a string as…

                                  1 vote
                                  Vote
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    I agree to the terms of service
                                    Signed in as (Sign out)
                                    You have left! (?) (thinking…)
                                    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                                  • Extend the toolbox and what can be done with the template

                                    I want to use conditionals, call other workflows, add/remove users in groups on servers, add certificates and manage user access on private keys, add/remove com+ applications and components, add/remove app pools, virtual directories and applications etc without having to create my own powershell script.

                                    23 votes
                                    Vote
                                    Sign in
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      I agree to the terms of service
                                      Signed in as (Sign out)
                                      You have left! (?) (thinking…)
                                      0 comments  ·  Release Management  ·  Flag idea as inappropriate…  ·  Admin →
                                    • Group solutions by branch in Team Explorer - Home

                                      When you have multiple solutions in each branch, the list of available solutions for a TFS team project grows pretty quickly. It even says, "There were more solutions found, open them from [here]", which leads to the Source Control Explorer. It would be useful to group the solutions by branch, tree-view style, so that you could pick the right branch first, and then the right solution, because now you often find the right solution first (it's in black instead of gray), but then it's one from the wrong branch.

                                      3 votes
                                      Vote
                                      Sign in
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        I agree to the terms of service
                                        Signed in as (Sign out)
                                        You have left! (?) (thinking…)
                                      • add heirarchy navigation combos when open .js and .config files

                                        When opening java script file or configuration file, it will be helpful if there are the top two dropdown menus that we get when opening c# or vb.net classes files

                                        3 votes
                                        Vote
                                        Sign in
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          I agree to the terms of service
                                          Signed in as (Sign out)
                                          You have left! (?) (thinking…)
                                          0 comments  ·  IDE  ·  Flag idea as inappropriate…  ·  Admin →
                                        • When comparing files, make it easier to filter out changes that are just renames or formatting

                                          When I get a code review request from another developer, I would like to only see "real" changes that actually change the meaning of the code. In the review requests I get, most of the changes are just renames of variables or a different formatting (whitespace, moving braces, ...). It's really difficult to detect the "real" changes to the code that actually cahnge the behavior between all the noise that's caused by other changes like renames.

                                          13 votes
                                          Vote
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            I agree to the terms of service
                                            Signed in as (Sign out)
                                            You have left! (?) (thinking…)
                                          • Don't see your idea?

                                          Feedback and Knowledge Base