RESTful real world applications using the ADO.NET Data Services FrameworkMike FlaskoProgram ManagerMicrosoft Corporation
Agenda
Why data services?Common challenges when creating rich web applicationsCreating rich web applications with data servicesFuture scenarios & roadmap
Why Data Services?
HTML + Javascript
Data (XML, etc)
DLL + XAML
Data (XML, etc) Data (XML, etc)
Mashup UI
Data Feeds
AJAX Applicatio
ns
Silverlight Applicatio
ns
Online Services
Mashups & Rich Clients
Leverage existing developer knowledge & code assetsProvide rich, interactive, data-driven experiences
Expressive, maintainable service contractEfficient network usage, minimize latency, …
Secure data accessManage concurrent operations“But my data is …”
Only accessible through stored proceduresNot stored in a database
Common Rich Web Application Challenges 1
2
3
4
5
Enabling Reuse
What practices and assets can be reused when targeting data services?Uniform interface enables code reuse
ADO.NET Data Services Framework client libraries & LINQ ASP.NET data source control3rd Party Control Vendors: data service aware controls
Familiar programming paradigms
Providing rich, interactive, data-driven experiences
Service Operations
• Custom entry points, e.g. /CustomersByCity?city='Madrid'
Eager/Lazy Loading of Related Entities
• $expand construct to pull the entire graph of data needed in one request
Filtering & Paging• Retrieve only the data needed, by pushing
execution of filter expressions to the data source
Batching
• Send set of CUD operations to the data service to be executed using “all or nothing” semantics
Galen MurdockPresident/CEOVeracity Solutions
customer
FreeNatal: Rich web client using data services
Greg JensenSenior Software EngineerVeracity Solutions
Controlling Access
Can data services integrate with existing approaches for access control?Authentication
Integrates with existing infrastructure ASP.NET Forms, HTTP, Live ID, Custom, etc
AuthorizationLocked by defaultInfrastructure to express your authorization policy
ConcurrencyIf its just HTTP, what about concurrent operations?
Supports optimistic concurrency
Integrates with existing HTTP infrastructure
GET /Customers(1)
200, ETag:xx
PUT/Customers(1)If-Match: xx
201, ETag:xx
OR
412, ETag:xx
Using Any Data Source“But my data is …”
Create a data service backed by a DB using the ADO.NET Entity Framework
Supports stored procedures
Expose any other data source using a custom provider
Data
HTTP
ADO.NET Data Service
ADO.NETEntity
Framework
Custom Provide
r
Any data source (DB, Web service, feed, file, etc)
Looking Forward…
Clients are not always “connected”How can we enable rich web clients experiences while offline?
Store changes locallySynchronize local data with a data service when reconnected
Summary & RoadmapA framework to create and consume REST-based data servicesProvides a rich service tier for consumption by web clients
RoadmapSpecial “release” for MIX attendees on the conference CDADO.NET Data Services Framework Beta 1 to come in a few weeks…
AJAX & ASP.NET Data source to come afterExploring offline integration with data services
Related Talks & Resources
RESTful Data Services with the ADO.NET Data Services Framework Accessing Windows Live Services via AtomPubUsing the Microsoft Sync Framework and FeedSync
http://blogs.msdn.com/astoriateamhttp://www.freenatal.org
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after
the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Top Related