This documentation is archived and is not being maintained.

Designing for Extensibility

Extensibility is the ability to add or modify the behavior of objects. There are a variety of mechanisms that you can use to make your libraries extensible. The different mechanisms each have their own costs and benefits.

Portions Copyright 2005 Microsoft Corporation. All rights reserved.

Portions Copyright Addison-Wesley Corporation. All rights reserved.

For more information on design guidelines, see the "Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries" book by Krzysztof Cwalina and Brad Abrams, published by Addison-Wesley, 2005.

Unsealed Classes

Describes guidelines for designing unsealed classes.

Protected Members

Describes guidelines for implementing protected members.

Events and Callbacks

Describes guidelines for using events and callback methods.

Virtual Members

Describes guidelines for making a member virtual.

Abstract Types and Interfaces

Describes guidelines for creating abstract types and interfaces.

Base Classes for Implementing Abstractions

Describes guidelines for implementing abstractions using base classes.

Limiting Extensibility by Sealing Classes

Describes guidelines for sealing classes and members.