Eric Nelson Developer & Platform Group Microsoft Ltd [email_address]   http://blogs.msdn.com/ericnel   http://twitter.com/ericnel
Relational Improved  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 ... SQL Server Integration Services VSTA replaces VSA ADO.NET Performance Merge ... Reporting Services “ IIS free” Tablix New designer ... BI Cube design Deisgn alerts Performance ...
 
 
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 Conceptual Mapping Storage Entity Data Model
 
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
LINQ To Entities Object Services Entity SQL Entity Client ADO.NET Provider
 
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 == &quot;Blue&quot; select prod; LINQ to Entities var products = from prod in db.Product where prod.Color == &quot;Blue&quot; 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
Data Access Layer Entity Framework Relational database Other sources Data Services Runtime Hosting/HTTP Listener Custom Iqueryable/Ienumerable [+ IUpdatable] HTTP
Resources Res 1 Res 2 Res 3 Res 4 HTTP Request URL VERB Payload HTTP Response Status GET POST PUT DELETE XML JSON 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* )
 
 
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/en-gb/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
 
 
 
Entity Data Model SSDL SQL Oracle Other SSDL HTTP Entity Client CSDL MSL Object Services ESQL “ select o from orders” LINQ to Entities “ from o in orders...” ADO.NET Data services Provider Provider Provider SSDL Custom Interceptors (Query, Update) Service Operations (Methods) Entity Data Model
RE presentational  S tate  T ransfer 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”?

What's New for Data?

  • 1.
    Eric Nelson Developer& Platform Group Microsoft Ltd [email_address] http://blogs.msdn.com/ericnel http://twitter.com/ericnel
  • 2.
    Relational Improved 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 ... SQL Server Integration Services VSTA replaces VSA ADO.NET Performance Merge ... Reporting Services “ IIS free” Tablix New designer ... BI Cube design Deisgn alerts Performance ...
  • 3.
  • 4.
  • 5.
    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
  • 6.
  • 7.
    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...
  • 8.
    Application model Mappedto a persistence store Comprised of three layers: Conceptual (CSDL) Mapping (MSL) Storage (SSDL) Database agnostic Comprised of: Entities Associations Functions Conceptual Mapping Storage Entity Data Model
  • 9.
  • 10.
    Entity Client EntitySQL Object Services Entity SQL LINQ To Entities
  • 11.
    Familiar ADO.NET objectmodel: EntityCommand EntityConnection EntityDataReader EntityParameter EntityTransaction Text-based results Read-only Uses Entity SQL
  • 12.
    Queries materialized asObjects 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
  • 13.
    LINQ To EntitiesObject Services Entity SQL Entity Client ADO.NET Provider
  • 14.
  • 15.
    Vendor DB SupportMicrosoft 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
  • 16.
    LINQ to SQLLINQ to Entities Database Support SQL Server Many Object Relational Mapping Capabilities Simple Complex Requires Attributed .NET Code No Yes Status Released Just Released 
  • 17.
    LINQ to SQLvar products = from prod in db.Product where prod.Color == &quot;Blue&quot; select prod; LINQ to Entities var products = from prod in db.Product where prod.Color == &quot;Blue&quot; 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
  • 18.
  • 19.
    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
  • 20.
    Data Access LayerEntity Framework Relational database Other sources Data Services Runtime Hosting/HTTP Listener Custom Iqueryable/Ienumerable [+ IUpdatable] HTTP
  • 21.
    Resources Res 1Res 2 Res 3 Res 4 HTTP Request URL VERB Payload HTTP Response Status GET POST PUT DELETE XML JSON Payload XML JSON
  • 22.
    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* )
  • 23.
  • 24.
  • 25.
    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/en-gb/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
  • 26.
  • 27.
  • 28.
  • 29.
    Entity Data ModelSSDL SQL Oracle Other SSDL HTTP Entity Client CSDL MSL Object Services ESQL “ select o from orders” LINQ to Entities “ from o in orders...” ADO.NET Data services Provider Provider Provider SSDL Custom Interceptors (Query, Update) Service Operations (Methods) Entity Data Model
  • 30.
    RE presentational S tate T ransfer 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”?

Editor's Notes

  • #2 06/06/09 23:05 © 2007 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.