ATOM Library for .NET Features


Full Implementation of ATOM: Supports versions 0.3 and 1.0 with all constructs.

Flexible: Reads feeds that do not adhere precisely to the ATOM specification and are 'loose' in their interpretation.

Development Environment: Complete integration with Visual Studio.NET 2003/Visual Studio 2005/Visual Web Developer.

Integration with Windows RSS Platform: Reads feeds from Windows Common Feed List.

No knowledge of XML required: All underlying functions, including parsing, manipulating, and creating XML elements and attributes is handled internally by the library.

IntelliSense Enabled: Standard listing of properties and methods in Visual Studio.

100% Managed Code: The .NET assemblies run inside the .NET CLR (Common Language Runtime).

DotNet Support: Use in .NET Framework 1.1 and .NET Framework 2.x.

Use in Multiple Platform: Use in a desktop application, a Web Service or in ASP.NET web page.

No need to write low level code (socket or TCP).

No file I/O Code Required: Reading and writing of feed files is easily acccomplished with a single method call on an ATOMFeed object:


Load a File:
[C#]
1 AtomFeed feed = AtomFeed.Load(feedUrl);
[Visual Basic]
1 Dim feed As AtomFeed = AtomFeed.Load(feedUrl)

Save a File :

[C#]
1 feed.Save(fileName);
[Visual Basic]
1 feed.Save(fileName)

Support for Strongly Typed Classes: Generation of strongly typed classes for ATOM feeds including strongly typed channel, items, image, handler based on a ATOM URL or a file.

Support for reading Password Protected Feeds: Allows reading password protected feeds. The library can parse username and password information from a URL as well as accept credentials as parameters programmatically provided.

Merge Multiple Feeds: Feed streams can be filtered and merged from a series of existing feeds to create whole new feeds.

PingBack Support: PingBack is supported as a complete implementation of the PingBack 1.0 protocol specification. The following example shows how to send a pingback request:

[C#]
1 PingBackClient pbc = new PingBackClient(); 2 if (pbc.IsPingBackEnabled(targetUri)) 3 { 4 pbc.RegisterPingBack(sourceUri, targetUri); 5 }
[Visual Basic]
1 Dim pbc As PingBackClient = New PingBackClient() 2 If pbc.IsPingBackEnabled(targetUri) = True Then 3 pbc.RegisterPingBack(sourceUri, targetUri) 4 End If

TrackBack Support: TrackBack is supported as a complete implementation of the TrackBack protocol specification. The following example shows how easy it is to send a trackback ping:

[C#]
1 TrackBackClient tbc = new TrackBackClient(); 2 if (tbc.IsTrackBackEnabled(targetUri)) 3 { 4 tbc.SendTrackBackPing(title, excerpt, url, blogName); 5 }
[Visual Basic]
1 Dim tbc As TrackBackClient = New TrackBackClient() 2 If tbc.IsTrackBackEnabled(targetUri) = True Then 3 tbc.SendTrackBackPing(title, excerpt, url, blogName) 4 End If

AutoDiscovery Support: AutoDiscovery supported from a LINK tag like:
link rel="alternate" type="application/rss+xml" title="ATOM" href="url/to/rss/file"

[C#]
1 FeedCrawler fc = new FeedCrawler(); 2 FeedInfoCollection fic = fc.Discover("http://feed-url/here"); 3 foreach (FeedInfo fi in fic) 4 { 5 Console.WriteLine(fi.FeedTitle); 6 Console.WriteLine(fi.FeedUrl); 7 } 8
[Visual Basic]
1 Dim tbc As TrackBackClient = New TrackBackClient() 2 Dim fc As FeedCrawler = New FeedCrawler 3 Dim fic As FeedInfoCollection 4 fic = fc.Discover("http://feed-url/here") 5 For Each fi As FeedInfo In fic 6 Console.WriteLine(fi.FeedTitle) 7 Console.WriteLine(fi.FeedUrl) 8 Next 9

Transform Feeds: Transform feeds from one version to the other on the fly.

Date Formats: Supports RFC822 and W3C date formats

Database Helper: Includes a SqlHelper class intended to encapsulate high performance, scalable best practices for common uses of SqlClient when creating dynamic feeds.

Exception Handling and Logging: An extensive exception handling and logging framework which can log information about a given exception in a log file, the windows event log or send the HTML formatted exception information by email:

[C#]
1 try 2 { 3 DoSomething(); 4 } 5 catch( AtomException ex ) 6 { 7 ex.Log(); 8 }
[Visual Basic]
1 Try 2 DoSomething() 3 Catch ex As AtomException 4 ex.Log() 5 End Try