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. implement means to define generic type constraints that are exclusive

    Currentyl I don't see any possibility to do the following, neither in C# nor VB:

    Interface ITest(Of T)
    '...
    End Interface

    Public Class Test(Of T1, T2)
    Implements ITest(Of T1)
    Implements ITest(Of T2)

    End Class

    Because T1 could be the same type as T2 and then the Interface would be implemented twice which of course is not allowed.

    I suggest now to implement a new keyword or other way to be able to define a constraint that ensures that a generic type is NOT the exact type of anoter generic type, eg:

    Interface ITest(Of T)
    '...
    End Interface

    Public Class Test(Of…

    0 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 →
  2. TextServiceFrameworkのサポートを追加してほしい

    カスタムコントロールを作る際、TextInputProcesserのサポートが必要になることがあります(日本では漢字を入力すると同時にふりがなを同時に表示することが要件になっていることがあります。テキストコントロールでは足りないのでエディターコンポーネントを作るといった時にも必要になります)
    .NETでもCOM Interlopを使えばできますが、SDKが変わるごとにそれをするのは非常に手間がかかります。何より非生産的です
    WinRTおよびWPF環境下でTextServiceFrameworkに対応できるようなクラスやインターフェイスがほしいです

    0 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 →
  3. Configuration ****

    Please create a way to handle better the configuration ****. Maybe creating some injectable configuration snippets, creating an assembly who handles the .config files, or some sort of attributes so you can specify that you whant to load the .config file from the calling assembly, not the executing one...

    0 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

  4. Provide us with a project type that officially supports the development of VGA-heavy applications from managed code.

    Provide us with a project type that officially supports the development of VGA-heavy applications from managed code.

    With the official announcement: “XNA Game Studio will not support Metro style apps” XNA has been marked as a legacy platform.

    Please provide us with a replacement that:
    -Fully satisfies .NET library design guidelines.
    -Allows direct access to the VGA.
    -Implements most strong points of XNA and learns from its mistakes.
    -Has a feature set that is ON PAIR with DirectX 11.1 and stays UP TO DATE with future DirectX releases, at least ones that are accessible on WinRT.
    -Enables developers to make…

    0 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. Additional overload for System.Runtime.InteropServices.Marshal.CreateWrapperOfType(..)

    Not that I need this particular method very often, but as I prefere strongly typed methods I would like to see an additional overload of method System.Runtime.InteropServices.Marshal.CreateWrapper(..) that takes the type parameter as a generic type parameter:

    C# example:
    //public static T CreateWrapperOfType<T>(object o) where T : __ComObject {
    public static T CreateWrapperOfType<T>(object o) where T : MarshalByRefObject {
    return (T)CreateWrapperOfType(o, typeof(T));
    }

    VB example:

    'Public Shared Function CreateWrapperOfType(Of T As __ComObject)(ByVal o As Object) As T
    Public Shared Function CreateWrapperOfType(Of T As MarshalByRefObject)(ByVal o As Object) As T
    Return DirectCast(Marshal.CreateWrapperOfType(o, GetType(T)), T)
    End Function

    Best regards
    Chris

    0 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

  6. Optimization Edmx

    Good afternoon!
    During updating of model Edmx it is possible to add choice function "Check of other changes in a database".
    By default to expose value in true.

    0 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 →
  7. Allow SqlConnection.Open to be canceled before the timeout

    There is no way to terminate a SqlConnection if it is opening while an end user hits the cancel button. There should be a Cancel method or (better) Open should take a CancellationToken.

    Compare the way SqlCommand.Cancel works.

    Currently the only workaround is to abandon the connections on background threads till the timeouts are reached.

    0 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 →
  8. Backport the new reflection API's in WinRT/.Net45 to older platforms (WP7.5, SL, .Net40), to create a unified experience.

    By adding the new reflection API's to the older platforms you create a unified experience which is less confusing then the current one, especially for Portable Libraries.
    It also makes it easier to write platform specific code that is not yet portable and link the files.
    Also, in this way the direction for reflection is clear and people can get used to the new API's.

    0 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 →
  9. Combine the VB as C# ide

    I have seen other companies, such as IL spy & telerik have different tabs with different language versions of the same code. I propose microsoft remove "C# & VB" applications, and instead have a generic "Managed application", where you could at any time edit the source code in either language, where in a project a version of what you write would exist in VB and also in C#. Also where you could edit a project from either language, simply by selecting the C# tab, or the VB tab.

    0 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 →
  10. INumber for basic number types

    The datatypes Byte, Decimal, Double, Integer, Long, Short, and Single should implement a new interface INumber, where common functionality like addition, substraction, multiplication and division is exposed.

    This will allow the easy implementation of classes that needs that functionality like typed matrix classes:

    public class Matrix<T>
    where T: INumber
    {
    Matrix<T> Add(T scalar);
    Matrix<T> Add(Matrix<T> matrix);
    ...
    }

    The current approach forces the developer to implement the matrix class multiple times.

    0 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 →
  11. 0 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 →
  12. Generic Multiinheritance

    Class OldValue(Of theType)
    value as theType
    oldValue as theType
    end class

    class theRow(Of theIntegerFieldType, theStringFieldType)
    FieldCode As theIntegerFieldType
    FieldText As theStringFieldType
    end class

    class IntegerWithOld [...]

    var myRow = new theRow(Integer, String)
    var myRowWithOldValues = new theRow(IntegerWithOld, StringWihOld)

    0 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

  13. declare method System.Collections.ObjectModel.Collection<T>.Add overridable

    The Add method should be declared overridable/virtual as otherwise it is not possible for implementors of a subclass to create a thread-safe collection (or only through providing a thread-safe IList in the constructor).

    0 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

  14. Add the Visual Basic PowerPacks DataRepeater to the framework.

    Include the DataRepeater in Windows Forms Controls library to complement the DataGridView. As it is, a separate dll (Microsoft.VisualBasic.PowerPacks) must be deployed with the application to get this control. This would bring Windows Forms development in-line with ASP.NET and WPF.

    0 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 →
  15. Entity Framework DbSet.Find: introduce an option to find local entities only

    DbSet has a Find method that allows finding an entity by its key value(s) only. This is a great method in generic code where otherwise a linq expression would require knowledge of key field name(s).

    Internally, Find delegates to InternalSet.Find that first executes FindInStateManager and then, if that yields nothing, FindInStore. It would be nice to have an option to execute the first method only, either by an overload of Find (bool localOnly) or a new method FindLocal.

    This would allow us to check whether the context contains an entity (by key) without a database round trip if it doesn't.…

    0 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

  16. BackgroundWorker reporting progress

    On the BackgroundWorker DoWorkEventArgs add a property to allow reporting progress without having to cast the sender to a BackgroundWorker

    0 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 →
  17. add a static method GetInstance(..) to System.IO.FileSystemInfo

    It would be goot to have a method like this on System.IO.FileSystemInfo that returns either a FileInfo or a DirectoryInfo:

    public static FileSystemInfo GetInstance(string path) {
    if (string.IsNullOrEmpty(path)) throw new ArgumentNullException("path");
    path = Path.GetFullPath(path);
    if (Directory.Exists(path)) return new DirectoryInfo(path);
    return new FileInfo(path);
    }

    0 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 →
  18. Graphic operations in .NET framework

    Some basic operations on images should be available in .NET framework without using external libraries. Operations such as: resize/scale, cropping, changing colors depth, etc.

    0 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 →
  19. random access iterator

    I want you to introduce a random access iterator. You have to do not copy all the way when searching the regular expression a huge StringBuilder by introducing this and search across the new line will also be possible

    0 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 →
1 2 32 33 34 36 Next →

Feedback and Knowledge Base