Before plunging ourselves into the related details, let us summarize
the main functions and the required key techniques of our sample application.
Main Functions
An online RSS Reader can store your favorite RSS subscriptions
in the server-side database for a more convenient access from any
Internet-connected computer later on. In general, we can easily describe the
general mechanism and rough flow chart of a typical RSS Reader application, as
is shown in Figure 1.
Figure 1: The general flow chart of an online RSS
Reader application

According to the above figure, our RSS reader sample project
called DAjaxRssReader in this article will mainly achieve
the listed goals.
·
Adding RSS channels
Users can add and save the RSS channels and the relevant URL's
they entered into an ASP.NET AJAX client-side data source control. And of
course, they can persist all this information into a server-side SQL Server
database.
·
Displaying all the RSS channels
This concerns two cases: 1. when the application first starts
up all the channels persisted in the server side database can be listed on the
browser side and 2. when the users refresh the RSS channels, all the channels-related
data can also be fetched and displayed.
·
Displaying the detained information
associated with a specified RSS channel
When users select some channel, the application should exhibit
the corresponding contents that are usually linked to another web site.
The Key Techniques
First, in constructing a normal web application, we should try
to abide by the famous Three-Tier pattern to build it. The following illustrates
the rough architecture of our sample application: a RSS reader.
Figure 2: The whole architecture of our RSS reader
application

Second, before discussing the required key techniques, let us
take a look at the snapshot of the sample's main page.
Figure 3: The design-time snapshot of the sample
RSS reader

As seen from the above figures, we need the following
techniques to construct this application:
1. In the presentation tier we need ASP.NET AJAX client-side
ListView control to hold and exhibit all the RSS
channels info and a server UpdatePanel control to enclose
the ASP.NET AJAX Control Toolkit control Accordion to finally
display the web site contents associated with the item you picked from the
left-side ListView. Also, some CSS tips are required to embellish all the
related controls. Finally, we introduce ASP.NET AJAX client-side Validators to
validate the RSS names and URL's we entered.
2. In this application we have commingled the JavaScript mode
with xml-script mode programming. On the one hand, in real scenarios ASP.NET
AJAX based web applications are usually pretty complicated. On the other hand, the
ASP.NET AJAX framework has not been fully fledged and has a long way to go, so
that we cannot attain our goals merely through the xml-script declarative
mode. Although to implement certain parts the JavaScript mode seems more
complex than the in xml-script way since the ASP.NET AJAX client side has
provided comparatively mature xml-script model as quite resembles ASP.NET, the
JavaScript mode can control nearly every side of the server and client-side
controls from under the bottom.
3. As the data tier is concerned, this is a typical action
in composing an ASP.NET AJAX based application, which is strongly recommended
by the official documents.
Author's Notes: In debugging the
demo, I was very much puzzled by the client-server communication brought forth
by introducing the ASP.NET AJAX Control Toolkit control Accordion
combined with Dmitry Robsman's ASP.NET RSS Toolkit. In my opinion, we cannot
(in the usual way) dynamically bind the server-side RssDataSource (a class in
the RSS.NET toolkit) to the Accordion control (in fact
an ASP.NET AJAX server Extender) in a web service. Thus, I have to resort to an
"ugly" tip— the __doPostBack
function to connect the client with the server, which will obviously trigger a
whole page refresh (this drastically violates the ASP.NET AJAX rules). Thus, I
have to introduce the server control UpdatePanel to enclose the Accordion
covered area to achieve some partially refresh effect. Note that another factor
making things complex results from the ASP.NET AJAX client-side ListView
control. I am sure that the ListView control and I are both immature for now!
Next, let us figure out how we are going to accomplish all that
we have set out for ourselves.