Lance's Whiteboard

Random scribbling about C#, Javascript, Web Development, Architecture, and anything else that pops into my mind.

News


Creative Commons License
Lance's Whiteboard Blog by Lance Hunt is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
Based on a work at weblogs.asp.net



Sponsored Ad
Sponsored Ad

Blogs I Read

RSS and ATOM libraries?

Today, I was out Googling for a good ATOM library to add to a project I am working on so I can support both RSS & ATOM.  Thus far, I have been using the excellent , but I was disappointed to find very few .NET solutions for ATOM available in the open-source community.     

The (& ) libraries appear to nolonger be actively supported/developed.  As a result, ATOM.NET still only supports ATOM v0.3.  This pretty much renders it useless for general use since Blogger and many other services have shifted everything to ATOM v1.0.

I found another interesting library, , on GotDotNet but it contained a lot of unneccessary tangential code and inexplicably adhered to the "put-all-twenty-classes-in-one-file" methodology which made sifting and filtering the chaffe a bit more annoying.

Seeing as how GotDotNet is being eliminated I thought it wise to forego projects on there anyhow, so I decided to check out its chosen successor; CodePlex.   I did a quick search for "ATOM" which came up with 2 likely hits;  , and .

said all the right things;

Feed Library is a .net library written in c# to allow reading, creation, manipulation popular feeds (rss and atom) with common, easy to use api.
Expect initial release somewhere in the middle of spring.
For now, I'm collecting ideas, feature requests and applications from people that may help.

Ufortunately that's all there is too that project - just text.   There is no source code & no releases!  Oh well, I'll bookmark that one and maybe check back in a few months to see where it goes. 

The actually had source-code AND text:

The goal of this project is to create a reusable library for parsing both Atom and RSS feeds and provide a common interface for working with either type of feed.

I loved what it said, and the code looked promising, eventhough it too had not been updated in a while and lacked ATOM 1.0 support.  However, the kiss of death was when I saw that it was GPL'd.   Game over, bye bye now.

So, my journey continued...

I began pulling down numerous libraries packaged as articleware, blogsamplings, and even a few commercial products.  Most were the usual glut of StrongTypedXmlDom implementations, or suffered from XmlSerialization disorder.  Finally, I discovered 's

 appears full featured, thoughtfully composed, extensible, permissively licensed...and, most importantly, free!  It even supports almost every known RSS extension including ITunes.  The only downside I can see so far is that it is apparrently "closed-source" since only binaries are available on the website.   I think I'll go ahead and play with his API a bit before deciding whether or not its worthwhile to persue the elusive sourcecode.

I'm not sure if its what I'm looking for, but it looks damn close.  

While I continue to search for ATOMtopia, please leave a comment if you have a suggestion for a good, simple, and preferably free (opensource) library - or at least tell me what you use.

Comments

CodeSniper said:

Just a quick update...

My first test of Argotic failed when trying to read atom feeds from blogger.com.  However, ATOM.NET worked just fine.

Also, based upon the exception I received, it does looke like the Argotic component is using XmlSerialization, which as we all know is not very forgiving, especially when alien Xml namespaces are appended, such as with the blogger.com extensions to atom.

Maybe the old ATOM.NET library isnt a bad option afte rall....

# March 29, 2007 10:07 PM

preishuber said:

many of the librarys are forgetting delta encoding with etag.

You can check generated rss on my site

http://www.preishuber.net/rsstest.aspx

# March 30, 2007 8:53 AM

Brian Kuhn said:

Once I get a few more bugs worked out, I plan on providing the source code for Argotic (I didn't think people really would want the source, I tend to just want an assembly to reference that gets the job done).

CodeSniper: I guess I need to look at blogger.com ATOM feeds and get a fix for Argotic. Feel free to post on the bug reporting forum on this issue (specifc feed URL's always help). I have noticed that some people report issues that end being ATOM 0.3 feeds instead of ATOM 1.0 feeds, but I will get this fixed if there is an issue.

preishuber: Argotic fully supports conditional get of feeds using eTag/LastModified headers. Check out the Refresh() method on ATOM/RSS feed classes and/or see the online examples of conditional get.

Hadn't heard about the Orcas syndication feed support, will have to check it out.

# March 30, 2007 12:39 PM

Brian Kuhn said:

Lance,

The next release of Argotic will have fail-over support to parse a feed via a reader if the XML serialization fails. Thanks for the feedback.

# March 30, 2007 12:48 PM

Kenneth Solberg said:

Brian: Very cool of you to open source! I love Codeplex and all the good stuff you can find there.

Lance: In some scenarios you probably could use Yahoo Pipes to prepare stuff for you as well.

# March 31, 2007 1:59 AM

Dale Janssen said:

A further update to the RSS.NET and ATOM.NET libraries... They are very much alive and under extensive redevelopment. We have purchased these products and a complete update with many, many new features are included. The final libraries have not been released yet (within 2 weeks), but interested developers can obtain a beta by contacting us via the website.

# April 1, 2007 9:45 AM

CodeSniper said:

Dale,

So, they are going commercial?  

I would hate to see the open-source community lose yet another tool to commercialization.   I understand the need for monitization, but it often feels like a bait-and-switch when I adopt, contributed-to, and support an open-source initiative only to have it go closed-source or commercial once it matures.

# April 2, 2007 11:12 AM

dalej said:

Yes, it is a fine line between open source code and commercialization - but it is a situation of losing an outdated tool while gaining an updated product. The RSS and ATOM libraries have been purchased and used as the base code for a complete redevelopment. There will still be basic, "free" versions for the individual developer but an "enhanced" version for those willing to purchase additional features. We are great supporters of open-source, but at some point there has to be a financial justification for the team of developers that have been working on these projects for over a year.

# April 2, 2007 12:33 PM

CodeSniper said:

Will you be removing the versions of RSS.NET and ATOM.NET that are currently available on SourceForge.com or change their license in any way?

I dont have a problem with someone taking a base set of code, rewriting it, and using it as a  basis for a new product.  If that didnt happen, many open-source projects would not be sustainable.

However, what I do have a problem with is when you also remove, close, or reduce the licensing on the original open-source codebase that made that very product possible.

Even though the old source is nolonger as relevant as it once was, it is still useful to those who have existing implementations.

# April 3, 2007 9:47 AM

Marlon said:

Im not sure if this is the right place to post this but heck, here it is. :) Im try to use Argotic and im having problem adding a refence to its dlls in Visual Studio.

Here's the error message: "A reference to 'C:\Inetpub\wwwroot\test\bin\Argotic.Core.dll' could not be added. This is not a valid assembly or COM component. Only assemblies with extension 'dll' and COM components can be referenced. Please make sure that the file is accessible, and that it is a valid assembly or COM component."

I first thought is was just a matter of permission problem. I already tried to allow different accounts and even Everyone but to no avail.

By the way, im using Framework 1.1 if that would help.

# May 15, 2007 6:42 AM

CodeSniper said:

Argotic is a .NET 2.0 library, which could explain that error.

# May 15, 2007 10:27 AM