My personal turning point on the importance of managed code was in September 2001, when the NIMDA worm absolutely crushed our organization. It felt like a natural disaster without the "natural" part-- the first notable port 80 IIS buffer overrun exploit. We got literally zero work done that day, and the next day wasn't much better. After surveying the carnage first hand, I immediately saw the benefit of languages where buffer overruns weren't even possible. Managed code, of course, isn't free. All that bit-twiddling was there for a reason-- to squeeze every last iota of performance out of your 386 and 486. On Managed Code Performance
CLR Inside Out Thread Management In The CLR Erika Fuentes and Eric Eilebrecht This column is based on prerelease versions of the CLR Threading System and the Task Parallel Libraries. All information is subject to change. Thread Management In The CLR
Teaching - Advanced .Net
Using the Reliability Features of the .NET Framework High Availability Keep Your Code Running with the Reliability Features of the .NET Framework Stephen Toub This article is based on a prerelease version of the .NET Framework 2.0. All information herein is subject to change. Do you write reliable managed code?
Debugging .NET Applications MSDN Library Design Tools Development Tools and Languages
Where's your leak at? [Using WinDbg, SOS, and GCRoot to ... In my last post, I explained how it was possible for "hidden" event handlers to introduce memory leaks and showed an easy way to prevent such leaks. I used a sample application to contrast a leaky implementation with one that uses the WeakEventListener class (included as part of the post) to avoid leaking on Silverlight. The changes required to patch the leak were fairly minimal and the entire process was pretty straightforward. But I glossed over one important point...
Background Garbage Collection in CLR 4.0 Yesterday I found this really nice Channel 9 interview with Maoni Stephens (Dev Owner of the CLR GC) and Andrew Pardoe (Program manager for the CLR GC) where they talked about the new Background GC in CLR 4.0. She also talks about it here and there is not much value in me repeating what she already says there but basically the main points of the video and the post are: Concurrent GC is being replaced by Background GC in CLR 4.0 Concurrent GC is the mode of the GC that you use in desktop applications for example. The goal of the concurrent GC is to minimize pause time, and it does so by allowing you to still allocate while a GC is in progress (hence the concurrent part).
The Architecture Journal
Demystifying Microsoft Intermediate Language