What's New for Data?


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • 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.
  • What's New for Data?

    1. 1. Eric Nelson Developer & Platform Group Microsoft Ltd [email_address] http://blogs.msdn.com/ericnel http://twitter.com/ericnel
    2. 2. <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>Deisgn alerts </li></ul></ul><ul><ul><li>Performance </li></ul></ul><ul><ul><li>... </li></ul></ul>
    3. 5. <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. 7. <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. 8. <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. 10. <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. 11. <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. 12. <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. 13. LINQ To Entities Object Services Entity SQL Entity Client ADO.NET Provider
    10. 15. 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
    11. 16. 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. 17. <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. 19. <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 accessible by any client </li></ul></ul>
    14. 20. Data Access Layer Entity Framework Relational database Other sources Data Services Runtime Hosting/HTTP Listener Custom Iqueryable/Ienumerable [+ IUpdatable] HTTP
    15. 21. 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. 22. <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. 25. <ul><li>http:// blogs.msdn.com/ericnel - all the links </li></ul><ul><li>General </li></ul><ul><ul><li>ADO.NET Team Blog http://blogs.msdn.com/adonet </li></ul></ul><ul><ul><li>Mike in our team http://www.miketaulty.com ( search Entity or LINQ ) </li></ul></ul><ul><ul><li>Data Platform Developer Centre http://msdn.microsoft.com/en-gb/data/default.aspx </li></ul></ul><ul><li>ADO.NET Entity Framework </li></ul><ul><ul><li>EF DM http://blogs.msdn.com/dsimmons </li></ul></ul><ul><ul><li>FAQ http://blogs.msdn.com/dsimmons/pages/entity-framework-faq.aspx </li></ul></ul><ul><ul><li>Entity Framework Design http://blogs.msdn.com/efdesign/default.aspx </li></ul></ul><ul><li>ADO.NET Data Services </li></ul><ul><ul><li>Team blog http://blogs.msdn.com/astoriateam </li></ul></ul>
    18. 29. 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. 30. <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>