Jose Murillo Responsable Programas Técnicos Partners División de Desarrollo y Plataforma (DPE)...

Post on 03-Jan-2015

3 views 0 download

Transcript of Jose Murillo Responsable Programas Técnicos Partners División de Desarrollo y Plataforma (DPE)...

Jose MurilloResponsable Programas Técnicos PartnersDivisión de Desarrollo y Plataforma (DPE)Microsoft Spain

La Plataforma de Acceso a DatosLanguage INtegrated Query (LINQ)

LINQ to Object, DataSets y XMLLINQ to SQL

ADO .NET Entity Framework Entity Data Model (EDM)LINQ to Entities

Modelos de Datos AvanzadosRecursos

Lógica de Negocio

Sistemas Externos

Capa de Datos

PresentaciónModelo

Conceptual (EDM)

EntidadesRelacion

es

Modelo de Objetos

(Datasets/Objetos)EntidadesRelacion

es

La Plataforma de Acceso a DatosLanguage INtegrated Query (LINQ)

LINQ to Object, DataSets y XMLLINQ to SQL

ADO .NET Entity Framework Entity Data Model (EDM)LINQ to EntitiesModelos de Datos Avanzados

Recursos

Lenguaje de consultas únicoDatos == ObjetosFunciona contra objetos, relacional y XML

.NET Language Integrated Query (LINQ).NET Language Integrated Query (LINQ)LINQ LINQ

to to DataSDataS

etsets

LINQ LINQ to to

SQLSQL

LINQ LINQ to to

EntitieEntitiess

LINQ LINQ to to

XMLXML

LINQ LINQ to to

ObjecObjectsts

C# 3.0C# 3.0

In-MemoryIn-Memory ObjectsObjects RelacionaRelaciona

llEDMEDM

Visual Visual Basic 9.0Basic 9.0 OtrosOtros

<XML<XML>></</

XML>XML>

Lenguaje de Consulta Integrado - RADVista de la BD fuertemente tipadaExtensibilidad de CódigoSoporte de herenciaSoporta procedimientos almacenadosIncluido e integrado con Visual Studio 2008Limitaciones

Solo soporta la familia SQL ServerNo hay soporte de mapeos complejos (EF)

AplicaciónAplicación

LINQ to LINQ to SQLSQL

from c in db.Customerswhere c.City == "London"select c.CompanyName

SELECT CompanyNameFROM CustomerWHERE City = 'London'

db.Customers.Add(c1);c2.City = “Seattle";db.Customers.Remove(c3);

INSERT INTO Customer …UPDATE Customer …DELETE FROM Customer …

La Plataforma de Acceso a DatosLanguage INtegrated Query (LINQ)

LINQ to Object, DataSets y XMLLINQ to SQL

ADO .NET Entity Framework Entity Data Model (EDM)LINQ to EntitiesModelos de Datos Avanzados

Recursos

La siguiente capa del stack de ADO.NETDescribe tus datos usando un modelo conceptual y ADO.NET hará el resto

Herramientas de diseño para el Entity Data ModelMapeo declarativo con la Base de DatosGeneración de clases .NET para las entidades de negocioConsulta utilizando LINQ to Entities y Entity SQLSe encarga de las actualizaciones automáticamente con T-SQL o procedimientos

Actualmente en Beta3

Entity Data Model (EDM)Vocabulario para describir el esquema del modelo conceptual“Dibuja la aplicación que quieras ver”

EntidadesTipos distintosPropiedades simples o complejas

RelacionesDescribe las relaciones entre las entidadesDeclaradas explícitamente: Nombre y cardinalidad

Espacio SAlmacén o StorageSSDL (Store Squema Definition Language)Tablas, Vistas, SP…Consulta igual que ADO.NET 2.0

Mapeado O-C mediante atributosMapeado O-C mediante atributos

Mapeado C-S mediante esquema MSLMapeado C-S mediante esquema MSL

Espacio CModelo ConceptualCSDL (Conceptual Schema Definition Language)Entidades, AsociacionesEntity Data Provider

EntityConnectionEntityCommandEntityDataReader

E-SQLNecesitamos conocer:

SSDLMSL ( Mapeado entre SSDL y CSDL )

