81 KB – 84 Pages

PAGE – 2 ============
fi Framework Design Guidelines is one of those rare books that can be read at differ -ent reading levels and can be useful to different kinds of developers. Regardless of whether you want to design an effective object model, improve your under -standing 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.fl ŠFrancesco Balena, The VB Migration Partner Team (www.vbmigration.com), Code Architect, Author, and Microsoft Regional Director, Italy fi Frameworks are valuable but notoriously dif˜cult to construct: your every decision must be geared toward making them easy to be used correctly and dif˜cult 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.fl ŠPaul Besly, Principal Technologist, QA fi 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.fl ŠGeorge Byrkit, Senior Software Engineer, Genomic Solutions fi Updated for the new language features of the .NET Framework 3.0 and 3.5, this book continues to be the de˜nitive 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 invalu- able insight into some of the design decisions that made the .NET Framework what it is today.fl ŠScott Dorman, Microsoft MVP and President, Tampa Bay International Association of Software Architects

PAGE – 3 ============
fi 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 pub -lished guidelines to a higher level, and it is needed to write applications that integrate well in the .NET area.fl ŠCristof Falk, Software Engineer fi 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 under -stand 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.fl ŠJeffrey Richter, Author/Trainer/Consultant, Wintellect fi 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 prod – ucts with minimal impact on existing code. You™ll ˜nd 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 gener -ics, 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 fea – tures, while still maintaining compatibility with the original library.fl ŠBill Wagner, Founder and Consultant, SRT Solutions, author of Effective C# and More Effective C# fi 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.fl ŠPeter Winkler, Sr. Software Engineer, Balance Technology Inc.

PAGE – 5 ============
The award-winning Microsoft .NET Development Series was established in 2002 to provide professional developers with the most comprehensive, practical coverage of the latest .NET technologies. Authors in this series include Microsoft architects, MVPs, and other experts and leaders in the field of Microsoft development technologies. Each book provides developers with the vital information and critical insight they need to write highly effective applications. Visit informit.com/msdotnetseries for a complete list of available products. Microsoft ® .NET Development Series

PAGE – 10 ============
ContentsFigures xviiTables xixForeword xxiForeword to the First Edition xxiiiPreface xxvAcknowledgments xxxiAbout the Authors xxxiiiAbout the Annotators xxxv Qualities of a Well-Designed Framework 3Well-Designed Frameworks Are Simple 3Well-Designed Frameworks Are Expensive to Design 4Well-Designed Frameworks Are Full of Trade-Offs 5Well-Designed Frameworks Borrow from the Past 5Well-Designed Frameworks Are Designed to Evolve 5Well-Designed Frameworks Are Integrated 6Well-Designed Frameworks Are Consistent 6 Progressive Frameworks 11 Fundamental Principles of Framework Design 14The Principle of Scenario-Driven Design 15The Principle of Low Barrier to Entry 21

PAGE – 11 ============
The Principle of Self-Documenting Object Models 26The Principle of Layered Architecture 33 Capitalization Conventions 38Capitalization Rules for Identi˜ers 38Capitalizing Acronyms 40Capitalizing Compound Words and Common Terms 43Case Sensitivity 45General Naming Conventions 46Word Choice 46Using Abbreviations and Acronyms 48Avoiding Language-Speci˜c Names 49Naming New Versions of Existing APIs 51Names of Assemblies and DLLs 54Names of Namespaces 56Namespaces and Type Name Con˚icts 58Names of Classes, Structs, and Interfaces 60Names of Generic Type Parameters 64Names of Common Types 64Naming Enumerations 66Names of Type Members 68Names of Methods 68Names of Properties 68Names of Events 70Naming Fields 72Naming Parameters 73Naming Operator Overload Parameters 74Naming Resources 74 Types and Namespaces 79Standard Subnamespace Names 83Choosing Between Class and Struct 84

81 KB – 84 Pages