Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Extensible Storage Engine wikipedia , lookup
Oracle Database wikipedia , lookup
Microsoft Access wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Functional Database Model wikipedia , lookup
Clusterpoint wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Relational model wikipedia , lookup
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”?