Come hear from developers creating real-world applications and user-interface controls on top of the ADO.NET Data Services Framework (aka Project "Astoria"). Learn best practices for building RESTful applications and components,.
DevEX - reference for building teams, processes, and platforms
Building RESTful Real World Applications with the ADO.NET Data Services Framework
1.
2. Why data services?
Common challenges when creating rich web
applications
Creating rich web applications with data
services
Future scenarios & roadmap
3. HTML + Javascript DLL + XAML Mashup UI
Data (XML, etc) Data (XML, etc) Data (XML, etc)
Data
Feeds
AJAX Silverlight Mashups & Online
Applications Applications Rich Clients Services
4. Leverage existing developer knowledge & code assets
1
Provide rich, interactive, data-driven experiences
2
Expressive, maintainable service contract
Efficient network usage, minimize latency, …
Secure data access
3
Manage concurrent operations
4
“But my data is …”
5
Only accessible through stored procedures
Not stored in a database
5. 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 control
3rd Party Control Vendors: data service aware
controls
Familiar programming paradigms
6.
7. 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
8.
9. Can data services integrate with existing
approaches for access control?
Authentication
Integrates with existing infrastructure
ASP.NET Forms, HTTP, Live ID, Custom, etc
Authorization
Locked by default
Infrastructure to express your authorization
policy
10. If its just HTTP, what
about concurrent
operations?
GET /Customers(1)
200, ETag:xx
Supports optimistic
concurrency
PUT/Customers(1)
If-Match: xx
Integrates with existing
201, ETag:xx
HTTP infrastructure
OR
412, ETag:xx
11. “But my data is …”
Data
Create a data service backed
by a DB using the ADO.NET
HTTP
Entity Framework
Supports stored procedures
ADO.NET
Data Service
ADO.NET
Custom
Entity
Expose any other data source
Provider
Framework
using a custom provider
Any data source
(DB, Web service,
feed, file, etc)
12. Clients are not always “connected”
How can we enable rich web clients
experiences while offline?
Store changes locally
Synchronize local data with a data service
when reconnected
13. A framework to create and consume REST-based data
services
Provides a rich service tier for consumption by web
clients
Roadmap
Special “release” for MIX attendees on the
conference CD
ADO.NET Data Services Framework Beta 1 to come
in a few weeks…
AJAX & ASP.NET Data source to come after
Exploring offline integration with data services
14. RESTful Data Services with the ADO.NET Data
Services Framework
Accessing Windows Live Services via AtomPub
Using the Microsoft Sync Framework and
FeedSync
http://blogs.msdn.com/astoriateam
http://www.freenatal.org