Developing an ASP.NET AJAX Based RSS Reader
page 3 of 10
by Xianzhong Zhu
Average Rating: This article has not yet been rated.
Views (Total / Last 10 Days): 38451/ 71

Requirements and Goals

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.

View Entire Article

User Comments

Title: Trouble with Sample Code   
Date: 2009-04-09 3:28:34 PM
Hello Xianzhong, I recently downloaded your sample code, did a little alteration to it and then compiled it. When I went to view it in a browser, after clicking on the "Add the RSS info" button, I get a javaScript error.

var datatable =g_RSSNameList.get_data(); throws a null reference exception.

After 2 days of trying to debug this, I am finally contacting you. Any ideas on how to troubleshoot this?

Community Advice: ASP | SQL | XML | Regular Expressions | Windows

©Copyright 1998-2024  |  Page Processed at 2024-07-15 4:47:59 PM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search