Do you know what I find a greatest addition to C# 4.0 / .NET 4.0?
- Dynamic? Well, it really did enable some interesting options (especially for F# and MVC), but it wasn’t a gamechanger really
- Covariance and Contravariance? Seriously, do you feel the difference?
- WF 4.0? Ok, it was a big overhaul, but it still lacks some “feature identity” - noone uses that as it’s hard to identify any scenario it’s really helpful (and / or necessary) with
- MEF? Oh yeah, that’s some quality - but there are some other IoC containers (yes, I realize that MEF is something more) available, so you have valuable alternatives
- TPL? Bullseye.
TPL is something I’ve been really waiting for and I didn’t get disappointed.
TPL (Task Parallel Library) is a new subset of .NET API, that aids you with a new way to create parallel, multi-threaded applications in a simplier, clearer and supposedly more efficient way, but MOST IMPORTANT - it sets the foundation for async / await asynchronous programming in .NET 4.5 that is a bridge between asynchronous paradigm of creating applications (especially user interfaces) in WinRT (Windows 8 Metro)!
The more and more I use it, the harder it is to go back and implement anything in .NET 3.5. And I find traditional, synchronous (blocking) user interfaces more and more annoying (try to compare WM5.5 user experience with WP7.5 “Mango” apps).
- You can find some basic details on TPL at http://msdn.microsoft.com/en-us/library/dd460717.aspx
- For intro on async/await, go for http://msdn.microsoft.com/en-us/library/hh191443%28v=vs.110%29.aspx
- And if you have 4 extra hours to spare, I stronly encourage you to get familiar with very comprehensive approach (it covers both TPL and async/await) to asynchronous programming in .NET, that can be found at Pluralsight: http://www.pluralsight-training.net/microsoft/Courses/TableOfContents/tpl-async