building components and services for the programmable web
DESCRIPTION
Want to learn how to expose components and services like Windows Live Local and Virtual Earth, but not sure where to begin? This session introduces real-world design patterns and best practices for constructing reusable Web components and Web-based services for the programmable Web.TRANSCRIPT
Building Components And Building Components And Services For The Services For The Programmable WebProgrammable Web
Nikhil KothariNikhil KothariSoftware Architect,Software Architect,UI FrameworkUI FrameworkMicrosoft CorporationMicrosoft Corporation
NGW022NGW022
AgendaAgenda
Programmable WebProgrammable WebConsuming – Building mash-upsConsuming – Building mash-ups
Enabling – Authoring gadgets, Enabling – Authoring gadgets, and servicesand services
Demo: musicMix ApplicationDemo: musicMix ApplicationImplemented using ASP.NET “Atlas”Implemented using ASP.NET “Atlas”
Web 2.0Web 2.0
Wikipedia: “… second phase of architecture Wikipedia: “… second phase of architecture and application development for the World and application development for the World Wide Web”Wide Web”A buzzword to incorporate whatever is new A buzzword to incorporate whatever is new and popular on the Weband popular on the Web
AJAX APIs Feeds Folksonomy Gadgets Identity JSON Mash-up Perpetual Beta
Podcasts REST RIA RSS Semantic Web Social Web SOAP
Syndication Tagging Web Services Web Standards Wikis
AJAX APIs Feeds Folksonomy Gadgets Identity JSON Mash-up Perpetual Beta
Podcasts REST RIA RSS Semantic Web Social Web SOAP
Syndication Tagging Web Services Web Standards Wikis
Programmable Web
What Is The Programmable WebWhat Is The Programmable Web
Transformation of the Web from content Transformation of the Web from content publishing medium into a platformpublishing medium into a platform
Each application is a component in this platformEach application is a component in this platform
Enable sharing and unlocking user and Enable sharing and unlocking user and application dataapplication data
Via services and APIs, data formats and schemasVia services and APIs, data formats and schemas
Applications and ScenariosApplications and ScenariosMash-upsMash-ups
Services (REST, SOAP, RSS, …)Services (REST, SOAP, RSS, …)
Shared components (eg. Gadgets)Shared components (eg. Gadgets)
Shared data formats (eg. Live Clipboard)Shared data formats (eg. Live Clipboard)
Consuming the Programmable WebConsuming the Programmable WebMash-upsMash-ups
Applications that re-mix or aggregate data Applications that re-mix or aggregate data from one or more services to create new end-from one or more services to create new end-user experiences and scenariosuser experiences and scenariosHow do they work?How do they work?
Link to one another via shared data semanticsLink to one another via shared data semanticsBring and co-relate data for end-users into Bring and co-relate data for end-users into one locationone location
Why build mash-ups?Why build mash-ups?Leverage the power of the Web platformLeverage the power of the Web platformCreate rich and immersive user experiencesCreate rich and immersive user experiencesMeet a new bar of growing user expectationsMeet a new bar of growing user expectations
musicMix ApplicationmusicMix Application
A look at the existing A look at the existing application…application…
musicMix Mash-upmusicMix Mash-up
Create an enhanced and engaging music experienceCreate an enhanced and engaging music experience
RSSRSS
SOAPSOAP
RESTREST
My Application My Application
The Canonical Mash-upThe Canonical Mash-up
ClientClient
BridgeBridgeProxyProxy
(Script)(Script)
BridgeBridgeProxyProxy
(Script)(Script)
ExternalExternalServiceService
ExternalExternalServiceService
ServerServer
PagesPagesPagesPagesUI + LogicUI + Logic(HTML +(HTML +Script)Script)
UI + LogicUI + Logic(HTML +(HTML +Script)Script)
BridgeBridgeBridgeBridge
ConfigConfigConfigConfig
InitiateInitiateRequestRequest
CacheCacheLookupLookup
CreateCreateServiceServiceRequestRequest
InvokeInvokeServiceService
ProcessProcessServiceService
ResponseResponse
UpdateUpdateDisplayDisplay
Consuming The Consuming The Programmable WebProgrammable Web
musicMix Mash-upmusicMix Mash-up- iTunes Top Selling AlbumsiTunes Top Selling Albums- Similar Albums from AmazonSimilar Albums from Amazon- Artist Links from MSN SearchArtist Links from MSN Search
Enabling the Programmable WebEnabling the Programmable WebGadgets and ServicesGadgets and Services
A gadget is an uber-serviceA gadget is an uber-serviceNot just raw data, but UI, Logic and Not just raw data, but UI, Logic and Personalization as wellPersonalization as wellA face for your data and servicesA face for your data and servicesHosted by Windows Live, Sidebar, …Hosted by Windows Live, Sidebar, …Mini-mashups; typically consume Mini-mashups; typically consume data/services themselvesdata/services themselves
Why build gadgets?Why build gadgets?Stickyness and propagation of brandStickyness and propagation of brandReach end-users with services, not Reach end-users with services, not just applicationsjust applicationsCreate new linking opportunitiesCreate new linking opportunities
Enabling The Enabling The Programmable WebProgrammable Web
musicMix Media Player GadgetmusicMix Media Player Gadgetand PlayList REST serviceand PlayList REST service
Enabling the Programmable WebEnabling the Programmable WebLive ClipboardLive Clipboard
A clipboard model for A clipboard model for Web applicationsWeb applications
Web to Web and Web to/from DesktopWeb to Web and Web to/from Desktop
Cross-browser, cross-platformCross-browser, cross-platform
Structured data sharing across apps Structured data sharing across apps based on shared/common data formatsbased on shared/common data formats
Enable end-users to mash up data to Enable end-users to mash up data to their individual needstheir individual needs
User-initiated copy/paste of dataUser-initiated copy/paste of data
Enabling The Enabling The Programmable WebProgrammable Web
PlayList copy/paste via PlayList copy/paste via Live ClipboardLive Clipboard
Related MIX ContentRelated MIX Content
Sessions on post show DVDSessions on post show DVDNGW014: Developing a Better User Experience NGW014: Developing a Better User Experience with “Atlas” with “Atlas” NGW052: Designing a Better User Experience NGW052: Designing a Better User Experience with AJAX and “Atlas”with AJAX and “Atlas”NGW038: Overview of Live.com GadgetsNGW038: Overview of Live.com GadgetsNGW054: Building an Application from Scratch NGW054: Building an Application from Scratch with ASP.NET 2.0with ASP.NET 2.0NGW002: Building Components and Services for NGW002: Building Components and Services for the Programmable Webthe Programmable WebNGW058: Wiring the WebNGW058: Wiring the Web
Labs @ the SandboxLabs @ the SandboxMIX Chat this afternoonMIX Chat this afternoon
Resources And ReferencesResources And References
Mash-up and API GalleryMash-up and API Galleryhttp://programmableweb.comhttp://programmableweb.com
ASP.NET “Atlas”ASP.NET “Atlas”http://atlas.asp.nethttp://atlas.asp.net
BlogsBlogshttp://www.nikhilk.nethttp://www.nikhilk.net
http://weblogs.asp.net/scottguhttp://weblogs.asp.net/scottgu
http://weblogs.asp.net/bleroyhttp://weblogs.asp.net/bleroy
Call To ActionCall To Action
The transformation continues…The transformation continues…Technologies and business models are evolvingTechnologies and business models are evolving
New services are becoming availableNew services are becoming available
Experiment and participateExperiment and participate
Download and try ASP.NET “Atlas”Download and try ASP.NET “Atlas”March ’06 Go Live Build ReleasedMarch ’06 Go Live Build Released
Simplifies development of mash-ups, gadgets, Simplifies development of mash-ups, gadgets, and client applicationsand client applications
Stop by to talk to the teamStop by to talk to the team
Send us feedbackSend us feedback
Participate in the Mash It Up With Atlas ContestParticipate in the Mash It Up With Atlas Contest
© 2006 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
AbstractAbstract
This session explores the programmable Web, and how This session explores the programmable Web, and how ASP.NET “Atlas” enables applications to easily ASP.NET “Atlas” enables applications to easily participate in this new platform via mash-ups and other participate in this new platform via mash-ups and other forms of data sharing. The presentation explores key forms of data sharing. The presentation explores key mash-up concepts, and demonstrates leveraging data mash-up concepts, and demonstrates leveraging data from services such as MSN Search, and Amazon Web from services such as MSN Search, and Amazon Web Services in a reusable and component oriented fashion. Services in a reusable and component oriented fashion. Secondly, it demonstrates how an application can Secondly, it demonstrates how an application can expose data via services, APIs and reach end-users with expose data via services, APIs and reach end-users with its services via Windows Live Gadgets. Finally it its services via Windows Live Gadgets. Finally it provides a glimpse of enabling user-driven mash-ups provides a glimpse of enabling user-driven mash-ups and copy/paste of structured data by implementing a and copy/paste of structured data by implementing a clipboard model for the Web.clipboard model for the Web.