We just shipped the Windows RSS Platform with the IE7 Beta 2 Preview and questions about the RSS Platform are sprouting up. I wanted to address one of the most common questions first: how should applications can take advantage of platform?
Within our team we think of 3 major ways of how applications can use the RSS Platform:
Applications in this bucket are interested in the list of feeds that the user is subscribed to. For a number of reasons these applications are less interested in leveraging the RSS Platform for downloading feed content. Examples of applications of this type are:
Applications in this category generally work by reading the Common Feed List, listen for folder and feed events, and adding or deleting feeds to keep a mirror of all or part of the feed list. Outlook 12’s upcoming support for RSS uses this level of integration with the RSS Platform and thereby IE7’s feed discovery.
An application might choose to become RSS enabled for which the Windows RSS Platform can be helpful. Typically, such an application already has a significant investment in a data store and a user experience built on top of that data store. Even though the application has not previously supported RSS, it would be a major undertaking to implement the same user experience on top of another data store.
These types of applications are interested not only in the feeds the user is subscribed to but they also want to access to the downloaded content of the subscribed feeds.
Just two examples are email programs and NNTP newsreaders which have their own stores for items (news items, emails, …) and whose user experience is designed to read and write to their stores. It is often difficult for such applications to re-implement their user experience on top of another data store.
The RSS platform implements a Download Engine that handles scheduled downloading in the background, parsing of multiple feed formats, and the merge logic of determining whether an item is new or updated, etc. An application can avoid having to implement these building blocks by simply using the RSS Platform APIs including events to copy the feed contents into its own store. New RSS content is then “automatically” available to the application’s users.
In this way, the application takes advantage of the RSS Platform’s Common Feed List and Download Engine, while maintaining its own data store and UI rendering code.
This category applies to applications that have little existing in vestments in their own item store or rendering code, or they simply wish to take full advantage of the functionally the RSS Platform offers. These applications want to become “RSS–enabled” without having to implement an RSS stack.
These applications implement all of the functionality described in the scenarios above, but do not maintain their own store. They display the feed content directly from the the Feed Store (including enclosures). Many of the new RSS applications that we’ve talked about fit in this bucket. Imagine an RSS screen saver which displays pictures of photo feeds.
The key point I want to convey is that there is not just ONE way to integrate with the RSS Platform, but there are several. We’ve designed the platform to support several different ways of integration. The integration that you (as a developer) choose depends on the requirements of your application, the existing code base and functionality of your application. Those factors determine if and how deeply you might want to integrate with the RSS Platform. There is no one-size-fits-all for any developer platform, and the RSS platform is no different. Choose Bronze, Silver or Gold, and let me know which choice works for you and why.