The subject of AJAX control toolkit custom development, as
well as ASP.NET AJAX development, is a long complicated task. This article
alone cannot demystify the process completely; I will briefly cover the concept
of script development related to extender controls, which use the AJAX control toolkit. However, I would highly recommend reading up on the general process
of developing custom AJAX component if you are not familiar with the subject. There
are some introductory tutorials on the official web site of ASP.NET.
Custom AJAX development makes use of a server component and
client component that work in-tandem with each other. In order for the server
to work with the client, it requires describing the component using a
ScriptDescriptor object, which has several derivatives. The script describes
the client properties and events and supplies initial values or event handlers
to them.
To describe components, the AJAX control toolkit uses customized
attributes that describe the component's properties, methods, and events, which
does make it easy to develop and use. At runtime, the base class component
extracts this metadata using reflection, creating the script descriptor in a
more automated way.
On the client-side, the ASP.NET AJAX framework has added
many new features while reusing what is already there in the JavaScript
language. The approach is to make JavaScript code look more like the .NET
framework, setting up namespaces, classes, interfaces, properties, events, and
other constructs. The client component is like a hybrid in that it makes use of
all the existing JavaScript notations, while adding new capabilities and new
features to existing JavaScript objects.
The client-side framework has a built-in lifecycle, which
the client component can make use of. It also includes two important lifecycle
methods: initialize and dispose. Obviously, initialize fires at the beginning
of the lifecycle, and dispose at the end. We will take a look at these
lifecycle methods in code. To that end, it is not worth discussing much more
without seeing it first-hand.