Gestion des données avec Linq
Référence : LINQ
Durée : 3 jours (21 heures)
Le traitement des données et leur persistance est un sujet à lui tout seul. Microsoft nous propose une approche révolutionnaire du problème, faisant intervenir des extensions du langage C#, ainsi la programmation devient déclarative. Le travail sur les données se fait grâce à des extensions LINQ (Language INtegrated Query) utilisables quelle que soit la provenance des données : objets et collections en mémoire, documents XML ou bien bases de données relationnelles.
A l'issue de cette formation, vous saurez quand, comment et où utiliser les différentes moutures de Linq. Vous comprendrez également le fonctionnement interne de cette technologie afin de l'exploiter de manière optimale.
Travaux pratiques :
Les travaux pratiques consisteront à explorer dans un premier temps Linq To Object afin d'en comprendre la puissance mais aussi les rouages (méthodes d'extension, expressions lambda). Ensuite, vous expérimenterez Linq To XML. Vous travaillerez bien sûr avec des solutions ORM comme Linq To SQL mais surtout avec Entity Framework, plus souple et surtout plus performant.
Vous allez apprendre à :
- Connaître ADO.NET et ses limites
- Comprendre la sérialisation en XML
- Mettre en oeuvre le mapping objet / relationnel
- Différencier les utilisations possibles de Linq
- Connaître les extensions C# pour Linq
- Gérer les transactions et la concurrence d'accès
Méthode pédagogique :
70% de travaux pratiques
Audience :
Développeurs objet expérimentés
Pré-requis :
- Connaissance de C# et du Framework .Net 1.1 ou 2.0 ou avoir suivi le cours ICOP
Programme :
- Introduction à Linq
- Pourquoi Linq ?
- Linq sur des collections
- Linq sur des documents XML
- Linq sur des bases de données
- Autres sources de données
- Evolutions du langage C# pour Linq
- Delegate
- Lambda Expressions
- Type anonyme
- Les méthodes d'extension
- Opérateurs de requête
- Linq et les objets (Linq to Objects)
- Rappels sur les collections et les interfaces utiles
- Tri et filtre sur une collection
- Les opérations : projection, restriction, jointure, agrégation, etc.
- Fluent Syntax
- Query Syntax
- Impact sur les performances
- PLinq
- Objectifs
- Méthode AsParallel
- Méthode AsOrdered
- Danger du ForEach
- Méthode ForAll
- Discussion critique sur les performances
- Linq et les documents XML (Linq to XML)
- Les classes du modèle de programmation pour XML
- Interroger un document XML
- Transformer un document XML
- Créer un document XML
- Utilisation d'XDocument, XElement...
- Gestion des données avec ADO.NET
- Rappels sur les bases de données relationnelles
- Le modèle de programmation ADO.NET
- Le mode connecté et déconnecté
- Les différentes écritures d'une chaîne de connexion
- Les transactions
- Utilisation de TransactionScope
- Utilisation du Dataset
- Rappel de l'architecture 3 tiers (IHM, BLL, DAL)
- Linq et les données relationnelles (Linq to SQL)
- Présentation et définition de cet ORM
- Les entités
- Le DataContext
- Le fonctionnement de l'exécution différée des requêtes
- Visualisation des requêtes
- Opérations de Crud
- Validation d'un champ
- Validation d'une entité
- Gestion des transactions
- Gestion de l'accès concurrentiel optimiste
- Contrôle LinqDataSource pour ASP.NET
- Points forts et points faibles de Linq to SQL
- Mapping objet / relationnel avec Linq (Linq to Entities)
- Présentation d'Entity Framework
- Les différences avec Linq to SQL
- Le concepteur objet / relationnel (fichier .edmx)
- Les entités
- L'ObjectContext
- Opérations de Crud
- Validation d'un champ
- Validation d'une entité
- Gestion des transactions
- Gestion de l'accès concurrentiel optimiste
- Contrôle EntityDataSource pour ASP.NET
- Les différents types de mapping (TPT et PTH)
- Les types complexes
- Les 3 approches d'EF4 (Bottom-Up / Model First / Poco)
- Les templates T4