Framework Design Guidelines Conventions, Idioms, and Patterns for Reusable . NET Libraries

ISBN-10: 0321246756
ISBN-13: 9780321246752
Edition: 2006
List price: $49.99
30 day, 100% satisfaction guarantee

If an item you ordered from TextbookRush does not meet your expectations due to an error on our part, simply fill out a return request and then return it by mail within 30 days of ordering it for a full refund of item cost.

Learn more about our returns policy

Description: In the past, reusable API design was the domain of only a handful of large software vendors. There has been a steady increase in interest in API design after the invention and widespread adoption of reusable component technologies: COM, CORBA,  More...

what's this?
Rush Rewards U
Members Receive:
coins
coins
You have reached 400 XP and carrot coins. That is the daily max!

Study Briefs

Limited time offer: Get the first one free! (?)

All the information you need in one place! Each Study Brief is a summary of one specific subject; facts, figures, and explanations to help you learn faster.

Add to cart
Study Briefs
SQL Online content $4.95 $1.99
Add to cart
Study Briefs
MS Excel® 2010 Online content $4.95 $1.99
Add to cart
Study Briefs
MS Word® 2010 Online content $4.95 $1.99
Add to cart
Study Briefs
MS PowerPoint® 2010 Online content $4.95 $1.99

Customers also bought

Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading

Book details

List price: $49.99
Copyright year: 2006
Publisher: Addison Wesley Professional
Publication date: 9/19/2005
Binding: Mixed Media
Pages: 384
Size: 7.25" wide x 9.50" long x 1.50" tall
Weight: 2.2
Language: English

In the past, reusable API design was the domain of only a handful of large software vendors. There has been a steady increase in interest in API design after the invention and widespread adoption of reusable component technologies: COM, CORBA, and recently .NET. Today, most new software projects contain some reusable APIs. Microsoft is giving the message that careful design of public APIs is crucial to realizing the full potential of software reuse. These .NET Framework Design Guidelines were created in the early days of the development of .NET. They started as a small set of naming and design conventions but have been enhanced, scrutinized, and refined to a point where they are generally considered the canonical way to design frameworks at Microsoft. They carry the experience and cumulative wisdom of thousands of developer hours over three versions of .NET. The authors avoid having the text based purely on some idealistic design philosophies, and have made it an intensely pragmatic book. The book contains many annotations that explain tradeoffs, history, amplify or provide critiquing views on the guidelines. The book is written to version 2.0 of .NET, and will be the basis for one of the preconference sessions for PDC in September, where the book will be launched.

Figures
Tables
Foreword
Preface
Acknowledgments
About the Authors
About the Annotators
Introduction
Qualities of a Well-Designed Framework
Well-Designed Frameworks Are Simple
Well-Designed Frameworks Are Expensive to Design
Well-Designed Frameworks Are Full of Trade-Offs
Well-Designed Frameworks Borrow from the Past
Well-Designed Frameworks Are Designed to Evolve
Well-Designed Frameworks Are Integrated
Well-Designed Frameworks Are Consistent
Framework Design Fundamentals
Progressive Frameworks
Fundamental Principles of Framework Design
The Principle of Scenario-Driven Design
The Principle of Low Barrier to Entry
The Principle of Self-Documenting Object Models
The Principle of Layered Architecture
Summary
Naming Guidelines
Capitalization Conventions
Capitalization Rules for Identifiers
Capitalizing Acronyms
Capitalizing Compound Words and Common Terms
Case Sensitivity
General Naming Conventions
Word Choice
Using Abbreviations and Acronyms
Avoiding Language-Specific Names
Naming New Versions of Existing APIs
Names of Assemblies and DLLs
Names of Namespaces
Namespaces and Type Name Conflicts
Names of Classes, Structs, and Interfaces
Names of Generic Type Parameters
Names of Common Types
Naming Enumerations
Names of Type Members
Names of Methods
Names of Properties
Names of Events
Naming Fields
Naming Parameters
Naming Resources
Summary
Type Design Guidelines
Types and Namespaces
Standard Subnamespace Names
Choosing Between Class and Struct
Choosing Between Class and Interface
Abstract Class Design
Static Class Design
Interface Design
Struct Design
Enum Design
Designing Flag Enums
Adding Values to Enums
Nested Types
Summary
Member Design
General Member Design Guidelines
Member Overloading
Implementing Interface Members Explicitly
Choosing Between Properties and Methods
Property Design
Indexed Property Design
Property Change Notification Events
Constructor Design
Type Constructor Guidelines
Event Design
Custom Event Handler Design
Field Design
Operator Overloads
Overloading Operator ==
Conversion Operators
Parameter Design
Choosing Between Enum and Boolean Parameters
Validating Arguments
Parameter Passing
Members with Variable Number of Parameters
Pointer Parameters
Summary
Designing for Extensibility
Extensibility Mechanisms
Unsealed Classes
Protected Members
Events and Callbacks
Virtual Members
Abstractions (Abstract Types and Interfaces)
Base Classes
Sealing
Summary
Exceptions
Exception Throwing
Choosing the Right Type of Exception to Throw
Error Message Design
Exception Handling
Wrapping Exceptions
Using Standard Exception Types
Exception and SystemException
ApplicationException
InvalidOperationException
ArgumentException, ArgumentNullException, and ArgumentOutOfRangeException
NullReferenceException, IndexOutOfRangeException, and AccessViolationException
StackOverflowException
OutOfMemoryException
ComException, SEHException, and other CLR Exceptions
ExecutionEngineException
Designing Custom Exceptions
Exceptions and Performance
Tester-Doer Pattern
Try-Parse Pattern
Summary
Usage Guidelines
Arrays
Attributes
Collections
Collection Parameters
Collection Properties and Return Values
Choosing Between Arrays and Collections
Implementing Custom Collections
ICloneable
IComparable<T> and IEquatable<T>
IDisposable
Object
Object.Equals
Object.GetHashCode
Object.ToString
Uri
System.Uri Implementation Guidelines
System.Xml Usage
Equality Operators
Equality Operators on Value Types
Equality Operators on Reference Types
Common Design Patterns
Aggregate Components
Component-Oriented Design
Factored Types
Aggregate Component Guidelines
The Async Pattern
Async Pattern Basic Implementation Example
Dispose Pattern
Basic Dispose Pattern
Finalizable Types
Factories
Optional Feature Pattern
Template Method
Timeouts
And in the End...
C# Coding Style Conventions
General Style Conventions
Brace Usage
Space Usage
Indent Usage
Naming Conventions
Comments
File Organization
Using FxCop to Enforce the Design Guidelines
What Is FxCop?
The Evolution of FxCop
How Does It Work?
FxCop Guideline Coverage
FxCop Rules for the Naming Guidelines
FxCop Rules for the Type Design Guidelines
FxCop Rules for Member Design
FxCop Rules for Designing for Extensibility
FxCop Rules for Exceptions
FxCop Rules for Usage Guidelines
FxCop Rules for Design Patterns
Sample API Specification
Glossary
Suggested Reading List
Index

×
Free shipping on orders over $35*

*A minimum purchase of $35 is required. Shipping is provided via FedEx SmartPost® and FedEx Express Saver®. Average delivery time is 1 – 5 business days, but is not guaranteed in that timeframe. Also allow 1 - 2 days for processing. Free shipping is eligible only in the continental United States and excludes Hawaii, Alaska and Puerto Rico. FedEx service marks used by permission."Marketplace" orders are not eligible for free or discounted shipping.

Learn more about the TextbookRush Marketplace.

×