using the rss platform on windows: syndication goes mainstream

Post on 18-Jul-2015

325 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

RSSRSS AtomAtom

FeedsFeeds

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

IE7 Feed ViewIE7 Feed View

DiscoveryDiscoverySorting and FilteringSorting and FilteringListsLists

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>

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>

ListsLists

List semanticList semanticOrder mattersOrder matters

Complete set of itemsComplete set of items

<channel>

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

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

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

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

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)

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

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

Object ModelObject Model

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

RSS AppsRSS Apps

Mix06 Session CalendarMix06 Session Calendar

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 </></>

Applications And RSSApplications And RSS

Integrate RSS PlatformIntegrate RSS Platform

RSS EcosystemRSS Ecosystem

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

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 ……

Greg Reinacker Greg Reinacker CTO and FounderCTO and FounderNewsGator TechnologiesNewsGator Technologies

Service IntegrationService Integration

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

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

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

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

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

top related