This documentation is archived and is not being maintained.

Extending Design-Time Support

The .NET Framework provides an extensible architecture for customizing the behavior and display of components and controls in design mode. This design-time support architecture lets developers build customized design-time extensions for components and controls. Developers can provide custom design-time behavior, value configuration interfaces, code generation for property initialization, and take advantage of services provided by the design-time environment.

For example, if you define a property of a custom type on a control, you can provide a custom user interface, or type editor, to edit the value of that property using a property browser. You can build a class called a designer that can manage a variety of aspects of a component or control's appearance and behavior at design time.

In the past, support for special case logic for components in design mode was built into the form designer, and it was the form designer, not the object, that was responsible for providing design-time capabilities. In the ActiveX world, for example, different tools offered their own form designers, with different user interfaces and capabilities. Because a product's fixed feature set cannot account for the needs of all controls, ActiveX controls had only a limited level of custom design-time support.

However, design-time support for components in the .NET Framework, is not defined exclusively by a design tool such as Visual Studio. Instead, the development environment supports the extension and definition of design-time behavior by classes such as designers that provide design-time support for components. Support for extensible and customizable design mode behavior is an integrated part of the .NET Framework. Tools such as Visual Studio also provide a range of design-time services that designers can use.

This section provides background information and samples to help component and control developers add design-time functionality to components.

Although many of the design-time systems discussed in this section apply to components generally, some are specific to Web Forms or to Windows Forms. There are design-time differences between ASP.NET Web Forms and Windows Forms because the mechanism of rendering ASP.NET server controls is different from that of rendering Windows Forms controls. An ASP.NET server control sends HTML or another markup language to a client. This language is rendered by the client's browser or other viewing device. A Windows Forms control, on the other hand, typically paints by using GDI+, which is the new Windows graphics library.

What's New in Design-Time Support in the .NET Framework 2.0

Provides an overview of new design-time features in the .NET Framework.

Extending Design-Time Support How-to and Walkthrough Topics

Lists links to How-to topics that are contained in this section.

How to: Access Design-Time Support in Windows Forms

Describes the assemblies and namespaces you can use to extend design-time support for Windows Forms controls.

Design-Time Architecture

Provides an overview of design-time architecture in the .NET Framework.

Type Descriptor Overview

Provides an overview of the type descriptor architecture.

Behavior Service Overview

Provides an overview of UI support for Windows Forms designers.

Designer Serialization Overview

Provides an overview of the designer serialization architecture.

Attributes and Design-Time Support

Describes how to use custom attributes to associate design-time support with a particular component or control.

Generalized Type Conversion

Describes methods for translating values between types.

Designer Commands and the DesignerAction Object Model for Windows Forms

Describes how to implement designer commands and smart tags for custom components and controls.

Custom Designers

Describes the key concepts behind implementing a designer. A designer is a class that can govern the visual representation and behavior of a component at design time.

Extender Providers

Provides an overview of the extender provider architecture.

User Interface Type Editors

Provides an overview of the user interface type editor architecture.

Troubleshooting Design-Time Development

Describes how to diagnose and correct various issues that may occur in design-time development.

External Resources for Extending Design-Time Support

Provides links to external Web sites to help improve your understanding of how to extend design-time support.

Design-Time Attributes for Components

Lists the attributes that are generally applied to properties and events in components and controls.

Design-Time Errors in the Windows Forms Designer

Explains the meaning and use of the Design-Time Error List that appears in Microsoft Visual Studio when the Windows Forms designer fails to load.