What’s new in .NET Framework 4.5? [poster]

.NET Framework 4.5 had its CTP released in Build, and RTM is coming next year. The key improvement areas are asynchronous programming, performance and support for Windows 8/WinRT â€“ but worry not, itâ€™s not all about those new thingies.

Instead of just listing it all out, hereâ€™s a poster you can hang on your wall and explore. The ideal print size is a landscape A3. If you want it all in writing, follow the links at the end of this post. Click on the image for a larger version.

[UPDATE 2011-11-16: I have changed the poster to include changes in F# 3.0.]

[UPDATE 2012-03-07: The poster has been updated for .NET 4.5 Beta release. Also, the poster is being delivered to TechDays Finland 2012 participants – the new updated version is equal to the one available in print.]

I agree that F# should definitely be included. The support for type providers is quite a big thing (I would say this should actually be on the same level as ADO.NET and it should also list all the type providers that will be available, when that's announced – like Entity framework, LINQ to SQL, OData, etc.).

Aside, F# should probably also get (A) icon, although its asynchronous programming has been there since 2007. The asynchronous features of C# are pretty much inspired by what F# has already (although F# still has a few more things like cancellation and agents): http://tomasp.net/blog/csharp-fsharp-async-intro.aspx

I originally left F# out for the same reason as with several less used Framework elements: conservation of space, focus on the essential. Since languages aren't technically even part of the package, I decided that a reference to Visual Studio 11 and the Roslyn project would probably set more context for the majority of readers – particularly since Roslyn not being included in .NET 4.5 was somewhat of a surprise to a few of my readers.

Having read all the feedback, I have changed my mind and agree with you. Those pixels are better spent detailing F# 3.0 than making a hand-waving reference to Roslyn and Visual Studio 11.

Ouch. Thanks Sean. I had several proofreaders, but all of them native Finnish speakers, and none caught this. Also, the poster has been out for nearly three weeks and you're the first one to notice this.

@Associat0r: I considered the (A) icon but decided against it. Although F# definitely has great async support and has been a role model for the more traditional languages' async rebirth, I was trying to use the (A) symbol to denote considerable improvements to asynchrony support, which F# 3.0 AFAIK doesn't have. The legend perhaps doesn't convey the exact semantics of (A) very well, though.

@Justin: Thanks for the feedback. With BCL (as with many other boxes which simply had insufficient space) I made quite a few choices to cut down parts that were not significant enough. While the Zip changes are substantial, my view is that the problems with the current zip implementations are not common enough to warrant the inclusion of those fixes into the poster.

Having said that, I'm not claiming my choices represent the best balance for everyone. There is room for debate, and I'm listening – further revisions of the poster are also possible. Also, once .NET 4.5 beta is released, it may provide a reason to reassess the significance of various changes.

Mark: I was considering it originally, but given the lack of general interest, I don't think I'm going to do it. Contact me via email if you're interested in doing it yourself: I'll send you the svg original for that.