A while ago we announced Visual Studio 2010 and C# 4.0. In case you'd like to catch up and read articles or watch videos about the upcoming new features, I wanted to gather some links here.
- https://channel9.msdn.com/pdc2008/ is a great link about PDC, where you can watch a lot of interesting videos, such as:
- The Future of C# - a perfect talk by Anders. Must see.
- Panel: The Future of Programming Languages
- Microsoft Visual C# IDE- Tips and Tricks - some great tips from Dustin Campbell
- Natural Interop with Silverlight, Office and Python in Microsoft Visual C# and Microsoft Visual Basic
- An Introduction to Microsoft F#
- Future Directions for Microsoft Visual Basic
- Visual Studio Debugger Tips & Tricks
- Managed Extensibility Framework: Overview
- Microsoft Visual Studio: Customizing and Extending the Development Environment
- Parallel Programming for Managed Developers with the next version of Microsoft Visual Studio
- The Concurrency And Coordination Runtime And Decentralized Software Services Toolkit
- This list is far from being comprehensive, there's just too much cool stuff there - I literally stopped watching TV or movies nowadays - instead, I'm watching PDC sessions in the evenings 🙂
- Scott Guthrie demonstrated the next Visual Studio at PDC 2008. Watch his demo here: https://channel9.msdn.com/pdc2008/KYN02/ (scroll to 86:00). Among other cool stuff, Scott demoes the new code editor, re-written from scratch using C# and WPF. The main Visual Studio UI itself is also rewritten using WPF (just the UI, not the entire Visual Studio).
- Jason Zander, the General Manager of Visual Studio, did a great demo of the upcoming features in his keynote. Also watch a great video here: https://channel9.msdn.com/posts/VisualStudio/Visual-Studio-2010-Overview/
- Mads Torgersen, one of C# language designers, talks about the Future of C#
- Roy Osherove talks about Deep Reflection
- Our C# IDE PM Karen Liu talks about C# IDE Tips and Tricks
- Karen has also posted a blog about this: Tech Ed 2008- Presentation Materials for TLA 204 Visual C# IDE Tips and Tricks
- F# PM Luke Hoban does a Deep Dive into the C# implementation of LINQ
- Dynamic - "late binding" in C# - a way to delay binding and code execution to runtime
- Variance - generic co- and contravariance
- Named and Optional parameters - better parity with VB, no more "ref missing", more readable code with named parameters
- COM interop support - omitting "ref" for COM calls, NoPIA (embedding Primary Interop Assemblies directly into your assembly to ease deployment) and some others
What to read about C# 4 language features? Well, first and foremost, there is always Charlie's blog that accumulates all C# news:
- Community Convergence XLVII
- New Features in C# 4.0 Paper, plus Feedback and Samples
- http://code.msdn.microsoft.com/csharpfuture - C# Future homepage
C# compiler developer's blogs are a terrific technical resource - highly recommended:
C# IDE improvements
As far as I can tell, we don't yet have a comprehensive resource about the new features in the C# IDE. Well, let me spill the beans and briefly mention them here, before I dive into the details in my upcoming posts.
- Call Hierarchy - for a method or property, allows to view Calls To (callers), Calls From (callees), Overrides (if applicable) and Implementations (if applicable).
- Quick Symbol Search - a very simple dialog with a textbox and a listbox that allows you to type a symbol's name or part of it (any type or member) and hit Enter to navigate to it quickly. Ctrl+, is the shortcut that you can reconfigure if necessary.
- Generate From Usage - just like we had Generate Method Stub by pressing Ctrl+. on a SmartTag under undefined method call, now you can generate a new class for an undefined class, a constructor for an unknown constructor, a property, an enum, etc.
- Highlight References - when a cursor is on a symbol, all the references to this symbol are highlighted in the currently opened file.
- Many other miscellaneous improvements, such as a better background compiler ("Live Squiggles"), XML doc rename refactoring, etc.
.NET Framework 4.0
Justin van Patten has a great overview of upcoming new features in .NET 4.0. It is worth mentioning, that 4.0 will have a new CLR version 4.0 (2.0, 3.0 and 3.5 were all working on the CLR version 2.0). Most notably, .NET will introduce tuples, code contracts, parallel extensions, variance annotations and a whole lot more.
Other Visual Studio improvements
Of course, I'm only scratching the surface of what the next Visual Studio will bring - many teams across the division worked hard and implemented a lot of cool stuff (e.g. Architecture Explorer, Sequence Diagrams, etc). I'm only mentioning some features that I personally find really interesting as a member of the C# team.
- New Editor - the Visual Studio code editor has been fully rewritten from scratch using C#, WPF and MEF. It shims the old editor interfaces and pretends to behave just like the old editor, but it also exposes a nice new managed API that you can program against. A huge advantage of the New Editor is flexibility and extensibility - you can do really weird things with it, given the fact that it's WPF and allows any UIElement to be placed on it.
- WPF Shell - the Visual Studio UI (Shell, menus, toolwindows, toolbars) has been rewritten using WPF as well, to allow customization. Not all of the UI has been converted, so there are some "islands of hWnd" floating in WinFormsHost, which will be converted in future versions.
- Back-in-time debugger - the Debugger team introduced a new Historical Debugger, which records the program's execution and allows you to rollback the program's state (callstack, variables, etc.) to an earlier point in time.
In my next blog posts, I will start talking more about the upcoming new features (especially the Call Hierarchy one - since I was the one who tested it).