using the rss platform on windows: syndication goes mainstream

26
Using The RSS Platform Using The RSS Platform On Windows On Windows Syndication goes mainstream Syndication goes mainstream Walter vonKoch Walter vonKoch Program Manager Program Manager RSS / Internet Explorer RSS / Internet Explorer Microsoft Corporation Microsoft Corporation BTB033 BTB033

Upload: goodfriday

Post on 18-Jul-2015

324 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Using the RSS Platform on Windows: Syndication Goes Mainstream

Using The RSS Platform Using The RSS Platform On WindowsOn WindowsSyndication goes mainstreamSyndication goes mainstream

Walter vonKochWalter vonKochProgram ManagerProgram ManagerRSS / Internet ExplorerRSS / Internet ExplorerMicrosoft CorporationMicrosoft Corporation

BTB033BTB033

Page 2: Using the RSS Platform on Windows: Syndication Goes Mainstream

RSSRSS AtomAtom

FeedsFeeds

Page 3: Using the RSS Platform on Windows: Syndication Goes Mainstream

RSSify Now RSSify Now

RSS enable your site (feed discovery)RSS enable your site (feed discovery)

Enrich your feed with Sort & Filter tagsEnrich your feed with Sort & Filter tags

Expose ListsExpose Lists

Best practicesBest practices

Page 4: Using the RSS Platform on Windows: Syndication Goes Mainstream

IE7 Feed ViewIE7 Feed View

DiscoveryDiscoverySorting and FilteringSorting and FilteringListsLists

Page 5: Using the RSS Platform on Windows: Syndication Goes Mainstream

Feed DiscoveryFeed Discovery

Discovery of feeds on web pagesDiscovery of feeds on web pages<html><html>

<<headhead>>

<title>Hello World Page</title><title>Hello World Page</title>

<link rel="alternate" type="application/rss+xml"title="The Hello World RSS feed" href="HelloWorld.xml"/>

</head></head>

<body><body>

<h1>Hello, World</h1><h1>Hello, World</h1>

</body></body>

</html></html>

Page 6: Using the RSS Platform on Windows: Syndication Goes Mainstream

Publisher DefinedPublisher DefinedSorting And GroupingSorting And Grouping<channel> <cf:listinfo> <cf:sort ns="urn:my" label="Buy It Now price"

element="BuyItNowPrice" data-type="number" default="no“/>

<cf:sort ns="urn:my" label="Current auction price" element="CurrentPrice" data-type="number" default="no“/>

<cf:sort ns="urn:my" label="Listing end time" element="EndTime" data-type="date" default="no“/>

<cf:sort ns="urn:my" label="Number of bids" element="BidCount" data-type="number" default="no“/>

<cf:group ns="urn:my" label="listing format" element="AuctionType“/>

<cf:group ns="urn:my" label="option" element="ItemCharacteristic“/>

<cf:group ns="urn:my" label="listing category" element="Category“/>

</cf:listinfo>

Page 7: Using the RSS Platform on Windows: Syndication Goes Mainstream

ListsLists

List semanticList semanticOrder mattersOrder matters

Complete set of itemsComplete set of items

<channel>

<cf:treatas>list</cf:treatas>

Page 8: Using the RSS Platform on Windows: Syndication Goes Mainstream

RSS Best PracticesRSS Best Practices

When publishing feeds rememberWhen publishing feeds remember

<guid> prevents duplicate items<guid> prevents duplicate items

<pubDate> to have predictable sorting<pubDate> to have predictable sorting

<title> lets users scan for what to read<title> lets users scan for what to read

Emit well-formed XML including Emit well-formed XML including contentcontent

Choose the feed format that you want; Choose the feed format that you want; but choose only onebut choose only one

Page 9: Using the RSS Platform on Windows: Syndication Goes Mainstream

Windows RSS PlatformWindows RSS Platform

RSS PlatformRSS Platform

Background DownloadBackground Download

Security PrinciplesSecurity Principles

API & Object ModelAPI & Object Model

Managed CodeManaged Code

Mix Session CalendarMix Session Calendar

Page 10: Using the RSS Platform on Windows: Syndication Goes Mainstream

