Maitriser l'accès aux données et les transactions

Beaucoup d'application .NET accèdent à des bases de données. Il peut s'agir de bases de données SQL ou NoSQL, chacune ayant ses avantages et ses inconvénients. Les applications .NET peuvent accéder aux donnnées en appliquant le pattern Repository (le plus souvent avec EntityFramework Core) ou de manière plus directe. Dans tous les cas le principe de unit of work est essentiel et recoupe l'application des transactions; ces dernières jouent un rôle important puisqu'elles permettent de garantir la cohérence du système.

Ce cours vous permettra d'apprécier les avantages et inconvénients d'un type de base de données, de comparer différentes manières d'accéder aux données et de mettre en oeuvre les transactions via le pattern unit of work, tout cela avec une exigence de performances et de scalabilité.

(14 heures)

En présentiel ou en classe virtuelle
En français ou en anglais
Public

Développeurs et développeuses .NET (C#), architectes

Accessible aux personnes en situation de handicap

Délai

Le cours peut être organisé dans un délai d'un mois.

Objectifs

A l'issue du cours vous saurez:

Prérequis

Ce cours demande une connaissance solide des bases de la programmation 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.

Méthodes pédagogiques

Programme détaillé

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.

Mise en pratique: préparation d'une API REST: choix des ressources, de leur URI et de leur représentation.

EntityFramework Core
DbContext
  • Présentation du pattern repository.
  • Les entités du domaine: entité fortes et entité 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 application des transactions.

Les mini-ORM
QueryAsync
  • L'inconvénient du pattern repository.
  • Tuples et records comme moyen de manipuler des données contextuelles.
  • Implémentation du pattern unit of work avec ADO.
  • Requêtage d'une base de données relationnelle avec Dapper.

Mise en pratique: data driven application avec Dapper et application des transactions.

Le profiling
StopWatch
  • 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.

Prix et financements

2 12

Réduction de 50% pour les associations reconnues d'utilité publique.

Sources de financements pour les organisations françaises:

Contact

Questions, inscriptions, demande d'adaptation: