PDC Day 3: What's Coming in CLR 4.0 (Part 2)
In part 1 we looked at CLR side-by-side support for multiple versions, at interoperability-related features and at DLR-related changes in the CLR.
There have been various complaints about performance aspects of the CLR that are sometimes neglected - the installation experience, the startup experience and the GC latency experience for high-performance applications. This feedback will be addressed in CLR 4.0:
- The .NET installer can be branded and customized, and begins with a 200K bootstrapper. Downloading, installing and NGEN-ing the framework all occur in parallel, enabling a faster setup experience with less clicks to install.
- Startup improvements (around cold and warm startup) might benefit client applications.
- A new client background-GC mode will allow garbage collections in the lower generations to occur in parallel with a concurrent GC of generation 2 that has already started. In other words, if a concurrent gen2 GC is running and your application triggers a low-generation GC, it will run concurrently with the gen2 and not wait for it to complete synchronously. (This is the client-side story; the server-side story is all about GC notifications, which are part of .NET 3.5SP1.)
From the debugging perspective, the big news is that 64-bit mixed-mode applications can (FINALLY!) be debugged with Visual Studio and that managed crash dumps (including mini-dumps) can now be opened in Visual Studio! With the addition of lock inspection debugger APIs, this doesn't mean that the WinDbg+SOS tandem can retire to greener pastures - but it does put Visual Studio hardcore debugging in a whole new perspective.
For greater reliability, the upcoming release will incorporate an opt-out feature that disallows catching state-corrupting exceptions such as access violations, and a code contract (design by contract) specification mechanism for static analysis tools to detect problems at the compilation phase.
This is all very exciting news, and rest assured that the majority of these features will be covered in my future posts. With one more session to go until the conference adjourns, stay on your toes because I'm not so sure the technology announcements have been completely exhausted just yet.