Formation Technologies de l'information : .NET : maîtriser l’accès aux données et les transactions
Optimiser la persistance des données et garantir la cohérence des traitements dans vos applications .NET
La majorité des applications .NET interagissent avec des bases de données, SQL ou NoSQL. Chaque option ayant des avantages techniques à évaluer selon le contexte. Les mécanismes d’accès aux données doivent être choisis et implémentés en tenant compte des enjeux de performance, de mise à l’échelle (scalability) et de cohérence.
<br/>
Cette formation permet de comparer différentes stratégies d’accès aux données et de mettre en œuvre des transactions robustes en exploitant le pattern Unit of Work. À travers l’utilisation de technologies comme EntityFramework Core, Dapper, ou encore ADO.NET, les participant·es apprendront à structurer une couche de persistance efficace, à optimiser les requêtes et à surveiller les performances d’exécution dans un environnement .NET.
Le programme de la formation
La formation est structurée autour de différentes étapes clés visant à renforcer la maîtrise des accès aux données et des transactions. Chaque volet associe des concepts fondamentaux à une mise en pratique ciblée, en lien avec les outils phares de l’écosystème .NET.
Introduction
Cette première étape présente les bases conceptuelles liées aux types de bases de données, aux entrées-sorties non bloquantes, aux transactions et à la cartographie objet-relationnel.
- Les différents types de base de données (SQL, NoSQL).
- L'exécution non bloquantes des opérations I/O.
- Le rôle d'un pool de connexions.
- Les transactions et les principes ACID.
- Les recherches full text.
- Le mapping objet / base de données.
Utiliser EntityFramework Core
On explore ici le fonctionnement du pattern repository, la définition des entités, le mapping des relations et l’implémentation du pattern Unit of Work via DbContext.
- Présentation du pattern repository.
- Les entités du domaine: entités fortes et entités faibles.
- Le mapping des entités et de leurs relations.
- L'implémentation du pattern Unit of Work avec le DbContext.
- Les différents états d'une entité.
- Le requêtage avec LINQ.
- Les migrations.
Mise en pratique : mise en place d'une couche de persistance avec EntityFramework Core et la gestion des transactions.
Les mini-ORM
- Les limites du pattern repository.
- Manipulation des données contextuelles avec Tuples et records.
- Implémentation du pattern Unit of Work avec ADO.
- Requêtage d'une base de données relationnelle avec Dapper.
Mise en pratique : création d’une application orientée données (data driven) avec Dapper et mise en œuvre des transactions.
Le profiling pour mesurer les performances d’accès aux données
Vous aborderez la mesure des performances des opérations d’accès aux données en activant un outil de profiling, en définissant les métriques pertinentes et en automatisant la collecte des mesures.
- L'activation d'un profiler dans une application.
- Le choix des métriques.
- L'archivage des informations.
- Les alertes.
Mise en pratique : profiling des opérations d'accès aux données et exportation des mesures dans Prometheus.
À qui s'adresse cette formation ?
Public cible
Développeurs et architectes logiciels travaillant sur des projets .NET nécessitant une bonne gestion des données.
Prérequis
Ce cours demande une connaissance solide des bases du langage C# (principes de la programmation orientée objet, types génériques, custom attribute, expressions lambda) et une habitude de travailler avec Visual Studio, VsCode ou Rider.
Les objectifs de la formation
Être en mesure de comparer et d’implémenter des stratégies d’accès aux données et de gestion des transactions depuis une application .NET.
Les points forts de la formation
Comparer les solutions de stockage SQL (relationnelles) et NoSQL (non relationnelles);
Mettre en œuvre une couche de persistance avec EntityFramework Core;
Interroger une base de données relationnelle avec un mini-ORM;
Implémenter le pattern Unit of Work;
Appliquer les principes ACID avec les transactions;
Mesurer les performances des accès à une base de données grâce à des outils de profiling.
