Top Banner
22

Entity Framework 4

Jan 01, 2016

Download

Documents

erich-woodard

Entity Framework 4. Alexandre EQUOY Access-IT http://blogs.access-it.net. Matthieu MEZIL Access-IT. http://blogs.codes-sources.com/matthieu. Access It en quelques mots…. Consulting/expertise, réalisation (projet /assistance technique) et formation (CPLS) sur les technologies Microsoft - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Entity Framework 4
Page 2: Entity Framework 4

22

Entity Framework 4

Alexandre EQUOYAccess-IThttp://blogs.access-it.net

Matthieu MEZILAccess-IT

http://blogs.codes-sources.com/matthieu

Page 3: Entity Framework 4

33

Access It en quelques mots…

Consulting/expertise, réalisation (projet /assistance technique) et formation (CPLS) sur les technologies Microsoft

Haut niveau de certification2 agences à Lille et Paris, couverture nationaleCentre des Usages pour la région Nord

3 grands domaines d’expertise technologiquePlateforme applicative : SharePoint, SQL Server & BI, BizTalk.Net : architecture, Framework & langages, RIA/RDA (Silverlight, WPF, Surface), industrialisation/ALM (TFS/VSTS)…Infrastructure : poste de travail, serveurs, virtualisation, messagerie, annuaire…

http://www.access-it.fr

Page 4: Entity Framework 4

44

Agenda

Introduction à Entity FrameworkMappingEntity Framework 4

Les nouveautésModel FirstScenario POCO : objets ignorants la persistance

Templates de génération de code T4Scenarii N-Tiers

Page 5: Entity Framework 4

55

Introduction à Entity Framework

Object-Relational MappingPrincipesMapping…

Pourquoi ?Gain de productivité Complexité du mapping entre les objets métiers et la base

de données gérée par le frameworkRequêtage sur le modèle indépendamment de la base de

données via LINQ (entre autre)Le modèle est bien plus qu’un simple mapping, il est

possible de l’enrichir (métadonnées par exemple)

Page 6: Entity Framework 4

66

Séparation : Modèle Conceptuel / Modèle Relationnel

Conc

eptu

al •Entités, Relations• Contraintes référentielles• Target de l’application

SalesPerson

SalesOrder

StoreOrder

SalesPerson

Employee StoreOrder

Phys

ical

Contact

• Record formats, file groups• Indexes, file partitions• Apps unaware of this levelSalesOrder

Logi

cal

• Tables, rows, keys• PK/FK constraints• Normalization• Data independence

SalesPerson SalesOrder

Employee Contact

Page 7: Entity Framework 4

77

Entity Data Model (EDM)

Relational Database

DatabaseObjectsSchema

Storage Model

*.MSL*.SSDL

Map

OO Classes

Entity Data ModelSchema

Conceptual Model

*.CSDL

Source Julia Lerman, www.thedatafarm.com

Page 8: Entity Framework 4

88

DémoMapping

Page 9: Entity Framework 4

99

Entity Framework 4

Intégration des FKLazy LoadingModel FirstPOCOAmélioration du designerFonctions CSDLAmélioration des requêtes SQL généréesAjouts de règles de validations au niveau du modèle…

Page 10: Entity Framework 4

1010

Différentes possibilités : Clés du succès

Je commence mon application par la base de données“La base de données représente la vérité”Pourquoi ? Elle existe déjàQue faire ? Importer le modèle de stockage dans l’edmx et l’enrichir

Je commence avec mon modèle edmx“Le modèle conceptuel est la vérité”Pourquoi ? Je veux séparer mon code de la base formellement et surtout je pars de zéroQue faire ? Je crée mon modèle, je génère ma base et ma couche d’entité à partir du modèle

Je commence par ma couche objet à base de classes .net“Mon code contient la vérité”Pourquoi ? Mon analyse est fondée sur l’objet, la conception de la base de données est faite indépendamentQue faire ? Je défini mes classes, je crée mon context et je mappe ma conception objet sur la conception relationnelle

Page 11: Entity Framework 4

1111

DémoModel First

Page 12: Entity Framework 4

1212

DémoModel & DB First

Page 13: Entity Framework 4

1313

Template T4 : Augmenter la productivité

Certaines problématiques sont récurrentes :Génération d’entitéCertaines méthodes de services ( GetCustomers,

GetOrders,…)

N'attendez plus : adoptez le réflexe T4

Page 14: Entity Framework 4

1414

Template T4 : Utilisation de l'EDM pour générer le code

Template qui existe dans Visual Studio depuis 2005 mais « caché »

Microsoft fournit des API permettant d’accéder aux Metadonnées de l’EDM

Microsoft fournit les templates de génération d’entités et de contexte se basant sur ces métadonnées

Possibilité de customiser soi-même ces templates

Page 15: Entity Framework 4

1515

DémoCustomisation des templates MS

Page 16: Entity Framework 4

1616

Scenarii N-Tiers

Il existe des technologies qui permettent d’exposer « sans effort » les entités à travers des services :

ADO.Net Data ServicesRIA Services

Ces technologies ont des limitesPour palier cela, l’utilisation de WCF est nécessaire

Page 17: Entity Framework 4

1717

Scenarii N-Tiers avec WCF

Le tracking des modifications est effectué par le contexte Entity FrameworkComme les entités sont sérialisées sans ce context, par défaut,

les changements côté client ne sont pas trackésIl existe des palliatifs fastidieux et souvent non optimaux

Nouveauté de EF4 : Self-Tracking Entities (template T4)Les entités sont capables de tracker elles-mêmes les

modificationsLe tracking fait partie de l’entité. Il est sérialisé avec elle

Page 18: Entity Framework 4

1818

Exploiter la puissance de T4

T4 n’est pas limité à la génération d’entité et de contexteOn peut imaginer une génération automatique des canevas de

services WCF liés aux entitésEt bien plus…

Page 19: Entity Framework 4

1919

DémoScenario N-Tiers avec WCF généré par T4

Page 20: Entity Framework 4

2020

http://msdn.microsoft.com/fr-fr/msdn.saga-efx.aspx

Page 21: Entity Framework 4

2121

Questions ?

Page 22: Entity Framework 4