Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

What's New for Data?


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

What's New for Data?

  1. 1. Eric Nelson Developer & Platform Group Microsoft Ltd [email_address]
  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 </li></ul></ul></ul><ul><ul><ul><li>Nhibernate </li></ul></ul></ul><ul><ul><ul><li>EntitySpaces </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:// - all the links </li></ul><ul><li>General </li></ul><ul><ul><li>ADO.NET Team Blog </li></ul></ul><ul><ul><li>Mike in our team ( search Entity or LINQ ) </li></ul></ul><ul><ul><li>Data Platform Developer Centre </li></ul></ul><ul><li>ADO.NET Entity Framework </li></ul><ul><ul><li>EF DM </li></ul></ul><ul><ul><li>FAQ </li></ul></ul><ul><ul><li>Entity Framework Design </li></ul></ul><ul><li>ADO.NET Data Services </li></ul><ul><ul><li>Team blog </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>