Microsoft, in my humble opinion, has always been more interested in new “technology” rather than the fundamental ideas that underpin the technology. It makes sense. Microsoft is a for-profit company. You make money by selling the newest-latest-greatest, not by delving into the fundamental principals and problems that are common to many software project, regardless of if it is on Windows, the Mac, or *gasp* Linux. This has changed a little with .NET. Clearly Microsoft has gone out and recruited some of the best architecture/language/whatever people on the planet to help them build their runtime, languages and development environment.
Anyway, all this hoopla is leading up to a link to the Microsoft Patterns & Practices section of the MSDN website. It’s for enterprise software (not necessarily desktop stuff), and I haven’t had much of a chance to read through everything yet, so I can’t speak to how good the patterns are, but I thought I’d post it here for anyone interested in going beyond “how do I do X in .NET” to thinking about the deeper issues.