RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX


Intro to Atlas: The Road to Effortless AJAX Begins Here : Page 4

There's no reason to get lost with Atlas, Microsoft's framework for building fast, responsive AJAX-enabled Web apps. Get your bearings by following along as we build two introductory applications: a calendar and a content portal.

Coding the Application
You have just completed building the UI of the application. Now it's time to write the code to wire up all the controls. Switch to the Code View of Default2.aspx and import the following namespaces:

Imports System.Net
Imports System.IO
Imports System.Xml
When users select an article category, the RSS document for that category is first downloaded so that you can extract the title of the RSS document. This will be achieved by two helper functions that you will define: SendRequest() and GetResponse(). These two functions send a request to a server and then get the response from the server, using HTTP.

    Public Function SendRequest( _
       ByVal URI As String, _
       ByVal requestType As String) As HttpWebRequest
        Dim req As HttpWebRequest = Nothing
            '---Creates a HTTP request---
            req = HttpWebRequest.Create(URI)
            req.Method = requestType '---GET or POST---
        Catch ex As Exception
            Throw New Exception("Error")
        End Try
        Return req
    End Function

    Public Function GetResponse( _
       ByVal req As HttpWebRequest) As String
        Dim body As String = String.Empty
            '---Get a response from server---
            Dim resp As HttpWebResponse = req.GetResponse()
            Dim stream As Stream = resp.GetResponseStream()

            '---Use a StreamReader to read the response---
            Dim reader As StreamReader = _
               New StreamReader(stream, Encoding.UTF8)
            body = reader.ReadToEnd()
        Catch ex As Exception
            Throw New Exception("Error")
        End Try
        Return body
    End Function
The LoadRSS() function first loads the XmlDataSource with the RSS document (as specified in the URI parameter). To obtain the feed title, it sends a request to the server using the HttpWebRequest object. It uses the SendRequest() and GetResponse() functions to obtain the RSS document. Once the RSS document is obtained, it uses the XPath expression "channel/title" to fetch the title of the feed. The LoadRSS() function returns the title of the feed.

    Public Function LoadRSS( _
       ByVal URI As String) As String
        Dim req As HttpWebRequest
        Dim xmlDoc As XmlDocument = Nothing
            '---load the RSS into the XmlDataSource control---
            XmlDataSource1.DataFile = URI

            '---download the RSS document---
            req = SendRequest(URI, "GET")
            Dim xmlData As String = GetResponse(req)
            xmlDoc = New XmlDocument()
            '---Select the title of the document---
            Dim titleNode As XmlNode = _

            Return titleNode.InnerText
        Catch ex As Exception
            Return String.Empty
        End Try
    End Function
The Button_Click event is the event handler for all the 11 buttons. Depending on the button clicked, the RSS document for each article category is downloaded and the Label1 control is set to the title of the feed.

    Public Sub Button_Click( _
       ByVal sender As Object, ByVal e As System.EventArgs) _
       Handles Button1.Click, Button2.Click, Button3.Click, _
       Button4.Click, Button5.Click, Button6.Click, _
       Button7.Click, Button8.Click, Button9.Click, _
       Button10.Click, Button11.Click

        Dim URL As String = String.Empty
        Select Case CType(sender, Button).Text
            Case "Database" : URL = _
            Case ".NET" : URL = _
            Case "C++" : URL = _
            Case "Recent Tips" : URL = _
            Case "Web Dev" : URL = _
            Case "Latest" : URL = _
            Case "Enterprise" : URL = _
            Case "Wireless / Mobile" : URL = _
            Case "XML" : URL = _
            Case "Java" : URL = _
            Case "Open Source" : URL = _
        End Select
        Label1.Text = LoadRSS(URL)
    End Sub
Finally, when the page is loaded for the first time, you will set the default feed to the "Latest Published Articles" category:

    Protected Sub Page_Load( _
       ByVal sender As Object, _
       ByVal e As System.EventArgs) Handles Me.Load
        Label1.Text = _
    End Sub
That's it! Press F5 to test the application. You can now click on any category button and the application will display the article summaries that match your choice in the background without a page refresh (see Figure 7). What's more, the animated gif image (Loading…) will be shown when the DataList control is being refreshed. It will go away when the refresh is complete.

In this article, you have seen how to use Atlas to improve the responsiveness of your Web applications. While this article has just touched the surface of what Atlas can do for your Web site, I hope it has inspired you to get started—as well as given you a jumpstart on the learning curve.

Wei-Meng Lee is a Microsoft MVP and founder of Developer Learning Solutions, a technology company specializing in hands-on training on the latest Microsoft technologies. He is an established developer and trainer specializing in .NET and wireless technologies. Wei-Meng speaks regularly at international conferences and has authored and coauthored numerous books on .NET, XML, and wireless technologies. He writes extensively on topics ranging from .NET to Mac OS X. He is also the author of the .NET Compact Framework Pocket Guide, ASP.NET 2.0: A Developer's Notebook (both from O'Reilly Media, Inc.), and Programming Sudoku (Apress). Here is Wei-Meng's blog.
Email AuthorEmail Author
Close Icon
Thanks for your registration, follow us on our social networks to keep up-to-date