Data Services

Download Report

Transcript Data Services

Eric Nelson
Developer & Platform Group
Microsoft Ltd
[email protected]
http://blogs.msdn.com/ericnel
http://twitter.com/ericnel
Relational
SQL Server Integration Services
Improved
VSTA replaces VSA
ADO.NET
Performance
Merge
...
XML
UDTs
New
Filestream
Hierarchy ID
Date & Time
Spatial data
Sparse columns and wide tables
Filtered indexes
Change tracking
Table parameters to SP calls
Resource governor
SP control and monitoring
Database compression
Declarative management
...
Reporting Services
“IIS free”
Tablix
New designer
...
BI
Cube design
Deisgn alerts
Performance
...
ADO.NET Entity Framework
ADO.NET Data Services
Accessing data in 1990
• ODBC, embedded SQL
Accessing data in 2000
• ADO, Stored Procedures
Accessing data in 2005
• ADO.NET, Datasets, DataReaders
Accessing data in 2010
• ORM baby!
What is it?
Technique for working with relational tables as if they were objects
in memory
Intention is to hide away the complexity of the underlying tables
and give a uniform way of working with data
Why use it?
Productivity
Retain database independence
Notes
There are many ORMs for .NET developers already in existence.
E.g.
LLBLGen Pro http://www.llblgen.com/
Nhibernate http://www.hibernate.org/343.html
EntitySpaces http://www.entityspaces.net/Portal/Default.aspx
Objects vs Classes vs Entities
What is it?
Tools and services to create an Entity Data Model
EDM gives ORM to SQL Server, Oracle, DB2 etc
Tools and services for consuming an Entity Data Model
Why use it?
Productivity
Complex mapping between entities and database
tables
Works great with ADO.NET Data Services
Notes
Strategic but just released...
Application model
Mapped to a persistence
store
Comprised of three
layers:
Conceptual (CSDL)
Mapping (MSL)
Storage (SSDL)
Database agnostic
Comprised of:
Entities
Associations
Functions
Entity Data Model
Conceptual
Mapping
Storage
{ Creating the EDM }
Entity Client
Entity SQL
Object Services
Entity SQL
LINQ To Entities
Familiar ADO.NET object model:
EntityCommand
EntityConnection
EntityDataReader
EntityParameter
EntityTransaction
Text-based results
Read-only
Uses Entity SQL
Queries materialized as Objects
ObjectContext
ObjectQuery<T>
Built on top of Entity Client
Two query options:
Entity SQL
LINQ
Runtime services:
Unit of work
Identity tracking
Eager/explicit loading
Entity SQL
LINQ To Entities
Object Services
Entity Client
ADO.NET Provider
{ Using LINQ to Entities }
Vendor
DB Support
Microsoft
SQL Server
Oracle Sample, Generic Sample
Devart
Oracle, MySQL, Postgress
Phoenix
SQLite
IBM
DB2, Informix Dynamic Server
MySQL AB
MySQL
Npgsql
PostgreSQL
OpenLink
Many via OpenLink ODBC or JDBC
DataDirect
Oracle, Sybase, SQL Server, DB2
Firebird
Firebird
LINQ to SQL
LINQ to Entities
Database
Support
SQL Server
Many
Object
Relational
Mapping
Capabilities
Simple
Complex
Requires
Attributed .NET
Code
No
Yes
Status
Released
Just Released 
LINQ to SQL
var products = from prod in db.Product
where prod.Color == "Blue"
select prod;
LINQ to Entities
var products = from prod in db.Product
where prod.Color == "Blue"
select prod;
In general – LINQ to Entities does more – but not
always!
Only migration that will ever happen is LINQ to
SQL migration to LINQ to Entities
What is it?
HTTP access to an object model exposed as RESTful
Web Services
Data and/or methods
Data returned using ATOM or JSON
Read/Write
Why use it?
Easy to expose data over the internet accessible by
any client
HTTP
Hosting/HTTP Listener
Data Services Runtime
Iqueryable/Ienumerable
[+ IUpdatable]
Data Access Layer
Entity
Framework
Relational
database
Other
sources
Custom
Resources
HTTP Request
URL
Res 1
VERB
Res 2
GET
Payload POST
PUT
XML DELETE
JSON
Res 3
Res 4
HTTP Response
Status
Payload
XML JSON
Provide a type with public properties which
are;
IQueryable<T>, IEnumerable<T>
Also get write access if your type
implements;
IUpdatable
Works well with generated code from;
ADO.NET Entity Framework (ObjectContext)
LINQ to SQL (DataContext*)
{ Data Services }
1990 to
2007 Tables
• Data Access technology remained reasonably
static
• Procedural, API access
• Surfaced the database schema
2008 –
Objects
• LINQ – excellent addition to the .NET languages
• Entity Framework and the EDM – strategic
investment
• Data Services – as easy as it gets?
• Productivity leap
http://blogs.msdn.com/ericnel - all the links
General
ADO.NET Team Blog http://blogs.msdn.com/adonet
Mike in our team http://www.miketaulty.com ( search Entity or LINQ )
Data Platform Developer Centre http://msdn.microsoft.com/engb/data/default.aspx
ADO.NET Entity Framework
EF DM http://blogs.msdn.com/dsimmons
FAQ http://blogs.msdn.com/dsimmons/pages/entity-framework-faq.aspx
Entity Framework Design http://blogs.msdn.com/efdesign/default.aspx
ADO.NET Data Services
Team blog http://blogs.msdn.com/astoriateam
© 2008 Microsoft Ltd. 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.
EDM = Entity Data Model
EF = ADO.NET Entity Framework
ESQL = Entity SQL
LINQ = Language Integrated Query
CSDL = Conceptual Schema Definition Language
SSDL = Store Schema Definition Language
MSDL = Mapping Schema Definition Language
Lambda Syntax = customer.Select(...)
Comprehension Syntax = from c in customer ...
SQL = Structured Query Language 
Provider
Entity
Client
LINQ to Entities
“from o in
orders...”
Other
Entity
Entity Data
Data Model
Model
ADO.NET Data
services
Interceptors
(Query,
Update)
HTTP
Oracle
Provider
Object
Services
Provider
ADO.NET
ESQL
“select o from
orders”
SQL
Custom
SSDL
SSDL
Service
Operations
(Methods)
CSDL
MSL
SSDL
REpresentational State Transfer
Server-side resources identified by a URI
Access is over HTTP, verb tied to action
GET to read the value of a resource
POST to create a new resource
PUT to update an existing resource
DELETE to delete a resource
Returned data is “plain” – XML or JSON
Is this “the death of SOAP”?