Upload
leopoldo-lorenzana
View
4
Download
0
Embed Size (px)
Citation preview
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