Développement d’application avec base de données Semaine 1 : Présentation d’Entity Framework Automne 2015
Qu’est-ce que c’est Entity FrameWork? Histoire de l’entité framework Fonctionnement de l’entité frame work Création d’un Entity Data Model Définition des éléments primaire de l’Entity Data Model Plan de présentation
Un mapping objet-relationnel (en anglais object- relational mapping ou ORM) est une technique de programmation informatique qui crée l'illusion d'une base de données orientée objet à partir d'une base de données relationnelle en définissant des correspondances entre cette base de données et les objets du langage utilisé. relationnel ». [ de données orientée objetbase de données relationnelle Qu’est-ce que c’est? C’est un ORM
Create Read Update Delete ApplicationApplication
Entity Framework permet aux développeurs de créer des applications d’accès aux données en programmant par rapport à un modèle d’application conceptuel au lieu de programmer directement par rapport à un schéma de stockage relationnel. Qu’est-ce que c’est?
Framework.NET 1.0/1.1 : contient les briques fondamentales d’ADO.NET, avec les classes permettant d’accéder, lire, et gérer des données contenues dans une base de données (connection, command, DataReader, DataAdapter, DataTable, DataSet, CommandBuilder, …). Framework.NET 2.0 : ADO.NET évolue. Le Framework.NET propose de nouvelles classes de plus haut niveau offrant plus de possibilités dans l’accès aux données, et nous permettant d’écrire moins de code dans nos applications (TableAdapter, DataSource, …). Framework.NET 3.0 : extensions du Framework 2.0, proposant les extensions suivantes : Windows Communication Foundation (WCF), Windows Presentation Foundation (WPF), Windows Workflow Foundation(WF), et CardSpace. Framework.NET 3.5 : Microsoft fait évoluer les langages C# et VB.NET, de manière à leur ajouter de nouveaux concepts (initialiseur d’objets, méthodes d’extension, inférence de type, type anonyme, expression Lambda, …). L’introduction de ces concepts ont permis d’intégrer dans le jeu instructions des langages, des instructions de requêtage, permettant de requêter différentes sources de données : grappes d’objets (Linq For Object), flux XML (Linq For XML), base de données SQL Server (Linq For SQL, Linq For Entities). Histoire
L’Entity Framework a été introduit la première fois en tant que partie intégrante du.NET Framework et de la version finale de Microsoft Visual Studio SP1 au mois de juillet Cependant, ce n’est qu’à partir de la version contenue dans Visual Studio 2010 et.NET 4 en avril 2010 que les développeurs ont vraiment commencé à l’utiliser. À partir de l’Entity Framework version 4.1, l’Entity Framework ne fait pas partie du.NET Framework, mais repose sur le.NET. Pour obtenir la version la plus récente de l’Entity Framework, utilisez le package « Entity Framework » NuGet.package « Entity Framework » NuGet Histoire
les applications peuvent fonctionner par rapport à un modèle conceptuel plus centré sur les applications, comprenant notamment des types avec héritage, des membres complexes et des relations ; les applications sont libérées des dépendances codées en dur sur un moteur de données ou un schéma de stockage particulier ; les mappages entre le modèle conceptuel et le schéma spécifique au stockage peuvent être modifiés sans changer le code de l’application ; les développeurs peuvent utiliser un modèle objet d’application cohérent qui peut être mappé à différents schémas de stockage implémentés dans divers systèmes de gestion de bases de données ; Avantages
plusieurs modèles conceptuels peuvent être mappés à un schéma de stockage unique ; la prise en charge de la fonctionnalité LINQ (Language- Integrated Query) permet d’effectuer la validation de la syntaxe au moment de la compilation par rapport à un modèle conceptuel. Avantages
Séparation des métadata Présence d’un designer: génération automatique de classes et de fonctionnalités Code First ou Model First Gestion des changements(Change Tracking) Gestion de POCO(Plain Old CLR Objects) Gestion des clés étrangères Data Binding Supporte les anciennes technologies Supporte WCF Intégration facile avec les technologies.NET(Form, WPF, etc.) Utilisation de Linq pour interroger la base de données Fonctionnalités
L’Entity Data Model (EDM) est l’élément centrale de l’ Entity Framework. Il représente le modèle de données du coté applicatif. Celui-ci peut-être complètement différent du modèle de la base de données. Il reflète les besoins de l’application plutôt que ceux de la base de données. Classes, type de données différentes, etc. Entity Data Model(EDM)
Les éléments qui composent l’EDM s’appelle les « Entities ». La création d’un objet est faite à l’aide d’une « factory Method » Ex. CreatePerson Des méthodes sont créés pour notifier la modification de propriétés. Les Entities
Les opérations relatif à la base de données sont masqué par le Provider. Le Provider est développée par la compagnie propriétaire de la base de données. Voici une liste des Provider disponibles: Un Access ou un ODBC n’est pas valide avec l’Entity Framework. Liens avec la base de données
Trois fichier XML: Modèle conceptuel : syntaxe CSDL au format XML (Conceptual Schema Definition Language) qui définit les entités et les associations entre elles. Il décrit les classes utilisées dans l’application pour accéder et gérer les données. Modèle logique : syntaxe SSDL (Store Schema Definition Language). Il définit les tables et l’ensemble des contraintes sur ces tables. Il présente ainsi une vue de la base de données. Schéma de liaison : syntaxe MSL (Mapping Specification Language) qui permet de faire le lien entre les 2 modèles précédents. Il réalise alors les opérations de mapping. Composition de l’EDM
Pour l’exemple, nous allons utiliser la base de données ProgrammingEFDB1 sur le serveur etudiants.cegepsth.qc.ca. L:stlouish MP: Qwerty123! Dans Visual Studio créer l’EDM Let’s GO
Propriétés(scalar): Ce sont les propriétés de l’entité(ContactID, FirstName, LastName, Title, etc.) Propriétés de navigation: Ce sont des pointeurs vers les entités en relations(Adresses, etc.) Les associations: défini la relation entre les entités, elles et définissent la cardinalité. Le container: Let’s GO
Propriétés(scalar): Let’s GO
Propriétés de navigation: Permet dans le code d’avoir accès à la collection Associé. Let’s GO
Les associations: Let’s GO
Les associations: Let’s GO
Nous avons vue le modèle conceptuel, allons voir plus creux. Allons voir sous le capot
CSDL et SSDL
Mapping
Résumé Bref historique d’Entity Framework. Entity Data Model Les éléments des Entities Prochain cours Nous explorerons les différentes façons d’interroger l’Entity Data Model. Conclusion