What do you want in the next version of C#/VS (part 2)

I went through the entire list and collected all the features that people requested. I then filtered that down to things that aren't in our beta1 release. I've also left out things that i didn't understand, asked questions about, and didn't get a response on. Feel free to raise those issues again so they don't get lost. I also broke up the requests into different areas to help explain who works on these issues. I also may have just missed a couple, don't take that to mean that I don't want it! (read below for some instructions).

Things that the C# team has control over


  • Better control over completion list (sorting and filtering). 
  • Better syntax for casting
  • Support for mixins
  • Spell-checking
  • User filtered catch handler. i'd like examples of why this is useful.
  • Expose the compiler through a managed API
  • Expose the refactoring engine
  • Nice inline array syntax
  • Better enum checking
  • Warnings for certain goto behavior
  • Better intellisense for indexers, operators and user defined conversions
  • Better support for telling you when you're using a disposable type unsafely
  • Automatic constructor stub generation: including making base calls and setting fields
  • Better code generation in general: generate field/property/constructor/class/etc.
  • Better control over all code generation.  (include /// generation)
  • Better support for nesting other languages in C# (like regexps and xml). Either through direct support in the language, or direct support through the tools
  • Find code duplication
  • More flexible interface implementation support
  • Top level functions
  • Tuples
  • Preconditions/Postconditions
  • Special constructs for asynchronous operation.
  • Nicer syntax for anonymous delegates
  • "using SomeClass" to allow direct access to static members in that class
  • Generic properties
  • Allow for properties to have a private backing store.
  • An easy way to collapse only comments
  • Exception filtering
  • Way to use events without having to check for null
  • Haikus

Things that the C# team can work with other teams to implement


  • New syntax + unification of value/class/array types using the + ? ! * syntax.  (See Orion's excellent posts on this): C# + CLR
  • Edit and continue. C# + the runtime
  • Make VB = C#.  Parity on tools and in the language: C# + VB
  • Covariant return types: C# + CLR
  • Non-null types: C# + CLR
  • Generic parameter lists of variable length: C# + CLR
  • Better operators. (on interfaces, virtual, type parameters, etc.). Allow user defined operators: `intersection`: C# + CLR
  • More control over fonts and colors in different regions in the file.: C# + Core editor team
  • Better constraints on generic type parameters: C# + CLR
  • Better incremental find: C# + Core editor
  • Attributes on smaller grained elements (code blocks, etc.): C# + CLR
  • Const support: C# + CLR
  • Better way to refer to method set in documentation.  i.e. some way to point to all methods called Foo
  • Haikus

Things that are for other teams to implement.


  • Integration of analysis tools (like FxCop): Research
  • Simpler debugging with threads: Debugger team
  • Managed interface to the profiling APIs: CLR
  • Notifications when an exception is thrown: CLR
  • Better tools support for understanding the modules loaded in fusion: CLR
  • Better MSI support: Not sure :-(   . Lots of feedback on this. Managed interface.  Better debugging.
  • Better Add-ins support: VSIP program
  • Better mock object support: CLR + Team system
  • IntPtr operators: Base class libraries
  • Much better docs. Diagrams, complexity (see ATs post) :-) : Doc teams
  • Better enforcement of FxCop rules on MS provided types. No more dead-ends in the frameworks: Base class libraries
  • Easier discoverability of key-bindings: Core editor
  • Better plugin support for unit testing engines: Team system
  • Allow any .Net langauge (including C#) to write VS macros in: VS Automation team.
  • Haikus

Now I'd like you to vote/rank on this to get some kind of numbers of how you feel about this. But not yet. I want to make sure that the list is correct/complete before continuing. Tell me if I'm missing something. If you'd like something broken up into multiple features let me know. If you also have better suggestions for the title/description, feel free to contribute those as well.

Hrmm... I forgot to include Edit&Continue (C# + Debugger + CLR teams). Probably missed it because no one really brought it up in the feedback. But for the few of you who did, you might find Jay's take on it. Specifically: "Here's the strongest statement I can make: We're committed to getting C# Edit and Continue into the hands of our users as soon as we can, without compromising all the other commitments we've made."