DCSIMG
PDC Day 3: What's Coming in CLR 4.0 (Part 2) - All Your Base Are Belong To Us

All Your Base Are Belong To Us

Mostly .NET internals and other kinds of gory details

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.

Comments

» PDC Day 3: What's Coming in CLR 4.0 (Part 2) - All Your Base Are … said:

Pingback from  » PDC Day 3: What's Coming in CLR 4.0 (Part 2) - All Your Base Are …

# October 30, 2008 5:38 PM

PDC Day 3: What's Coming in CLR 4.0 (Part 2) - All Your Base Are … | lowerautoinsurance said:

Pingback from  PDC Day 3: What's Coming in CLR 4.0 (Part 2) - All Your Base Are … | lowerautoinsurance

# October 30, 2008 5:46 PM

Bradley Grainger said:

My understanding was that the first two bullet points (branded installer, and improved cold startup time, particularly for WPF apps) were already addressed in .NET 3.5 SP1 (see windowsclient.net/.../wpf-whats-new-35sp1.aspx). Only the "background" collection mode is new for .NET 4.0.

# October 31, 2008 10:26 AM

Sam Gentile If (DeveloperTask==Communication && OS==Windows) said:

CSD/Geneva/Oslo /BizTalk Services /.NET Services I'm leading off with agreement with my friend Aaron

# October 31, 2008 3:51 PM

Pavel's Blog said:

PDC is over. Getting back to reality…and work. Plenty of work… Now that I’ve recovered somewhat from

# November 3, 2008 7:48 AM

Sam Gentile If (DeveloperTask==Communication && OS==Windows) said:

CSD/Geneva/Oslo /BizTalk Services /.NET Services I'm leading off with agreement with my friend Aaron

# November 8, 2008 11:24 AM

Sam Gentile's Blog said:

CSD/Geneva/Oslo /BizTalk Services /.NET Services I'm leading off with agreement with my friend Aaron Skonnard's assessment of all things CSD in his post, "If you're a Microsoft Connected Systems developer, and you're at the PDC this week , you're

# November 30, 2008 1:48 PM
Leave a Comment

(required) 

(required) 

(optional)

(required) 


Enter the numbers above: