Click here to Skip to main content
Licence 
First Posted 2 Mar 2006
Views 40,513
Bookmarked 47 times

Creating an RSS Aggregator User Control in ASP.NET

By | 2 Mar 2006 | Article
This article demonstrates how to easily create an RSS feed aggregator and incorporate it into an ASP.NET application.

Sample Image - screenshot.gif

Introduction

RSS is an XML format for syndicating news and content, from major news sites, community and personal weblogs. But it's not just for news. It's able to deliver rich, dynamic content to a website, if you know how to read the RSS XML. The RSS Aggregator takes a lot of the mystery out of decoding RSS feeds.

Background

Since the RSS Aggregator is a Web User Control, it's really just about as simple as creating a new application, adding the control and associated code, and dragging and dropping the control on your site. Of course, you will have to setup a couple of small things in the code (like the source of the feeds), but overall, it should be fairly straightforward. The enclosed example even contains a styled version of the aggregator, so you won't have to spend additional time adding styles.

This version allows you to configure the aggregator to download any number of feeds (though personally, I wouldn't do more than three or four, or you'll notice a significant delay on page load). The display medium is an ASP.NET DataGrid control. The example code implements paging for the grid.

Using the code

The code is pretty well documented, so I won't include a ton of code here (not like anyone will read it anyway! :)). The only code block I'll post will be the simple act of configuring the aggregator to download feeds. The rest is up to you!

The only method you need to configure is the BindFeeds() method. This method is located in the RSSAggregator.ascx.cs code-behind. Just follow the directions in the code, and in no time, you'll have a working RSS Aggregator!

private void BindFeeds()
{
    // Create a new instance of the Aggregator class. This is the
    // only class that an end user will need to instantiate.
    Aggregator ag = new Aggregator(3);

    // Add the feeds we want to display
    ag.feeds[0] = "http://blogs.msdn.com/cbrumme/rss.aspx";
    ag.feeds[1] = "http://www.rohancragg.co.uk/" + 
                  "blog/SyndicationService.asmx/GetRss";
    ag.feeds[2] = "http://blogs.geekdojo.net/" + 
                  "richard/rss.aspx?CategoryID=7";

    // Create the dataview
    DataView dv = ag.aggregateFeeds();

    // Bind to the datagrid
    this.dgRoller.DataSource = dv;
    this.dgRoller.DataBind();

    // Show the feed sources
    this.lblFeeds.Text = ag.getSources();
}

Points of Interest

The Downloader class comes with three overloaded methods to allow the aggregator to download through a proxy server. Use the one that's right for you. You can find this code in the aggregateFeeds() method of the Aggregator.cs code page. One last point to note is that there is a boolean value for the parseRSS() method in the Parser class. Setting this value to true will make the aggregator render all of the content of the feed. Setting it to false will render only a description of the content. In the example, this value is set to true.

Happy coding!

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

UsualDosage

Web Developer

United States United States

Member

I have been an ASP.NET/C# Programmer for about 7 years, specializing in business applications for financial institutions. I formerly wrote business applications for mortgage banking front-ends in C++ before switching to the .NET Framework, which I program in almost exclusively, now, except for my occasional contract dalliances in PHP and MySQL, which I really like. I especially enjoy graphic design, and web work.

In my spare time I run the local internet radio portal Jaxrockradio.com.

I have long moonlighted as an ANSI C programmer for several online MUDs (still a hobby of mine), and probably will continue to as long as they let me.

You can view my blog by visiting http://www.usualdosage.com.

My site design portfolio is located at http://design.usualdosage.com


Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
GeneralQuery regarding application Pinmemberabidmehmood20:33 18 Sep '07  
GeneralRe: Query regarding application PinmemberUsualDosage1:22 19 Sep '07  
Generalexcellent tool Pinmemberlazywill8:05 31 Jan '07  
GeneralException Details: System.ArgumentNullException: Value cannot be null. Pinmemberdunglesi22:03 25 Oct '06  
GeneralRe: Exception Details: System.ArgumentNullException: Value cannot be null. PinmemberUsualDosage3:17 26 Oct '06  
QuestionHow to load the specific content of the web page? PinmemberUFOonline16:40 5 Sep '06  
GeneralCannot run application with a proxy/port PinmemberUFOonline21:01 16 Aug '06  
GeneralRe: Cannot run application with a proxy/port PinmemberUsualDosage8:34 17 Aug '06  
GeneralRe: Cannot run application with a proxy/port PinmemberUFOonline17:04 17 Aug '06  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web04 | 2.5.120517.1 | Last Updated 2 Mar 2006
Article Copyright 2006 by UsualDosage
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid