Eric Nelson Developer & Platform Group Microsoft Ltd [email_address]   http://blogs.msdn.com/ericnel   http://twitter.com/...
<ul><li>Relational </li></ul><ul><ul><li>Improved  </li></ul></ul><ul><ul><ul><li>XML </li></ul></ul></ul><ul><ul><ul><li>...
 
 
<ul><li>What is it? </li></ul><ul><ul><li>Technique for working with relational tables  as if they were objects  in memory...
 
<ul><li>What is it? </li></ul><ul><ul><li>Tools and services to  create an Entity Data Model </li></ul></ul><ul><ul><ul><l...
<ul><li>Application model </li></ul><ul><ul><li>Mapped to a persistence store </li></ul></ul><ul><li>Comprised of three la...
 
<ul><li>Entity Client </li></ul><ul><ul><li>Entity SQL </li></ul></ul><ul><li>Object Services </li></ul><ul><ul><li>Entity...
<ul><li>Familiar ADO.NET object model: </li></ul><ul><ul><li>EntityCommand </li></ul></ul><ul><ul><li>EntityConnection </l...
<ul><li>Queries materialized as Objects </li></ul><ul><ul><li>ObjectContext </li></ul></ul><ul><ul><li>ObjectQuery<T> </li...
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 Sybase...
LINQ to SQL LINQ to Entities Database Support SQL Server Many Object Relational Mapping Capabilities Simple Complex Requir...
<ul><li>LINQ to SQL </li></ul><ul><ul><li>var products = from prod in db.Product </li></ul></ul><ul><ul><li>where prod.Col...
 
<ul><li>What is it? </li></ul><ul><ul><li>HTTP access to an object model  exposed as RESTful Web Services </li></ul></ul><...
Data Access Layer Entity Framework Relational database Other sources Data Services Runtime Hosting/HTTP Listener Custom IQ...
Resources Res 1 Res 2 Res 3 Res 4 HTTP Request URL VERB Payload HTTP Response Status GET POST PUT DELETE XML JSON Payload ...
<ul><li>Provide a  type  with public properties which are; </li></ul><ul><ul><li>IQueryable<T>, IEnumerable<T> </li></ul><...
 
 
<ul><li>http:// blogs.msdn.com/ UKDevEvents </li></ul><ul><ul><li>Post event resources for all Microsoft UK developer focu...
 
 
 
Entity Data Model SSDL SQL Oracle Other SSDL HTTP Entity Client CSDL MSL Object Services ESQL “ select o from orders” LINQ...
<ul><li>RE presentational  S tate  T ransfer </li></ul><ul><ul><li>Server-side resources identified by a URI </li></ul></u...
Upcoming SlideShare
Loading in …5
×

MSDN Roadshow Session 1 - ADO.NEXT – Entity Framework & Data Services

2,004 views

Published on

Did you miss the opportunity to attend the MSDN Roadshow 2008? If so we are doing a Roadshow rerun giving you a second chance to attend this event. Come along if you want to find out about the latest developer tools and technologies from Microsoft. The MSDN team will focus on what’s coming up next this year for .NET developers beyond Visual Studio 2008. We will also look at Silverlight, ASP.NET, ADO.NET and other future bits which involve more code and less PowerPoint. Please be aware that the content for this rerun is exactly that covered in the other MSDN Roadshow 2008 events – so this event is aimed at Developers who could not make those earlier events.

For more details and the original slide deck see http://www.microsoft.com/uk/msdn/events/new/Detail.aspx?id=351

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,004
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
128
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • MSDN Roadshow Session 1 - ADO.NEXT – Entity Framework & Data Services

    1. 3. Eric Nelson Developer & Platform Group Microsoft Ltd [email_address] http://blogs.msdn.com/ericnel http://twitter.com/ericnel
    2. 4. <ul><li>Relational </li></ul><ul><ul><li>Improved </li></ul></ul><ul><ul><ul><li>XML </li></ul></ul></ul><ul><ul><ul><li>UDTs </li></ul></ul></ul><ul><ul><li>New </li></ul></ul><ul><ul><ul><li>Filestream </li></ul></ul></ul><ul><ul><ul><li>Hierarchy ID </li></ul></ul></ul><ul><ul><ul><li>Date & Time </li></ul></ul></ul><ul><ul><ul><li>Spatial data </li></ul></ul></ul><ul><ul><ul><li>Sparse columns and wide tables </li></ul></ul></ul><ul><ul><ul><li>Filtered indexes </li></ul></ul></ul><ul><ul><ul><li>Change tracking </li></ul></ul></ul><ul><ul><ul><li>Table parameters to SP calls </li></ul></ul></ul><ul><ul><ul><li>Resource governor </li></ul></ul></ul><ul><ul><ul><li>SP control and monitoring </li></ul></ul></ul><ul><ul><ul><li>Database compression </li></ul></ul></ul><ul><ul><ul><li>Declarative management </li></ul></ul></ul><ul><ul><ul><li>... </li></ul></ul></ul><ul><li>SQL Server Integration Services </li></ul><ul><ul><li>VSTA replaces VSA </li></ul></ul><ul><ul><li>ADO.NET </li></ul></ul><ul><ul><li>Performance </li></ul></ul><ul><ul><li>Merge </li></ul></ul><ul><ul><li>... </li></ul></ul><ul><li>Reporting Services </li></ul><ul><ul><li>“ IIS free” </li></ul></ul><ul><ul><li>Tablix </li></ul></ul><ul><ul><li>New designer </li></ul></ul><ul><ul><li>... </li></ul></ul><ul><li>BI </li></ul><ul><ul><li>Cube design </li></ul></ul><ul><ul><li>Design alerts </li></ul></ul><ul><ul><li>Performance </li></ul></ul><ul><ul><li>... </li></ul></ul>
    3. 7. <ul><li>What is it? </li></ul><ul><ul><li>Technique for working with relational tables as if they were objects in memory </li></ul></ul><ul><ul><li>Intention is to hide away the complexity of the underlying tables and give a uniform way of working with data </li></ul></ul><ul><li>Why use it? </li></ul><ul><ul><li>Productivity </li></ul></ul><ul><ul><li>Retain database independence </li></ul></ul><ul><li>Notes </li></ul><ul><ul><li>There are many ORMs for .NET developers already in existence. E.g. </li></ul></ul><ul><ul><ul><li>LLBLGen Pro http://www.llblgen.com/ </li></ul></ul></ul><ul><ul><ul><li>Nhibernate http://www.hibernate.org/343.html </li></ul></ul></ul><ul><ul><ul><li>EntitySpaces http://www.entityspaces.net/Portal/Default.aspx </li></ul></ul></ul><ul><ul><li>Objects vs Classes vs Entities </li></ul></ul>
    4. 9. <ul><li>What is it? </li></ul><ul><ul><li>Tools and services to create an Entity Data Model </li></ul></ul><ul><ul><ul><li>EDM gives ORM to SQL Server, Oracle, DB2 etc </li></ul></ul></ul><ul><ul><li>Tools and services for consuming an Entity Data Model </li></ul></ul><ul><li>Why use it? </li></ul><ul><ul><li>Productivity </li></ul></ul><ul><ul><li>Complex mapping between entities and database tables </li></ul></ul><ul><ul><li>Works great with ADO.NET Data Services </li></ul></ul><ul><li>Notes </li></ul><ul><ul><li>Strategic but just released... </li></ul></ul>
    5. 10. <ul><li>Application model </li></ul><ul><ul><li>Mapped to a persistence store </li></ul></ul><ul><li>Comprised of three layers: </li></ul><ul><ul><li>Conceptual (CSDL) </li></ul></ul><ul><ul><li>Mapping (MSL) </li></ul></ul><ul><ul><li>Storage (SSDL) </li></ul></ul><ul><li>Database agnostic </li></ul><ul><li>Comprised of: </li></ul><ul><ul><li>Entities </li></ul></ul><ul><ul><li>Associations </li></ul></ul><ul><ul><li>Functions </li></ul></ul>Conceptual Mapping Storage Entity Data Model
    6. 12. <ul><li>Entity Client </li></ul><ul><ul><li>Entity SQL </li></ul></ul><ul><li>Object Services </li></ul><ul><ul><li>Entity SQL </li></ul></ul><ul><ul><li>LINQ To Entities </li></ul></ul>
    7. 13. <ul><li>Familiar ADO.NET object model: </li></ul><ul><ul><li>EntityCommand </li></ul></ul><ul><ul><li>EntityConnection </li></ul></ul><ul><ul><li>EntityDataReader </li></ul></ul><ul><ul><li>EntityParameter </li></ul></ul><ul><ul><li>EntityTransaction </li></ul></ul><ul><li>Text-based results </li></ul><ul><li>Read-only </li></ul><ul><li>Uses Entity SQL </li></ul>
    8. 14. <ul><li>Queries materialized as Objects </li></ul><ul><ul><li>ObjectContext </li></ul></ul><ul><ul><li>ObjectQuery<T> </li></ul></ul><ul><li>Built on top of Entity Client </li></ul><ul><li>Two query options: </li></ul><ul><ul><li>Entity SQL </li></ul></ul><ul><ul><li>LINQ </li></ul></ul><ul><li>Runtime services: </li></ul><ul><ul><li>Unit of work </li></ul></ul><ul><ul><li>Identity tracking </li></ul></ul><ul><ul><li>Eager/explicit loading </li></ul></ul>
    9. 15. LINQ To Entities Object Services Entity SQL Entity Client ADO.NET Provider
    10. 17. Vendor DB Support Microsoft SQL Server Oracle Sample, Generic Sample Devart Oracle, MySQL, Postgress Phoenix SQLite Sybase SQLAnywhere Npgsql PostgreSQL IBM DB2, Informix Dynamic Server MySQL AB MySQL OpenLink Many via OpenLink ODBC or JDBC DataDirect Oracle, Sybase, SQL Server, DB2 Firebird Firebird
    11. 18. 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 
    12. 19. <ul><li>LINQ to SQL </li></ul><ul><ul><li>var products = from prod in db.Product </li></ul></ul><ul><ul><li>where prod.Color == &quot;Blue&quot; </li></ul></ul><ul><ul><li>select prod; </li></ul></ul><ul><li>LINQ to Entities </li></ul><ul><ul><li>var products = from prod in db.Product </li></ul></ul><ul><ul><li>where prod.Color == &quot;Blue&quot; </li></ul></ul><ul><ul><li>select prod; </li></ul></ul><ul><li>In general – LINQ to Entities does more – but not always! </li></ul><ul><li>Only migration that will ever happen is LINQ to SQL migration to LINQ to Entities </li></ul>
    13. 21. <ul><li>What is it? </li></ul><ul><ul><li>HTTP access to an object model exposed as RESTful Web Services </li></ul></ul><ul><ul><li>Data and/or methods </li></ul></ul><ul><ul><li>Data returned using ATOM or JSON </li></ul></ul><ul><ul><li>Read/Write </li></ul></ul><ul><li>Why use it? </li></ul><ul><ul><li>Easy to expose data over the internet/intranet accessible by any client </li></ul></ul>
    14. 22. Data Access Layer Entity Framework Relational database Other sources Data Services Runtime Hosting/HTTP Listener Custom IQueryable/IEnumerable [+ IUpdatable] HTTP
    15. 23. 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
    16. 24. <ul><li>Provide a type with public properties which are; </li></ul><ul><ul><li>IQueryable<T>, IEnumerable<T> </li></ul></ul><ul><li>Also get write access if your type implements; </li></ul><ul><ul><li>IUpdatable </li></ul></ul><ul><li>Works well with generated code from; </li></ul><ul><ul><li>ADO.NET Entity Framework ( ObjectContext ) </li></ul></ul><ul><ul><li>LINQ to SQL ( DataContext* ) </li></ul></ul>
    17. 27. <ul><li>http:// blogs.msdn.com/ UKDevEvents </li></ul><ul><ul><li>Post event resources for all Microsoft UK developer focused sessions </li></ul></ul><ul><li>The team </li></ul><ul><ul><li>Eric Nelson http://blogs.msdn.com/ericnel </li></ul></ul><ul><ul><li>Mike Ormond http://blogs.msdn.com/mikeormond </li></ul></ul><ul><ul><li>Mike Taulty http://mtaulty.com </li></ul></ul>
    18. 31. 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
    19. 32. <ul><li>RE presentational S tate T ransfer </li></ul><ul><ul><li>Server-side resources identified by a URI </li></ul></ul><ul><ul><li>Access is over HTTP, verb tied to action </li></ul></ul><ul><ul><ul><li>GET to read the value of a resource </li></ul></ul></ul><ul><ul><ul><li>POST to create a new resource </li></ul></ul></ul><ul><ul><ul><li>PUT to update an existing resource </li></ul></ul></ul><ul><ul><ul><li>DELETE to delete a resource </li></ul></ul></ul><ul><ul><li>Returned data is “plain” – XML or JSON </li></ul></ul><ul><li>Is this “the death of SOAP”? </li></ul>

    ×