What You Should Know about the Windows RSS Platform
Microsoft is very much alive and kicking when it comes to Feed Technology. Their Windows RSS Plaform is the foundation to much of their strategy. For those of us in the development end of feeds, the Windows RSS Platform can be confusing. Here are the facts you should be aware of.
The Relevance of the Windows RSS Platform
The Microsoft Windows RSS Platform is included in:
- Internet Explorer 7.0 for Windows XP SP2
- Windows Server 2003 SP1
- Windows XP 64-bit
- all versions of Vista
That's all great, but why is it relevant to .NET developers working with RSS and ATOM feeds? Simply put, it means that in the near future most Windows end-users will have the Windows RSS Platform installed on their computers.
This is relevant because the Windows RSS Platform is then available to any application. An application can utilize the Windows RSS Platform to become 'RSS enabled' without requiring the application developer to re-code basic RSS building blocks. All of the underground RSS plumbing will be integrated as just another Windows system API.
What Should I Know About the Windows RSS Platform?
1. The Windows RSS platform has limited functionality.
The Windows RSS platform is only appropriate for applications that are consuming feeds. If your application does anything more than read feeds, the Windows RSS Platform is of limited use. Most all the properties in the objects exposed by Windows RSS Platform are read-only.
With the RSS Library for .NET or ATOM Library for .NET, you can create, parse and write a feed as easily as reading a feed. It is easy to combine and/or filter feeds together and republish or insert ads or non-RSS meta tags.
2. The Windows RSS Platform does not provide source code.
Both the RSS Library for .NET and ATOM Library for .NET are available for purchase with source code. This allows full, stable control over the direction and utilization of RSS and ATOM within your websites and applications.
3. No DOM-like object model.
With the Windows RSS Platform there is no complete object model because some elements are not exposed as an object. For example, the Author construct is not exposed an object and the API of Windows RSS Platform exposes this as a string only. See here. In the RSS Library for .NET or ATOM Library for .NET, there is a traversable, DOM-like object model to access all elements and attributes allowing programmatic access to anything.
4. The Common Feed List of the Windows RSS Platform is globally accessible by all users and applications where any feed URL can be added without constraint.
The implications could produce spam-like results. For example, to create a new entry in the Common Feed List and (unknowing to the user) subscribe a user to that feed:
1: String feedUrl = "http://test.Web20Tools.net/samples/rss/rss20.xml";
2: FeedsManager fm = new FeedsManagerClass();
3: IFeedFolder rootFolder = (IFeedFolder)fm.RootFolder;
4: IFeed feed = (IFeed)rootFolder.CreateFeed("RSS Sample", feedUrl);
1: Dim fm As FeedsManager = New FeedsManagerClass()
2: Dim rootFolder As IFeedFolder = CType(fm.RootFolder, IFeedFolder)
3: Dim feed As IFeed = CType(rootFolder.CreateFeed("RSS Sample", feedUrl), IFeed)
5. The Windows RSS Platform relies on a 'feed superset' to read feeds
The API reads a feed (be it RSS 0.91, 1.0, 1.1, 2.0, Atom 0.3 or 1.0) and transforms all formats to a single object IFeed which is based on RSS 2.0. This makes it nearly impossible to work within the aspects of a specific feed protocol.
For example, FeedItem.Author is mandatory in ATOM 1.0, but the API states it is optional and does not set a default value. The property value is null if not specified in the source.
The RSS Library for .NET and ATOM Library for .NET read feeds based on the complete published protocol, providing full control of the feed to the programmer. More importantly, this leaves the option of transforming a feed to any other feed protocol to the discretion of the programmer.
6. The Windows RSS platform is not extensible.
Extensions add and extend RSS capabilities. The Windows RSS Platform only supports the Microsoft Simple List Extension, while the RSS Library for .NET and ATOM Library for .NET support a wide range of extensions and provides programmers with the ability to easily add support for any extension.
For a list of RSS Extensions, visit RSS-Extensions.org
7. The Windows RSS Platform has no support for password protected sites.
It is not possible to add a query string to a feed URL in order to authenticate a user. This severly limits the ability of Windows RSS Platform to work within website security measures and provide access to private, password protected feeds.
8. The Windows RSS Platform supports only "http:" and "https:" protocols.
In other words, it is not possible to view a local or network feed file with the Windows RSS Platform. This precludes its use as a general purpose feed parser.
9. The Feed Synchronization Engine works only within the Internet Zone.
As described in Internet Explorer, by default the engine will not allow downloading files with any of 70 different extensions - including exe and com. Read the full Microsoft article for more details.
10. The Windows RSS Platform is not managed code.
Not sure what that means? Read the Wikipedia entry on Managed Code but basically it means the Windows RSS Platform is not compliant with Microsoft's own .NET Framework Common Language Runtime (CLR) however, the RSS Library for .NET and the ATOM Library for .NET are.
11. The Windows RSS Platform does not support feeds with DTDs.
A Document Type Definition (DTD) is a description that sets out what names are to be used for the different types of elements, where they may occur, and how they all fit together. DTDs are not required for determining basic "well-formedness" in feeds, but they are needed if you want to take advantage of any special attribute types, or use the default attribute values or you want to check the feed validity. For example, to incorporate any iTunes tags into your RSS 2.0 feeds, you must designate a link to the Document Type Definition (DTD) for the iTunes namespace changes.
1: <rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule"
How would you rate this article?
4 user(s) have rated this article
07/14/2008, in category "General Articles"
this article has been read 13664 times