TECH NEWS
Entity Framework 7 explained
Depuis 2008, Microsoft, avec Entity Framework (ou EF pour les intimes), a la volonté de fournir un outil permettant de faciliter l’accès aux données depuis les applications .NET.
November 2, 2015
Depuis 2008, Microsoft, avec Entity Framework (ou EF pour les intimes), a la volonté de fournir un outil permettant de faciliter l’accès aux données depuis les applications .NET.
Analyse par Yoan Thirion – Consultant .Net chez Agile Partner
Entity Framework en bref
Entity Framework est un framework ORM: Object Relational Mapping. Ce type d’outil rapproche le monde « objet » et le monde « relationnel » (impedence mismatch), permettant ainsi d’associer une ou plusieurs classe(s) avec une table et chaque propriété de la classe avec une colonne de ladite table.
Dans sa version actuelle (version 6), trois approches sont possibles pour utiliser le framework.
- La première est « Model first » permettant de définir, à l’aide d’un outil graphique intégré dans Visual Studio, son modèle (mapping entre les classes entités et le modèle relationnel). C’est à partir de ce modèle que sera créée la base de données.
- On retrouve ensuite l’approche « Database first » permettant de créer son modèle à partir d’une base de données existante.
Dans ces deux approches le modèle est représenté à l’aide d’un fichier edmx, autrement dit, un fichier xml.
- La dernière approche, introduite en version 4, est « Code first ». Ici, les classes (entités) sont crées et la base de données est génèrée à partir de ces classes. Du coup, plus de designer et plus d’edmx.
Cependant, le terme « Code first » n’a peut-être pas été correctement choisi par Microsoft. En effet, contrairement à ce que l’on pourrait penser, Code First ne veut pas forcément dire générer la base de données depuis le modèle, puisqu’il est également possible d’utiliser pour cibler une base de données existante comme l’indique le schéma ci-dessous.
Ce qui est important à savoir est que la version 7 n’est pas une banale évolution mais bien une réécriture complète du framework. Du coup, finit les approches « Database first » et « Model First », la firme de Redmond a décidé de ne conserver que l’approche « Code First ».
La vision de Microsoft pour le produit est la suivante « New platforms, new data stores », c’est-à-dire une version plus portable, permettant de supporter de nouvelles plateformes telles que Windows phone et Windows store.
On notera parmi les évolutions les plus marquantes le support de nouveaux « providers », relationnels ou non, tels qu’Azure Table Storage (No SQL) ou Redis (datastore in-memory).
Dans un souci d’ouverture, EF 7 supportera les systèmes Linux et Macintosh sur lesquels Mono aura été installé. En plus de ces nouveautés, l’équipe a également amélioré certains points: les requêtes générées sont plus propres et plus rapides, les batch insert/update/delete sont inclus dans le framework (plus besoin d’utiliser des extensions comme EntityFramework Extended)…
On vous le dit
Pas de panique, le support d’Entity Framework 6 ne va pas s’arrêter du jour au lendemain. Du coup, ne vous empressez pas de migrer vers EF 7. D’ailleurs vous auriez du mal; celui-ci n’est, à l’heure actuelle, qu’en version bêta (on peut s’attendre à une release pour début 2016).
Avec EF7 Microsoft frappe fort et continue sur sa logique d’ouverture. Il n’y aura pas de surprises, avec la simplicité d’écriture de nouveaux providers, de voir dans les prochains mois, émerger sur Github, de nouveaux développements permettant de l’utiliser sur des bases de données NoSQL à la mode tel qu’Elastic Search.
Ce que nous pouvons vous dire c’est que nous continuerons à le plébisciter auprès de nos clients puisque, pour nous, il reste l’un des compagnons idéals pour toutes les équipes de développement travaillant dans l’écosystème Microsoft.