220 likes | 326 Views
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
E N D
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 • Haut niveau de certification • 2 agences à Lille et Paris, couverture nationale • Centre des Usages pour la région Nord • 3 grands domaines d’expertise technologique • Plateforme 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
Agenda • Introduction à Entity Framework • Mapping • Entity Framework 4 • Les nouveautés • Model First • Scenario POCO : objets ignorants la persistance • Templates de génération de code T4 • Scenarii N-Tiers
Introduction à Entity Framework • Object-RelationalMapping • Principes • Mapping • … • Pourquoi ? • Gain de productivité • Complexité du mapping entre les objets métiers et la base de données gérée par le framework • Requê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)
Séparation : Modèle Conceptuel / Modèle Relationnel • Entités, Relations • Contraintesréférentielles • Target de l’application Conceptual StoreOrder SalesPerson SalesOrder • Tables, rows, keys • PK/FK constraints • Normalization • Data independence Employee Contact SalesPerson SalesOrder Logical • Record formats, file groups • Indexes, file partitions • Apps unaware of this level Employee StoreOrder Contact SalesOrder SalesPerson Physical
Entity Data Model (EDM) Storage Model Map Conceptual Model Database Objects Schema Entity Data Model Schema *.SSDL *.MSL *.CSDL Relational Database OO Classes Source Julia Lerman, www.thedatafarm.com
Démo Mapping
Entity Framework 4 • Intégration des FK • LazyLoading • Model First • POCO • Amélioration du designer • Fonctions CSDL • Amélioration des requêtes SQL générées • Ajouts de règles de validations au niveau du modèle • …
Différentes possibilités : Clés du succès • Je commence mon application par la base de données • “La base de donnéesreprésente la vérité” • Pourquoi ? Elle existe déjà • Que faire ? Importer le modèle de stockagedansl’edmx et l’enrichir • Je commence avec monmodèleedmx • “Le modèleconceptuelest la vérité” • Pourquoi ? Je veuxséparermon code de la base formellement et surtout je pars de zéro • Que faire ? Je créemonmodèle, je génère ma base et ma couched’entité à partir du modèle • Je commence par ma couche objet à base de classes .net • “Mon code contient la vérité” • Pourquoi ? Mon analyseestfondéesurl’objet, la conception de la base de donnéesestfaiteindépendament • Que faire ? Je définimes classes, je créemon context et je mappe ma conception objet sur la conception relationnelle
Démo Model First
Démo Model & DB First
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
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
Démo Customisation des templates MS
Scenarii N-Tiers • Il existe des technologies qui permettent d’exposer « sans effort » les entités à travers des services : • ADO.Net Data Services • RIA Services • Ces technologies ont des limites • Pour palier cela, l’utilisation de WCF est nécessaire
Scenarii N-Tiers avec WCF • Le tracking des modifications est effectué par le contexte Entity Framework • Comme les entités sont sérialisées sans ce context, par défaut, les changements côté client ne sont pas trackés • Il existe des palliatifs fastidieux et souvent non optimaux • Nouveauté de EF4 : Self-TrackingEntities (template T4) • Les entités sont capables de tracker elles-mêmes les modifications • Le trackingfait partie de l’entité. Il est sérialisé avec elle
Exploiter la puissance de T4 • T4 n’est pas limité à la génération d’entité et de contexte • On peut imaginer une génération automatique des canevas de services WCF liés aux entités • Et bien plus…
Démo Scenario N-Tiers avec WCF généré par T4