Windows RSS PlatformWindows RSS Platform

DownloadDownloadEngineEngine

RSS 0.9xRSS 0.9xRSS 1.0RSS 1.0RSS 2.0RSS 2.0

AtomAtom

BrowsersBrowsers PhotosPhotos ContactsContacts ……

NewsNews BlogsBlogs PhotosPhotos AudioAudio CalendarsCalendars ListsLists ……

MergeMergeProcessorProcessor

CommonFeedlist

Items Enclosures

RSS Object ModelRSS Object Model

StoreStore

ServiceService

APIAPI

Page 11: Using the RSS Platform on Windows: Syndication Goes Mainstream

Background DownloadBackground Download

Scheduled Background DownloadScheduled Background DownloadConditional GET & Delta encodingConditional GET & Delta encoding

Throttled RequestsThrottled Requests

““Salted” SchedulingSalted” Scheduling

Exponential back offExponential back off

<ttl> aware<ttl> aware

Enclosure DownloadEnclosure DownloadUsing BITS (HTTP RANGE requests)Using BITS (HTTP RANGE requests)

Page 12: Using the RSS Platform on Windows: Syndication Goes Mainstream

RSS Platform SecurityRSS Platform Security

Share lessons from email and web-browsersShare lessons from email and web-browsersDon’t trust the source Don’t trust the source

Don’t trust the contentDon’t trust the content

Don’t trust the enclosuresDon’t trust the enclosures

Make downloaded locations hard to guessMake downloaded locations hard to guess

Defense in depthDefense in depth

RSS-specificRSS-specificExplicit subscription listExplicit subscription list

Err on the side of strictErr on the side of strict

Validate and Sanitize feed contentValidate and Sanitize feed content

No executable enclosuresNo executable enclosures

Page 13: Using the RSS Platform on Windows: Syndication Goes Mainstream

RSS Platform APIRSS Platform API

COM APICOM API

- Automation (IFeed…)- Automation (IFeed…)

- Early-bound (IXFeed…)- Early-bound (IXFeed…)

Not safe-for-scriptingNot safe-for-scripting

FeedsManagerFeedsManager

FeedFeed

FeedFolderFeedFolder

FeedItemFeedItem

FeedEnclosureFeedEnclosure

FolderEventsFolderEvents

FeedEventsFeedEvents

Page 14: Using the RSS Platform on Windows: Syndication Goes Mainstream

Object ModelObject Model

Page 15: Using the RSS Platform on Windows: Syndication Goes Mainstream

Managed CodeManaged Code

API designed based on .NET Framework API designed based on .NET Framework Design Guidelines Design Guidelines

Type library importer (TLBIMP) to create Type library importer (TLBIMP) to create managed wrappersmanaged wrappers

Page 16: Using the RSS Platform on Windows: Syndication Goes Mainstream

RSS AppsRSS Apps

Mix06 Session CalendarMix06 Session Calendar

Page 17: Using the RSS Platform on Windows: Syndication Goes Mainstream

Feeding The CalendarFeeding The Calendar<rss version="2.0“<rss version="2.0“ xmlns:xmlns:mseventsmsevents="http://content.mix06.com/rss/msevents/1.0">="http://content.mix06.com/rss/msevents/1.0">

<<itemitem>> <<titletitle>Using the RSS Platform on Windows>Using the RSS Platform on Windows </> </> <<descriptiondescription>Discover how to easily add support >Discover how to easily add support … </>… </> <<guidguid isPermaLink="true">http://content.mix06.co isPermaLink="true">http://content.mix06.co … </> … </> <link>http://content.mix06.com/content/SessionVi<link>http://content.mix06.com/content/SessionVi … </> … </> <pubDate>Wed, 25 Jan 2006 16:01:06 GMT</><pubDate>Wed, 25 Jan 2006 16:01:06 GMT</> <msevents:track>Beyond The Browser <msevents:track>Beyond The Browser </></> <msevents:<msevents:locationlocation>Palazzo Ballroom E-L >Palazzo Ballroom E-L </></> <msevents:<msevents:sessionstartIsosessionstartIso>2006-03-22T08:30:00-08:00 >2006-03-22T08:30:00-08:00 </></> <msevents:<msevents:sessionendIsosessionendIso>2006-03-22T09:45:00-08:00 >2006-03-22T09:45:00-08:00 </></> <msevents:sessionspeaker>Greg Reinacker <msevents:sessionspeaker>Greg Reinacker </></> <msevents:sessionspeaker>Walter VonKoch <msevents:sessionspeaker>Walter VonKoch </></>

