Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 3rd edition

Published by Addison-Wesley Professional (June 18, 2020) © 2020

  • Krzysztof Cwalina
  • Jeremy Barton
  • Brad Abrams

eTextbook

$61.99

  • Available for purchase from all major ebook resellers, including InformIT.com.
  • To request a review copy, click on the "Request a Review Copy" button.
$51.99

  • A print text (hardcover or paperback) 
  • Free shipping
  • Also available for purchase as an ebook from all major ebook resellers, including InformIT.com
Framework Design Guidelines has long been the definitive guide to best practices for developing components and component libraries in Microsoft .NET. Now, this edition has been fully revised to reflect game-changing API design innovations introduced by Microsoft through eight recent updates to C#, eleven updates to .NET Framework, and the emergence and evolution of .NET Core.
Three leading Microsoft architects share the same guidance Microsoft teams are using to evolve .NET, so you can design well-performing components that feel like natural extensions to the platform. Building on the book’s proven explanatory style, the authors and expert annotators offer insider guidance on new .NET and C# concepts, including major advances in asynchronous programming and lightweight memory access. Throughout, they clarify and refresh existing content, helping you take full advantage of best practices based on C# 8, .NET Framework 4.8, and .NET Core.
  • Discover which practices should always, generally, rarely, or never be used—including practices that are no longer recommended
  • Learn the general philosophy and fundamental principles of modern framework design
  • Explore common framework design patterns with up-to-date C# examples
  • Apply best practices for naming, types, extensibility, and exceptions
  • Learn how to design libraries that scale in the cloud
  • Master new async programming techniques utilising Task and ValueTask
  • Make the most of the Core Memory and Span types for lightweight memory access
  • Coverage of new aspects of API design that are critical to modern .NET libraries
  • Revised third edition provides guidance around new concepts in C# and .NET
  • Written by members of the API review board for .NET 
The third edition of Framework Design Guidelines continues with guidelines and explanatory style found in the previous editions. In addition to clarifying and refreshing existing content, the new edition will provide guidance around new concepts in C# and .NET, such as asynchronous programming with Task and ValueTask and lightweight memory access with Memory<T> and Span<T>. The third edition will also describe distributing shared components via NuGet, and concerns and considerations to take into account.
  • Chapter 1: Introduction
  • Chapter 2: Framework Design Fundamentals
  • Chapter 3: Naming Guidelines
  • Chapter 4: Type Design Guidelines
  • Chapter 5: Member Design
  • Chapter 6: Designing for Extensibility
  • Chapter 7: Exceptions
  • Chapter 8: Usage Guidelines
  • Chapter 9: Common Design Patterns
  • Appendix A: C# Coding Style Conventions
  • Appendix B: Obsolete Guidance
  • Appendix C: Sample API Specification
  • Appendix D: Breaking Changes
  • Glossary
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 BS and MS 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 BS 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 a Group Program Manager at Google. 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 BS in computer science. You can find his most recent musings on his blog at http://blogs.msdn.com/BradA.

Need help? Get in touch

Video
Play
Privacy and cookies
By watching, you agree Pearson can share your viewership data for marketing and analytics for one year, revocable by deleting your cookies.

Pearson eTextbook: What’s on the inside just might surprise you

They say you can’t judge a book by its cover. It’s the same with your students. Meet each one right where they are with an engaging, interactive, personalized learning experience that goes beyond the textbook to fit any schedule, any budget, and any lifestyle.Â