Framework Design Guidelines

Krzysztof Cwalina / Krzysztof Cwalina / Jeremy Barton / Brad Abrams / Brad Abrams  
June 2020

Product detail

Product Price CHF Available  
Framework Design Guidelines
72.80 approx. 7-9 days


Framework Design Guidelines, Third Edition, teaches students the best practices for designing reusable libraries for the Microsoft .NET Framework. Expanded and updated for .NET 7.3, this new edition focuses on new concepts which have altered the current and best practices for developing components in .NET. 

This book can improve the work of any .NET developer producing code that other developers will use. It includes copious annotations to the guidelines by prominent architects and practitioners of the .NET Framework, providing a lively discussion of the reasons for the guidelines as well as examples of when to break those guidelines

Microsoft architects Krzysztof Cwalina, Jeremy Barton, and Brad Abrams teach framework design from the top down. From their significant combined experience and deep insight, students will learn
  • The general philosophy and fundamental principles of framework design
  • Naming guidelines for the various parts of a framework
  • Guidelines for the design and extending of types and members of types
  • Issues affecting–and guidelines for ensuring–extensibility
  • How (and how not) to design exceptions
  • Guidelines for–and examples of–common framework design patterns
Guidelines in this book are presented in four major forms: Do, Consider, Avoid, and Do not. These directives help focus attention on practices that should always be used, those that should generally be used, those that should rarely be used, and those that should never be used. Every guideline includes a discussion of its applicability, and most include a code example to help illuminate the dialogue.


Krzysztof Cwalina is a Principal Architect at Microsoft. He was a founding member of the .NET Framework team, and throughout his career has designed many .NET Framework, .NET Core, and other APIs. He is currently working on Azure SDK APIs. Krzysztof graduated with B.S. and M.S. in computer science from the University of Iowa. 

Jeremy Barton is a Principal Software Engineer at Microsoft. The majority of his career in computer software has been on the design and development of shared libraries. Since 2005 his primary programming language is C#, and he joined the .NET Base Class Libraries team in 2015 and is primarily responsible for .NET Cryptography. Jeremy graduated from Rose-Hulman Institute of Technology with a B.S. in Computer Science and Discrete Mathematics. Since graduation, he has gotten a cat, married, and a pilot’s license.

Brad Abrams was a founding member of the Common Language Runtime and .NET Framework teams at Microsoft Corporation. He has been designing parts of the .NET Framework since 1998 and is currently Group Program Manager of the .NET Framework team. Brad started his framework design career building the Base Class Library (BCL) that ships as a core part of the .NET Framework. Brad was also the lead editor on the Common Language Specification (CLS), the .NET Framework Design Guidelines, and the libraries in the ECMA/ISO CLI Standard. Brad has authored and coauthored multiple publications, including Programming in the .NET Environment and .NET Framework Standard Library Annotated Reference, Volumes 1 and 2. Brad graduated from North Carolina State University with a B.S. in computer science. You can find his most recent musings on his blog at