Windows RSS Platform ala carte

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:

  1. Bronze: Integrating with the Common Feed List
  2. Silver: Integrating with the Common Feed List and leveraging the platform’s Download engine
  3. Gold: Leveraging the entire platform: Common Feed List, Download Engine, and Feed Store (including enclosures)

1. Bronze: Integrating with the Common Feed List

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:

  • Existing RSS aggregators:
    Existing RSS aggregators (like FeedDemon or RSS Bandit) typically have a significant investment in their own download engine and feed store. The Common Feed List was designed to make it possible for aggregators to hook into IE’s feed discovery feature – so that whenever a user chooses to subscribe to a feed using the IE subscription features, it’ll show up in the whatever aggregator the user uses.
  • Browsers or other applications that perform feed discovery and allow users to subscribe to feeds:
    Any application on the PC that has the ability to find feeds for the user can add feeds to the Common Feed List if the user chooses to subscribe to those. Other applications can then “find” those feeds via the Common Feed List.
  • Online feed reading services:
    Online feed reading services can provide tools that keep the Common Feed List in sync with other services, enabling these online services to tap into the IE’s feed discovery feature, in the same way that local aggregators do.
  • Import/export tools (e.g. into OPML or some other format):
    IE 7 provides an OPML import/export function for users, but it’s possible for developers use the RSS platform Common Feed List to export the user’s feed list into any format desired.

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.

2. Silver: Integrating with the Common Feed List and leveraging the platform’s Download Engine

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.

3. Gold: Leveraging the entire RSS platform: Common Feed List, Download Engine, and Feed Store

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.

Conclusion

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.

- Walter