Using the RSS Platform on Windows: Syndication Goes Mainstream


Published on

Discover how to easily add support for Web feeds to your client applications using the new RSS platform services provided with IE7 and Windows Vista. This session covers the components of the platform, what they can do for you, and how to integrate them with your application. Learn from case studies of the different approaches Outlook, OE Live, and the Windows Sidebar used to take advantage of the RSS platform.

1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Using the RSS Platform on Windows: Syndication Goes Mainstream

  1. 1. Using The RSS Platform On Windows Syndication goes mainstream Walter vonKoch Program Manager RSS / Internet Explorer Microsoft Corporation BTB033
  2. 2. RSS Atom Feeds
  3. 3.  RSSify Now <ul><li>RSS enable your site (feed discovery) </li></ul><ul><li>Enrich your feed with Sort & Filter tags </li></ul><ul><li>Expose Lists </li></ul><ul><li>Best practices </li></ul>
  4. 4. IE7 Feed View Discovery Sorting and Filtering Lists
  5. 5. Feed Discovery <ul><li>Discovery of feeds on web pages </li></ul><ul><ul><li><html> </li></ul></ul><ul><ul><li>< head > </li></ul></ul><ul><ul><li><title>Hello World Page</title> </li></ul></ul><ul><ul><li><link rel=&quot;alternate&quot; type=&quot;application/rss+xml&quot; </li></ul></ul><ul><ul><ul><li>title=&quot;The Hello World RSS feed&quot; href=&quot;HelloWorld.xml&quot;/> </li></ul></ul></ul><ul><ul><li></head> </li></ul></ul><ul><ul><li><body> </li></ul></ul><ul><ul><li><h1>Hello, World</h1> </li></ul></ul><ul><ul><li></body> </li></ul></ul><ul><ul><li></html> </li></ul></ul>
  6. 6. Publisher Defined Sorting And Grouping <ul><li>< channel > </li></ul><ul><li><cf: listinfo > </li></ul><ul><li><cf:sort ns=&quot;urn: my &quot; label=&quot;Buy It Now price&quot; element=&quot;BuyItNowPrice&quot; data-type=&quot;number&quot; default=&quot;no“ / > </li></ul><ul><li><cf: sort ns=&quot;urn:my&quot; label=&quot;Current auction price&quot; element=&quot;CurrentPrice&quot; data-type=&quot;number&quot; default=&quot;no“ / > </li></ul><ul><li><cf:sort ns=&quot;urn:my&quot; label=&quot;Listing end time&quot; element=&quot;EndTime&quot; data-type=&quot;date&quot; default=&quot;no“ / > </li></ul><ul><li><cf:sort ns=&quot;urn:my&quot; label=&quot;Number of bids&quot; element=&quot;BidCount&quot; data-type=&quot;number&quot; default=&quot;no“ / > </li></ul><ul><li><cf:group ns=&quot;urn:my&quot; label=&quot;listing format&quot; element=&quot;AuctionType“ / > </li></ul><ul><li><cf: group ns=&quot;urn:my&quot; label=&quot;option&quot; element=&quot;ItemCharacteristic“ / > </li></ul><ul><li><cf:group ns=&quot;urn:my&quot; label=&quot;listing category&quot; element=&quot;Category“ / > </li></ul><ul><li></cf:listinfo> </li></ul>
  7. 7. Lists <ul><li>List semantic </li></ul><ul><ul><li>Order matters </li></ul></ul><ul><ul><li>Complete set of items </li></ul></ul><ul><ul><li>< channel > </li></ul></ul><ul><ul><li><cf:treatas>list</cf:treatas> </li></ul></ul><ul><ul><li>… </li></ul></ul>
  8. 8. RSS Best Practices <ul><li>When publishing feeds remember </li></ul><ul><li><guid> prevents duplicate items </li></ul><ul><li><pubDate> to have predictable sorting </li></ul><ul><li><title> lets users scan for what to read </li></ul><ul><li>Emit well-formed XML including content </li></ul><ul><li>Choose the feed format that you want; but choose only one </li></ul>
  9. 9.  Windows RSS Platform <ul><li>RSS Platform </li></ul><ul><li>Background Download </li></ul><ul><li>Security Principles </li></ul><ul><li>API & Object Model </li></ul><ul><li>Managed Code </li></ul><ul><li>Mix Session Calendar </li></ul>
  10. 10. Windows RSS Platform Download Engine RSS 0.9x RSS 1.0 RSS 2.0 Atom Browsers Photos Contacts … News Blogs Photos Audio Calendars Lists … Merge Processor Common Feedlist Items Enclosures RSS Object Model Store Service API
  11. 11. Background Download <ul><li>Scheduled Background Download </li></ul><ul><ul><li>Conditional GET & Delta encoding </li></ul></ul><ul><ul><li>Throttled Requests </li></ul></ul><ul><ul><li>“ Salted” Scheduling </li></ul></ul><ul><ul><li>Exponential back off </li></ul></ul><ul><ul><li><ttl> aware </li></ul></ul><ul><li>Enclosure Download </li></ul><ul><ul><li>Using BITS (HTTP RANGE requests) </li></ul></ul>
  12. 12. RSS Platform Security <ul><li>Share lessons from email and web-browsers </li></ul><ul><ul><li>Don’t trust the source  </li></ul></ul><ul><ul><li>Don’t trust the content </li></ul></ul><ul><ul><li>Don’t trust the enclosures </li></ul></ul><ul><ul><li>Make downloaded locations hard to guess </li></ul></ul><ul><ul><li>Defense in depth </li></ul></ul><ul><li>RSS-specific </li></ul><ul><ul><li>Explicit subscription list </li></ul></ul><ul><ul><li>Err on the side of strict </li></ul></ul><ul><ul><li>Validate and Sanitize feed content </li></ul></ul><ul><ul><li>No executable enclosures </li></ul></ul>
  13. 13. RSS Platform API <ul><li>COM API </li></ul><ul><li>- Automation (IFeed…) </li></ul><ul><li>- Early-bound (IXFeed…) </li></ul><ul><li>Not safe-for-scripting </li></ul>FeedsManager Feed FeedFolder FeedItem FeedEnclosure FolderEvents FeedEvents
  14. 14. Object Model
  15. 15. Managed Code <ul><li>API designed based on .NET Framework Design Guidelines </li></ul><ul><li>Type library importer (TLBIMP) to create managed wrappers </li></ul>
  16. 16. RSS Apps Mix06 Session Calendar
  17. 17. Feeding The Calendar <ul><li><rss version=&quot;2.0“ </li></ul><ul><li>xmlns: msevents =&quot;;> </li></ul><ul><li>< item > </li></ul><ul><li>< title >Using the RSS Platform on Windows </> </li></ul><ul><li>< description >Discover how to easily add support … </> </li></ul><ul><li>< guid isPermaLink=&quot;true&quot;> … </> </li></ul><ul><li><link> … </> </li></ul><ul><li><pubDate>Wed, 25 Jan 2006 16:01:06 GMT</> </li></ul><ul><li><msevents:track>Beyond The Browser </> </li></ul><ul><li><msevents: location >Palazzo Ballroom E-L </> </li></ul><ul><li><msevents: sessionstartIso >2006-03-22T08:30:00-08:00 </> </li></ul><ul><li><msevents: sessionendIso >2006-03-22T09:45:00-08:00 </> </li></ul><ul><li><msevents:sessionspeaker>Greg Reinacker </> </li></ul><ul><li><msevents:sessionspeaker>Walter VonKoch </> </li></ul>
  18. 18.  Applications And RSS <ul><li>Integrate RSS Platform </li></ul><ul><li>RSS Ecosystem </li></ul>
  19. 19. Integrate RSS Platform <ul><li>Application Integration </li></ul><ul><ul><li>Common Feed List </li></ul></ul><ul><ul><li>Download Engine </li></ul></ul><ul><ul><li>Feed Store and Enclosures </li></ul></ul><ul><li>Service Integration </li></ul><ul><ul><li>Common Feed List </li></ul></ul><ul><ul><li>Read/Unread state </li></ul></ul>
  20. 20. RSS Ecosystem RSS Platform Online Services News Blogs Photos Audio Calendars Lists … Photos Contacts … Browsers Photos Contacts Online “ Plug-in” Mobile Mac Browsers …
  21. 21. Greg Reinacker CTO and Founder NewsGator Technologies
  22. 22. Service Integration NewsGator Online integration with Windows RSS Platform
  23. 23. NewsGator Online Sync <ul><li>Extends feed-reading experience beyond one PC </li></ul><ul><ul><li>Mac OS X, MCE, Mobile, Third Parties </li></ul></ul><ul><li>Synchronizes </li></ul><ul><ul><li>Common Feed List </li></ul></ul><ul><ul><li>Read/Unread state </li></ul></ul><ul><li>Leverages strengths of RSS Platform </li></ul><ul><li>Instant integration with all RSS Platform based clients </li></ul>
  24. 24.  Call To Action <ul><li>RSS enable your site today </li></ul><ul><li>Follow RSS best practices </li></ul><ul><li>Support HTTP Range requests for enclosures </li></ul><ul><li>Emit more then just text via RSS </li></ul><ul><li>Target RSS-enabled apps </li></ul><ul><li>Participate in the RSS Ecosystem </li></ul><ul><li>Fill out session eval forms online </li></ul>
  25. 25. Learn More <ul><li>RSS blog </li></ul><ul><li>MSDN documentation </li></ul><ul><li>Sandbox Hands-On Lab: LBTB300 - Extending RSS Technologies into Your Applications and Web Sites </li></ul><ul><li>NewsGator API </li></ul>
  26. 26. © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.