Cette formation vous outillera pour concevoir et implémenter des architectures modulables et performantes à l’aide .NET et C#.
Vous explorerez les meilleures pratiques de conception logicielle, tout en mettant en œuvre les composants clés d’une application backend, de la gestion des données à la sécurisation des API REST, jusqu’au déploiement sur Kubernetes. Chaque module s’appuie sur des mises en pratique concrètes, dans une approche progressive et structurée.
Objectifs de la formation
Être en mesure de concevoir et développer une application backend complète, modulaire et sécurisée avec .NET et C#, selon les principes d’architecture logicielle éprouvés.Clientèle visée
Développeurs et développeuses backend et architectes d’applications évolutives en environnement .NETPréalables
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). Une expérience avec Visual Studio, VsCode ou Rider est aussi nécessaire.Formateurs
Gains pour les participants
Mettre en œuvre le couplage faible avec l'injection de dépendances;
Concevoir une architecture évolutive avec le pattern command;
Accéder aux données d'une base de données relationnelle avec un ORM;
Garantir la cohérence d'un système grâce à la gestion des transactions;
Créer les endpoints d'une API REST avec ASP.NET MVC;
Implémenter un frontend MVC avec ASP.NET MVC;
Sécuriser une API REST avec ASP.NET MVC, et OpenID Connect et JWT;
Déployer une application en tant qu'image OCI et la déployer sur Kubernetes.
Architecture de la formation
Cette formation est structurée en modules progressifs, mêlant concepts théoriques et mises en pratique concrètes. Chaque bloc aborde un aspect clé de l’architecture d’une application backend avec .NET, depuis les fondations jusqu’au déploiement.
Introduction
Ce premier module pose les bases conceptuelles de l’architecture logicielle en .NET, en explorant les principes de conception et l’écosystème du framework (cadriciel).
- L'adoption d'un langage commun (ubiquitous language) pour une meilleure collaboration.
- Définition des objectifs.
- Revue des principes S.O.L.I.D. , KISS, DRY, POCO pour une meilleure maintenabilité.
- Le découpage en couches logicielles.
- La préférence pour les applications stateless.
- Vue d’ensemble de l'écosystème .NET.
Couplage faible avec Microsoft.Extensions.DependencyInjection
Ce module présente les mécanismes d’injection de dépendances en .NET et les patterns associés pour favoriser un code modulaire et faiblement couplé.
- Présentation des designs patterns Strategy et Factory.
- La déclaration d'une IServiceCollection.
- L'inscription d'un service.
- L'injection de dépendances.
- L'accès aux propriétés issues d'une IConfiguration.
- Le couplage avec Microsoft.Extensions.Logging.
- La configuration par custom attributes.
Mise en pratique: implémentation de l'injection de dépendance avec Microsoft.Extensions.DependencyInjection.
Échange de messages avec le pattern Command
Vous découvrirez ici comment structurer la logique applicative autour du pattern Command pour améliorer la clarté, la maintenabilité et l’évolutivité du code.
- La commande comme représentation des entrées utilisateurs (users inputs) d'un cas d'utilisation.
- Le routage des commandes vers les components métiers.
- La validation.
- La gestion des exceptions.
- La démarcation transactionnelle.
- La mise en œuvre d'une architecture CQRS (command query responsability segregation).
Mise en pratique: application du pattern Command pour réduire le couplage et augmenter la maintenabilité.
Accès aux données et gestion des transactions
Ce module explore les principes d’accès aux données, les types de bases de données, les transactions, et les patterns comme Unit of Work et Repository.
- Les différents types de base de données (SQL, NoSQL).
- Le théorème CAP.
- L'exécution non bloquantes des opérations I/O pour gagner en mise à l’échelle (scalability).
- Le rôle d'un pool de connexions.
- Les transactions et les principes ACID.
- Le pattern Unit of Work.
- Les records et les tuples pour manipuler des données immutables.
- Le pattern Repository (et ses limites) et son implémentation en .NET: EntityFrameworkCore.
- Les mini-ORM comme solution pour développer des applications orientées données (data driven applications), présentation de Dapper.
Mise en pratique : mise en œuvre du pattern unit of Work pour accéder aux données de manière transactionnelle, requêtage d'une base de données avec Dapper.
Création d’une API REST avec ASP.NET Mvc
Vous verrez comment construire une API REST robuste en .NET en respectant les bonnes pratiques de conception et de test.
- Le serveur web embarqué Kestrel et son event loop.
- Les intergiciels (middlewares).
- Les bonnes pratiques de conception d'une API REST.
- Les API Controllers et le traitement des requêtes.
- La validation.
- La gestion des exceptions.
- Les tests d'une API REST.
Mise en pratique: création d'une API REST pour exposer l'application développée précédemment.
Réalisation d'une application web MVC avec ASP.NET MVC
Ce module vous guide dans la création d’une interface utilisateur web basée sur le pattern MVC, en exploitant les vues Razor et les vues partielles.
- Présentation du pattern Model View Controler.
- La définition du modèle et sa transmission aux vues.
- Les vues Razor.
- Ajax et les vues partielles pour une navigation plus fluide.
- La validation.
Mise en pratique: création d'un frontend MVC.
Sécurisation d’une application web
Vous verrez comment intégrer des mécanismes d’authentification et d’autorisation dans une application web sécurisée avec JWT, Identity et OpenID Connect.
- La déclaration d'un référentiel d'utilisateurs avec ASP.NET Identity.
- Choix d'une stratégie d'authentification: cookie ou jeton JWT.
- Le couplage avec un serveur OpenID Connect.
- Définition des règles d'accès.
- L'accès à l'identité de l'utilisateur.
- Les stratégies de révocations.
Mise en pratique: sécurisation de l'API REST avec JWT.
Intégration continue et livraison continue
Vous aborderez les étapes clés de la livraison d’une application conteneurisée avec .NET, de la génération d’image à son déploiement sur Kubernetes.
- Rappel des commandes .NET pour créer un livrable.
- La méthodologie 12 Factor App.
- Création d'image OCI.
- Le déploiement d'une image OCI sur un orchestrateur Kubernetes.
Mise en pratique: création d'une image OCI à partir de l'API REST et déploiement sur Kubernetes (Minikube).
Détails pédagogiques
Méthode pédagogique
Explication, pour chaque concept, du problème qu'il prétend résoudre. Mise en pratique d'un concept immédiatement après qu'il a été présenté. Validation de chaque étape par exécution de tests unitaires. Exercice « fil rouge » pour obtenir en fin de cours une application complète. QCM en fin de chapitre pour s'assurer de l'acquisition des connaissances.
Type de cours
Formation en entreprise
Toutes nos formations peuvent être offertes en entreprise et personnalisées selon vos besoins. Pour plus d'information, nous vous invitons à communiquer avec nous ou à remplir une demande de soumission en ligne.
Demander une soumissionFormation en entreprise
Toutes nos formations peuvent être offertes en entreprise et personnalisées selon vos besoins. Pour plus d'information, nous vous invitons à communiquer avec nous ou à remplir une demande de soumission en ligne.
Demander une soumission