Mapeado O-C mediante atributosMapeado O-C mediante atributos

Mapeado C-S mediante esquema MSLMapeado C-S mediante esquema MSL

Espacio OEspacio superiorNivel de objeto en código.Mapeado con CSDL mediante atributos Con E-SQL

Para consultar usamos ObjectQuery<T>

Con LINQ to Entities

Mapeado O-C mediante atributosMapeado O-C mediante atributos

Mapeado C-S mediante esquema MSLMapeado C-S mediante esquema MSL

Nivel Se Modela Con Contiene Se Consulta Con

Espacio O Código .NET Clases, propiedades …

- ObjectQuery<T> con E- SQL- Sentencias LINQ

Mapeado 1:1 Mediante atributos

Espacio C Conceptual SchemaDefinition Language

Entidades, Asociaciones.. Conjuntos

- EntityProvider utilizando E-SQL

Mapeado mediante MSL

Espacio S Store SchemaDefinition Language

Tablas, Vistas, procedimientos…

- ADO.NET con el proveedor específico

.NET Language Integrated Query (LINQ).NET Language Integrated Query (LINQ)LINQ LINQ

to to DataSDataS

etsets

LINQ LINQ to to

SQLSQL

LINQ LINQ to to

EntitieEntitiess

LINQ LINQ to to

XMLXML

LINQ LINQ to to

ObjecObjectsts

C# 3.0C# 3.0

In-MemoryIn-Memory ObjectsObjects RelacionaRelaciona

llEDMEDM

Visual Visual Basic 9.0Basic 9.0 OtrosOtros

<XML<XML>></</

XML>XML>

La flexibilidad del modelado y mapeo del EF...con la productividad de LINQRoadmap

Framework in Beta 3Herramientas en CTP

Almacén

.NET Provider

V2.0

Modelo Conceptual

.NET Provider(eSQL)

LINQV3.0

Map

eo

Tipos complejosPor ejemplo un campo “Dirección”

Herencias por JerarquíaUna tabla física para todos los tipos con un campo discriminador

Herencias por SubTipoUna tabla física por cada tipo en la jerarquía con relaciones 1:1 en el modelo relacional

Herencias por TipoMúltiples tablas para un mismo tipoDos tablas para una misma entidad

Procedimientos Almacenados

Ignorancia de la Persistencia (PI)Complete Persistence IgnorancePOCO (Plain Old Code) – Atributos en ClasesIPOCO – Implementación de InterfacesClases Prescriptivas – Herencia de clases base

EF – Actualmente IPOCO y HerenciaMayor rendimiento y servicios base

Futuro EF – Mayor independenciaPOCO con metadatos externos

Otros proveedores además de SQL Server

La Plataforma de Acceso a DatosLanguage INtegrated Query (LINQ)

LINQ to Object, DataSets y XMLLINQ to SQL

ADO .NET Entity Framework Entity Data Model (EDM)LINQ to EntitiesModelos de Datos Avanzados

Recursos

Recursos

Sistemas Externos

Capa de Datos

Presentación

Lógica de Negocio

Modelo Conceptual

(EDM)Entidade

sRelaciones

Modelo de Objetos

(Datasets/Objetos)EntidadesRelacion

es

Enlaces de InterésEnlaces de Interés

Data Team site in MSDNhttp://msdn.microsoft.com/dataADO.NET Team bloghttp://blogs.msdn.com/adonetCodePlex ADO.NET Sampleshttp://www.codeplex.com/adonetsamples Carl Perry - Senior Program Manager Leadhttp://blogs.msdn.com/cperryPablo Castro - Technical Leadhttp://blogs.msdn.com/pabloDaniel Simmonshttp://blogs.msdn.com/dsimmonsZlatko Michailov http://blogs.msdn.com/esql

“Entity Framework en profundidad”Editorial Krasis

Unai Zorrilla CastroOctavio Hernandez LealEduardo Quintás Serantes

Sesiones RelacionadasLINQ a Fondo – D136 – 26/Feb – 15hEF a Fondo – D137 – 26/Feb – 15hAcelera el Desarrollo con Frameworks – D235 – 27/Feb – 12h30