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.
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.
Est-ce pour vous ?
Développeurs et architectes logiciels travaillant sur des projets .NET nécessitant une bonne gestion des données.
Préalables
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.
Ce que vous saurez faire
- ✓ Structurer une couche de persistance robuste avec Entity Framework Core et le pattern Unit of Work
- ✓ Manipuler efficacement les données via LINQ et le mapping des entités et relations
- ✓ Implémenter des accès performants avec Dapper et ADO pour des applications orientées données
- ✓ Gérer les transactions et garantir l’intégrité des données selon les principes ACID
- ✓ Mesurer et optimiser les performances grâce au profiling et à l’analyse des métriques
Contenu 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.
1 Introduction
- 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.
2 Utiliser EntityFramework Core
- 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.
3 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.
4 Le profiling pour mesurer les performances d’accès aux données
- 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.
📌 Informations pratiques
Nos formations sont offertes à Montréal ou Québec, en présentiel ou en classe virtuelle. Les dates et lieux sont précisés lors de votre choix de session ci-dessous. Si vous avez des questions, consultez notre FAQ.