This post is long overdue, but if you hadn't heard, my bosses Brad Abrams and Krzysztof Cwalina (pronounced Kris-toff Tzvalyna [thanks to Monika Dyrda for the transliteration]) recently completed V2 of the renowned  Framework Guidelines book.

Framework Design Guidelines: Conventions, Idioms, and Patterns for Reuseable .NET Libraries (2nd Edition) (Microsoft .NET Development Series)

What's New in the 2nd edition?

  • Updated with new features from .NET Framework 3.0 and 3.5
  • Tons of new annotations from industry experts
  • Extension methods
  • Linq, Linq, Linq!!
  • New Async Pattern
  • Serialization guidelines
  • Dependency Properties guidelines
  • Significant updates to the Exceptions section
  • Small things such as operator parameters, DateTimeOffset, Nullable
  • Nearly every page has some sort of update from small grammar fixes to wording clarifications

Before working at Microsoft, I worked on a few teams that were building in-house frameworks layered on top of the .NET Framework. We were back in the .NET 1.0 days, so we had a lot of debate on how we should design our APIs. Inevitably we ended up coming up with our own guidelines. The amt of rigor we applied to our API design paled in comparison to that of the .NET Framework.

Back then we didn't have a tome such as the Framework Guidelines to guide us. We were on our own. Fortunately that is not the case today. I've been reading the Guidelines for the first time and it carries a world of information. What struck me is all the different concerns that we had completely overlooked!

If I were still building frameworks as I was then, I'd be definitely looking to the guide as my bible. Oh wait, I still am only now it's the .NET framework :-). Better get back to my reading!