Page 18: Using the RSS Platform on Windows: Syndication Goes Mainstream

Applications And RSSApplications And RSS

Integrate RSS PlatformIntegrate RSS Platform

RSS EcosystemRSS Ecosystem

Page 19: Using the RSS Platform on Windows: Syndication Goes Mainstream

Integrate RSS PlatformIntegrate RSS Platform

Application IntegrationApplication IntegrationCommon Feed List Common Feed List

Download Engine Download Engine

Feed Store and EnclosuresFeed Store and Enclosures

Service IntegrationService IntegrationCommon Feed ListCommon Feed List

Read/Unread stateRead/Unread state

Page 20: Using the RSS Platform on Windows: Syndication Goes Mainstream

RSS EcosystemRSS Ecosystem

RSS PlatformRSS Platform

Online Services Online Services

NewsNews BlogsBlogs PhotosPhotos AudioAudio CalendarsCalendars ListsLists ……

PhotosPhotos ContactsContacts ……BrowsersBrowsers PhotosPhotos ContactsContactsOnlineOnline

““Plug-in”Plug-in”

MobileMobile MacMac BrowsersBrowsers ……

Page 21: Using the RSS Platform on Windows: Syndication Goes Mainstream

Greg Reinacker Greg Reinacker CTO and FounderCTO and FounderNewsGator TechnologiesNewsGator Technologies

Page 22: Using the RSS Platform on Windows: Syndication Goes Mainstream

Service IntegrationService Integration

NewsGator Online integration NewsGator Online integration with Windows RSS Platformwith Windows RSS Platform

Page 23: Using the RSS Platform on Windows: Syndication Goes Mainstream

NewsGator Online SyncNewsGator Online Sync

Extends feed-reading experience Extends feed-reading experience beyond one PCbeyond one PC

Mac OS X, MCE, Mobile, Third PartiesMac OS X, MCE, Mobile, Third Parties

Synchronizes Synchronizes Common Feed ListCommon Feed List

Read/Unread stateRead/Unread state

Leverages strengths of RSS PlatformLeverages strengths of RSS Platform

Instant integration with all RSS Instant integration with all RSS Platform based clientsPlatform based clients

Page 24: Using the RSS Platform on Windows: Syndication Goes Mainstream

Call To ActionCall To Action

RSS enable your site todayRSS enable your site today

Follow RSS best practicesFollow RSS best practices

Support HTTP Range requests for Support HTTP Range requests for enclosuresenclosures

Emit more then just text via RSSEmit more then just text via RSS

Target RSS-enabled appsTarget RSS-enabled apps

Participate in the RSS EcosystemParticipate in the RSS Ecosystem

Fill out session eval forms onlineFill out session eval forms online

Page 25: Using the RSS Platform on Windows: Syndication Goes Mainstream

Learn MoreLearn More

RSS blog RSS blog http://blogs.msdn.com/rssteam/http://blogs.msdn.com/rssteam/

MSDN documentation MSDN documentation http://msdn.microsoft.com/library/en-http://msdn.microsoft.com/library/en-us/feedsapi/rss/overviews/msfeeds_ovw.aspus/feedsapi/rss/overviews/msfeeds_ovw.asp

Sandbox Hands-On Lab:Sandbox Hands-On Lab:LBTB300 - Extending RSS Technologies into Your LBTB300 - Extending RSS Technologies into Your Applications and Web SitesApplications and Web Sites

NewsGator API NewsGator API http://www.newsgator.com/ngs/apihttp://www.newsgator.com/ngs/api

Page 26: Using the RSS Platform on Windows: Syndication Goes Mainstream

© 2006 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.