Chapter 6. User Controls and Custom Server Controls
Reuse , a technique
that is important to most developers, allows you to avoid constantly
reinventing the wheel by using functionality that has already been
built and tested. Reuse increases productivity, by reducing the total
amount of code you need to write, and reliability, since by using
tested code, you (presumably) already know the code works reliably.ASP.NET provides a range of options for reuse. The first is the wide
variety of built-in server controls that ship with ASP.NET. These
server controls alone can eliminate hundreds, or even thousands, of
lines of code that needed to be written to achieve the same effect in
classic ASP. In addition, the .NET Framework Class Library
(FCL) provides hundreds of classes to perform actions (such as
sending SMTP email or making network calls) that in classic ASP would
have required purchasing a third-party component or making calls into
the Win32 API. Of course, the framework classes provide built-in
functionality more than reuse. Fortunately, the framework also
provides robust support for developing your own classes, user
controls, and custom server controls, allowing you to reuse your own
code as well.Going hand-in-hand with reuse is the concept of
extensibility ,
the ability to take the existing functionality provided by the .NET
Framework and ASP.NET and extend it to perform actions that are more
tailored to your particular applications and problem domains. ASP.NET
provides a significant number of avenues for extensibility:
- Custom server controls
Allow you to create entirely new controls for use with ASP.NET or to
derive from existing controls and extend or modify their
functionality.- Components
As in classic ASP, components are the primary means for extending an
ASP.NET application by encapsulating the
application's business logic into an easily reusable
form. With the .NET Framework, it's easier than ever
to build components, and components are more interoperable across
languages than in the COM world. .NET components can also communicate
with COM components through an interoperability layer.- HttpHandlers and HttpModules
HttpHandlers are components that are called to perform the processing
of specific types of requests made to IIS. HttpModules are components
that participate in the processing pipeline of all requests for a
given ASP.NET application. These extensibility techniques are beyond
the scope of this book, but you can get answers to questions on these
topics in the HttpHandlers and HttpModules forum at http://www.asp.net/forums.
The rest of this chapter discusses employing ASP.NET user controls
and custom server controls for reuse and employing custom server
controls for extensibility. The chapter also explains how custom
server controls can easily be shared across multiple applications,
making reuse simpler than ever.
