développement dapplication avec base de données semaine 1 : présentation dentity framework...

25
Développement d’application avec base de données Semaine 1 : Présentation d’Entity Framework Automne 2013

Upload: leonce-baudoin

Post on 04-Apr-2015

110 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

Développement d’application avec base de donnéesSemaine 1 : Présentation d’Entity Framework

Automne 2013

Page 2: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

Qu’est-ce que c’est Entity FrameWork? Création d’un Entity Data Model Définition des éléments primaire de l’Entity

Data Model

Plan de présentation

Page 3: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

ADO.NET Entity Framework .NET Framework 4.5

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. L’objectif est de diminuer la quantité de code et les besoins en maintenance pour les applications orientées objet.

Qu’est-ce que c’est?

Page 4: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

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

Page 5: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

ADO.NET Entity Framework .NET Framework 4.5 L’Entity Framework a été introduit la première fois en tant

que partie intégrante du .NET Framework(3.5) et de la version finale de Microsoft Visual Studio SP1 au mois de juillet 2008.  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.

Histoire

Page 6: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

ADO.NET Entity Framework .NET Framework 4.5 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 ;

Présentation

Page 7: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

Présentation

Page 8: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

ADO.NET Entity Framework .NET Framework 4.5

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.

Présentation

Page 9: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

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)

Page 10: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

Les éléments qui composent l’EDM s’appelle les « Entities ».

Il est possible d’adapter le modèle grâce à l’héritage, composition, etc.

Les Entities

Page 11: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

Les Entities

Page 12: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

Un avantages de l’Entities Framework est l’indépendance entre la base de données et l’application.

Les opérations relatif à la base de données sont masqué par le Provider.

Le Provider est développer par la compagnie propriétaire de la base de données.

Voici une liste des Provider disponibles: http://msdn.microsoft.com/en-us/data/dd363565.aspx.

Un ODBD n’est pas valide avec l’Entity Framework.

Liens avec la base de données

Page 13: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

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

Page 14: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

An Entity Data Model (EDM) is the bridge between your application and your data store. An EDM provides you with the ability to work with a conceptual view of your data rather than the actual database schema. .NET APIs provided by the Entity Framework use an EDM for every interaction with the data store, whether it is to retrieve or to save data. The Entity Framework tools generate classes from this model that enable you to work with objects described by the EDM.

Récapitulons

Page 15: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

Pour l’exemple, nous allons utiliser la base de données ProgrammingEFDB1 sur le serveur 10.5.1.176.

Dans Visual Studio créer l’EDM

Let’s GO

Page 16: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

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é.

Let’s GO

Page 17: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

Propriétés(scalar):

Let’s GO

Page 18: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

Propriétés de navigation: Permet dans le code d’avoir accès à la collection Associé.

Let’s GO

Page 19: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

Les associations:

Let’s GO

Page 20: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

Les associations:

Let’s GO

Page 21: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

Container(ConceptualEntityModel): Groupe logique représentant le groupe d’entities. Vous pouvez modifier le nom, namespace, règles de pluriel, etc.

Propriété d’un entité: nom de l’entité et autres propriétés.

Let’s GO

Page 22: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

Nous avons vue le modèle conceptuel, allons voir plus creux.

Allons voir sous le capot

Page 23: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

CSDL et SSDL

Page 24: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

Mapping

Page 25: Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013

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