Course objectives
La majorité des applications d’entreprises actuelles doit pouvoir accéder à un volume important de données de nature hétérogène. ADO.NET Entity Framework permet aux programmes de ne pas être liés à un schéma de stockage particulier (relationnel par exemple). Concrètement, il suffit pour le développeur de définir un modèle conceptuel centré sur l’application ainsi qu’un mappage pour faire le lien entre ce modèle et le schéma spécifique du stockage. En cas d’évolution (par exemple format de stockage XML au lieu de relationnel), il n’y aura pas à intervenir sur le code de l’application mais uniquement au niveau du mappage. Autrement dit, le développeur s’éloigne des contraintes de stockage et rend son application plus facile à lire, à écrire et à maintenir en manipulant des objets proches de son application et non des « objets de stockage ». L’aspect relationnel, et dans son sillage le SQL, n’étant donc plus « obligatoirement » présents, d’autres concepts seront utilisés pour accéder aux données comme LINQ, WCF, Web Services, etc.
Cette formation ADO.NET Entity Framework vous apprendra à définir une architecture complète d’accès aux données dans le respect des bonnes pratiques professionnelles et des performances.
Concrètement, ce cours vous permettra de :
- Savoir utiliser les datasets proposés par ADO.NET
- Comprendre la philosophie et l’architecture de ADO.NET Entity Framework
- Apprendre à exécuter des requêtes via un objet de commande
- Construire des modèles de données d’entité (Entity Data Model)
- Manipuler les données à travers ces modèles (création, mise à jour, suppression)
- Gérer la concurrence et les transactions dans un contexte multi-utilisateurs
- Récupérer les données à travers des services Web (REST) ou WCF
- Être capable d’écrire des requêtes LINQ (Language Integrated Query)
- Comprendre les nouveautés et la philosophie de Entity Framework Core ainsi que les différences et points communs avec EF67
Who is this course for?
Ce stage s’adresse aux développeurs et chefs de projets.
Prerequisites
Pour suivre ce cours dans de bonnes conditions, il vous faut avoir certaines connaissances sur le langage C#. Ces connaissances s’acquièrent en suivant la formation « C#7, Développer en .NET 4.7 avec Visual Studio 2017 » (SLVS7).
Programme
Architecture et technologies d’accès aux données
- Les technologies d’accès aux données (API diverses, DataSet, Entity) Avantages et inconvénients des différentes architectures Problématique des transactions pour le développeur Performances et architectures Limites de ADO.NET et apports de ADO.NET Entity Framework Présentation de Entity Framework Core (.NET Core)
Le modèle historique ADO.NET
- Récupération et modification de données en utilisant les commandes ADO.NET Récupération et modification de données en utilisant les DataSets Gestion de transactions et gestion de la concurrence dans des scénarios multi-utilisateurs
Travaux Pratiques :
Exploitation des données à partir d’une source ADO.NET
LINQ et ADO.NET
- Philosophie et champs d’application de LINQ Interrogation riche et optimisée du dataset avec LINQ to DataSet LINQ to Objects Interroger un Entity Data Model ave LINQ to Entities LINQ to XML
Travaux Pratiques :
Requêtage sur un fichier XML avec LINQ to XML
Entity Data Models (conception)
- Ne pas se soucier du format des sources (SGBDR, XML, tableur, texte, etc.) Savoir concevoir un modèle de données d’entité Le mapping entre les données et le modèle (fichier .edmx) Les outils de Visual Studio 2017 (Entity Designer, Wizard, etc.) Synthèse sur les différentes approches de conception (DataBase First, Model First, Code First)
Travaux Pratiques :
Utilisation des outils de Visual Studio 2017 pour concevoir et générer une base de données à partir d’un modèle
Génération d’une base de données à partir de classes (Code First)
Entity Data Models (interrogation)
- Récupérer des données en utilisant LINQ to Entities Récupérer des données en utilisant Entity SQL Récupérer des données en utilisant le fournisseur EntityClient Récupérer des données en utilisant des procédures stockées Test unitaire sur le code d’accès aux données
Travaux Pratiques :
Connexion à différentes sources de données à l’aide des modèles de données d’entité
Création, mise à jour et suppression de données d’entité
- Comprendre le suivi des modifications dans Entity Framework Modifier des données dans un modèle de données d’entité
Travaux Pratiques :
Mettre à jour des données à partir d’un modèle de données d’entité
Gestion de scénarios multi-utilisateurs en utilisant les services d’objet
- Gestion de la concurrence dans Entity Framework Support des transactions dans Entity Framework
Travaux Pratiques :
Implémentation de la gestion des transactions à l’aide d’Entity Framework
Construire des solutions optimisées en utilisant les services d’objet
- Les étapes d’exécution de requête Suivi des modifications et matérialisation d’objet Utilisation de requêtes compilées Utilisation des vues Entity Framework générées à la conception Surveillance des performances Exécuter des modifications de données asynchrones
Travaux Pratiques :
Mise en place des optimisations à l’aide d’Entity Framework
Exemple de supervision des performances
Personnalisation d’entités et construction de classes d’entité personnalisées
- Surcharge des classes générées Utilisation de modèles pour personnaliser des entités Création et utilisation de classes d’entité personnalisées
Travaux Pratiques :
Création et utilisation de classes d’entité personnalisées
Utilisation des classes POCO (“plain old” CLR Objects) avec Entity Framework
- Conditions pour l’utilisation des classes POCO Classes POCO et chargement tardif Classes POCO et suivi des modifications Extensions des types entité
Travaux Pratiques :
Création et utilisation des classes POCO et analyse des impacts
Construire une solution n-tiers en utilisant Entity Framework
- Conception d’une solution n-tiers Définition d’opérations et implémentation des structures de transport de données Protéger les données et les opérations
Gestion des mises à jour dans une solution n-tiers en utilisant Entity Framework
- Suivi des entités et persistance des modifications Gestion d’exceptions dans une solution n-tiers
Travaux Pratiques :
Création d’une application utilisant une architecture n-tiers et implémentation de la couche d’accès aux données
Construire des solutions occasionnellement connectées
- Mise en cache de données hors-ligne en utilisant XML
Services de données WCF
- Introduction aux services de données WCF Création d’un service de données WCF Consommation d’un service de données WCF Création, mise à jour et suppression de données dans un service de données WCF Utilisation des services de données WCF avec des données non relationnelles Protection des données et des opérations dans un service de données WCF Prévenir les mises à jour non autorisées et améliorer les performances
Travaux Pratiques :
Création d’un service de données WCF permettant de récupérer toutes les publications d’un auteur.
Récupération des données dans notre application.
Web Service et données
- Qu’est-ce qu’une application ASP.NET ? Principes des Web Services Publication d’un Web Service Exemples de Web Services avec C# 6/7, ASP.NET, et IIS
Travaux Pratiques :
Création de Web Service sous Visual Studio 2017, utilisation pour alimenter une application WinForms
Envoi de mails par notre application via un Web Service
Présentation de Entity Framework Core
- Philosophie de EF Core Que change la dimension Open Source concrètement pour le développeur ? Classes et concepts communs entre Entity Framework 6 (EF6) et Entity Framework Core Le cœur et les services optionnels Les performances par rapport à EF6 Gestion du stockage des providers de logs simplifiée Tests et provider in memory La nouvelle DOTNET CLI (base, DbContext, migration) L’avenir de EF Core
Topics: .NET

