OverviewThis is the Safari online edition of the printed book.
" Framework Design Guidelines
is one of those rare books that can be read at different reading
levels and can be useful to different kinds of developers.
Regardless of whether you want to design an effective object model,
improve your understanding of the .NET Framework, borrow from the
experience of software gurus, stay clear of the most common
programming mistakes, or just get an idea of the huge effort that
led to the .NET initiative, this book is a must-read."
–Francesco Balena, The VB Migration
Partner Team (www.vbmigration.com), Code Architect, Author, and
Microsoft Regional Director, Italy
" Frameworks are valuable but
notoriously difficult to construct: your every decision must be
geared toward making them easy to be used correctly and difficult
to be used incorrectly. This book takes you through a progression
of recommendations that will eliminate many of those downstream
'I wish I'd known that earlier' moments. I wish
I'd read it earlier."
–Paul Besly, Principal Technologist,
QA
" Not since Brooks' The
Mythical Man Month has the major software maker of its time
produced a book so full of relevant advice for the modern software
developer. This book has a permanent place on my bookshelf and I
consult it frequently."
–George Byrkit, Senior Software
Engineer, Genomic Solutions
" Updated for the new language
features of the .NET Framework 3.0 and 3.5, this book continues to
be the definitive resource for .NET developers and architects who
are designing class library frameworks. Some of the existing
guidelines have been expanded with new annotations and more detail,
and new guidance covering such features as extension methods and
nullable types has also been included. The guidance will help any
developer write clearer and more understandable code, while the
annotations provide invaluable insight into some of the design
decisions that made the .NET Framework what it is today."
–Scott Dorman, Microsoft MVP and
President, Tampa Bay International Association of Software
Architects
" Filled with information useful to
developers and architects of all levels, this book provides
practical guidelines and expert background information to get
behind the rules. Framework Design Guidelines takes the
already published guidelines to a higher level, and it is needed to
write applications that integrate well in the .NET area."
–Cristof Falk, Software Engineer
" This book is an absolute must read
for all .NET developers. It gives clear 'do' and
'don't' guidance on how to design class libraries
for .NET. It also offers insight into the design and creation of
.NET that really helps developers understand the reasons why things
are the way they are. This information will aid developers
designing their own class libraries and will also allow them to
take advantage of the .NET class library more
effectively."
–Jeffrey Richter,
Author/Trainer/Consultant, Wintellect
" The second edition of Framework
Design Guidelines gives you new, important insight into
designing your own class libraries: Abrams and Cwalina frankly
discuss the challenges of adding new features to shipping versions
of their products with minimal impact on existing code.
You'll find great examples of how to create version N+1 of
your software by learning how the .NET class library team
created versions 2.0, 3.0, and 3.5 of the
.NET library. They were able to add generics, WCF, WPF, WF, and
LINQ with minimal impact on the existing APIs, even providing
capabilities for customers wanting to use only some of the new
features, while still maintaining compatibility with the original
library."
–Bill Wagner, Founder and Consultant,
SRT Solutions, author of Effective C# and More Effective
C#
" This book is a must read for all
architects and software developers thinking about frameworks. The
book offers insight into some driving factors behind the design of
the .NET Framework. It should be considered mandatory reading for
anybody tasked with creating application frameworks."
–Peter Winkler, Sr. Software Engineer,
Balance Technology Inc.
"An instant classic."
–From the Foreword by Miguel de
Icaza
Framework Design Guidelines, Second
Edition, teaches developers the best practices for
designing reusable libraries for the Microsoft .NET Framework.
Expanded and updated for .NET 3.5, this new edition focuses on the
design issues that directly affect the programmability of a class
library, specifically its publicly accessible APIs.
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 thirty-five
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 and
Brad Abrams teach framework design from the top down. From their
significant combined experience and deep insight, you 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.
Framework Design Guidelines, Second
Edition, is the only definitive source of best practices
for managed code API development, direct from the architects
themselves.
A companion DVD includes the Designing .NET
Class Libraries video series, instructional presentations by the
authors on design guidelines for developing classes and components
that extend the .NET Framework. A sample API specification and
other useful resources and tools are also included.