IE 7, Office 2007, RSS and the Feed Protocol
I've been having an interesting back and forth with Sean Lyndersay, a Senior Program Manager on the RSS Team at Microsoft.
I noticed that Office 2007 - specifically Outlook 2007 - registered itself as a system-wide handler (without asking) for the feed: psuedo-protocol. Omar and I added support for feed: in DasBlog and half the users loved it and half hated it. I've always liked the idea, and the user experience of single clicking on a feed icon/link and getting a "would you like to subscribe."
The IE7 release will include the underpinnings for the new system-wide feed API. However, while Outlook 2007 Beta 2 includes support for RSS within PSTs, registers for feeds, and downloads feeds in the same dialog as mail, it doesn't appear to use this system wide RSS API or the Common Feed list.
Office 2007 Beta 2 doesn't appear to install the new RSS Platform at all!
UPDATE: There is an option in Tools|Options|Other|Advanced called "Sync RSS Feeds to the System Feed List" so that may mean that while Outlook stores RSS Feeds itself, it can update its internal OPML with the Common Feed List. Presumably 'System' in this case is the Common Feed Storage. Not sure if this means sync the feed URLs or the content itself.
Hopefully this will change before release, otherwise Outlook 2007 has just added an iffy RSS reader as a feature.
Here's Outlook having registered itself as a handler, after I clicked on my own feed from within Firefox. If I selected "Remember my choice" it'd be a one-click deal.
This is a reprinted part of my back and forth email with Sean and the team, posted with permission. Perhaps the RSS Team will post a little more about the integration between the new RSS Platform, IE7, Vista Beta 2 and Outlook 2007 Beta 2.
From: Scott Hanselman
To: Team RSS
Subject: Feed Protocol
I was surprised while running Vista 5308 that feed:// wasn't (didn't appear to be) supported in IE7. I was going to blog about it, but I wanted to get the straight story. What's the deal?
From: Sean Lyndersay
To: Scott Hanselman
This is an interesting question. The short answer is that we think that the
feed: "protocol" is an unnecessary feature, for a few reasons:
First, IE7 itself does not need a feed: link in order to decide whether a file is a feed, since we look at autodiscovery links in webpages, mime-types, and a few other things (see: section II of http://blogs.msdn.com/rssteam/articles/PublishersGuide.aspx) to make this decision.
Secondly, the existence of the feed: "protocol" implies the notion of a default feed reader -- a single client for consuming all feeds.
With the Windows RSS Platform that ships with IE7, and in particular the common feed list, we want to deprecate the notion of a single feed reader, and instead, promote the idea that feeds can and should be consumed from multiple different applications (often simultaneously). We have provided a rich API and event system for enabling applications to be notified whenever a user subscribes to a feed. They can then use that information to add the feed to their own feed lists, or they can use the common feed store to get the content of the feed directly (these different methods of integrating with the RSS platform are documented here:
Finally, registering for feed: would then mean that we would be fighting over ownership of the feed: "protocol" with various aggregators on the machine, which is something we really don't want to do. We would rather that publishers and aggregators move away from using feed:// towards simply declaring appropriate mime-types for their feeds (or, if that isn't possible, making sure that their feeds are easily detectable from the first few bytes of the file).
Hope this helps explain why IE7 doesn't register for the feed: protocol. Let me know if you have any questions.
From: Scott Hanselman
To: Sean Lyndersay; Team RSS
Thanks for your reply. Do let me know if I may blog selected portions of this discussion.
I understand your point of view, but there are certainly a number of other non-protocol protocols, particularly in the media space (real, windows media, iTunes) that have associated apps registered as the default. The other obvious one is mailto: even though I use hotmail, gmail, outlook express, outlook and thunderbird. If I follow your logic then a "mail store" would be in order as a platform service and the mailto: pseudo-protocol would be an unnecessary feature.
Feed: is nice because it's explicitly saying "this is a feed." You say that IE7 uses a number of techniques to (my word) "glean" if a feed is a feed. If you (Windows Platform) implemented a "feed" handler ala Open|With that simply enumerated the installed readers and provided the user with the option. Precedent for this already exist with file extension/type and mime/type handlers. Why treat RSS any differently? The idea of an "open with/subscribe" with global (chained) handler not only solves the problem of "fighting aggregators" but it respects and explicitly recognizes that there are a number of aggregators out there. Additionally it respects the fact that there are a number of OSs out there that don't have common feed storage, Windows included, and won't until everyone upgrades to IE7. With the continuing popularity of FireFox, do you anticipate folks upgrading to IE7 *just* for the RSS Platform or will that be a separate redist?
I think that by eschewing feed: you might take a considerable hit in the blogosphere as the folks who came up with feed: did it because the community asked for it. Taking it away or ignoring it I think could cause controversy.
Just my thoughts...
From: Sean Lyndersay
To: Scott Hanselman
Thanks for the thoughtful response. I'll blog about this on our blog later this week, which should give you all you need point to and blog yourself. :)
Taking this out of the philosophical and into the practical, the first point I should make is that we haven't "taken away" the feed: protocol. It still exists, any aggregator can register for it, any publisher can use it, and it will operate just as it did with IE6 (or any other browser). We just choose not to register for it.
With IE7 and Firefox 2.0 (following Safari 2.0 and Opera 8.0), all major browsers will natively support viewing RSS feeds and all will provide entrypoints for aggregators to learn of the user's intent to subscribe to a feed. For browsers that don't render feeds natively, we recommend doing what feedburner does (e.g. view this page in a non-IE7 browser http://feeds.feedburner.com/BurnThisRSS2) -- which is to provide an XSL stylesheet that provides options, including feed:, for users who can't or won't upgrade.
The fact is that feed-protocol was created for a reason, and that reason is going away. It was a less-than-optimal solution even at the time (see, for example, the creator of Feeddemon said: http://nick.typepad.com/blog/2004/06/feeddemon_and_t.html), and it is now longer the right solution.
In my own experience, sites that use feed: protocol appear to be fairly rare in practice. Of course, now that I've said that, I'm sure you'll point me to a few dozen of them :) (Scott: Just Outlook 2007 Beta2)
There are several better ways for a publisher to say "this is a feed" that fit cleanly into the HTTP design. We have recently documented them all on our blog .Firefox uses the same rules. We don't need an additional one.
Hope this helps.
I think that we both make a number of good points, and I appreciate that Sean acknowledges that the feed: protocol isn't going away, but IE7 isn't going to support it directly and I understand his point.
That said, I suspect that the first utility I will write after installing IE7 will be a system-wide feed: protocol handler that simply adds a feed to the RSS Platform Common Feed Store. That'll satisfy my one-click fix, making use of the clean protocol handler API and the clean RSS API. It's a win-win.
I recognize that when a new Platform API ships - like the RSS Platform API - that not everyone can turn the ship around - like Office 2007 - and get on board with a new dependency. However if the Windows Desktop Search folks got their hooks into the Outlook 12 Team and got them to coerce me into installing yet another Desktop Search Engine when my preferred engine is Google Desktop, the RSS Team should be able to whip them into shape and get them onto the RSS Platform API and get them behind the party line when it comes to the feed: protocol.