MN316
Technologies de l'information

.NET : concevoir et implémenter des architectures maintenables et performantes

Structurer efficacement une application backend avec .NET et les design patterns clés.


.NET Core a renouvelé la manière de développer des applications backend: injection de dépendances, serveur web Kestrel, gestion de configuration avancée, logging, sécurité, etc... Ces technologies sont au cœur des applications .NET. Pour être utilisées efficacement, elles nécessitent une solide compréhension des designs patterns qui structurent une application backend.
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.

Objectif

Ê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.

Est-ce pour vous ?

Développeurs et développeuses backend et architectes d’applications évolutives en environnement .NET

Pré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.

Vos gains

  • Concevoir une architecture .NET maintenable en appliquant les principes SOLID, KISS et un découpage en couches
  • Mettre en œuvre l’injection de dépendances et des patterns (Strategy, Factory, Command, CQRS) pour réduire le couplage
  • Structurer l’accès aux données avec Entity Framework, Dapper et les patterns Repository et Unit of Work
  • Développer des API REST robustes avec ASP.NET et implémenter tests, validation et gestion des erreurs
  • Déployer une application conteneurisée avec CI/CD et Kubernetes en intégrant les bonnes pratiques de sécurité
  • Contenu

    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.
    Voir plus +/-

    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).

    💡 Informations utiles

    Nos formations sont offertes à Montréal ou Québec en présentiel ou en format virtuel. Les dates et lieux sont précisés lors de votre choix de session ci-dessous. Si vous avez des questions concernant l'inscription, les horaires, la langue d’enseignement ou les modalités d’annulation, consultez notre FAQ .

    Intervenants

    Durée
    5 jours
    Horaire
    Voir les dates de formations pour plus de détails
    Tarif régulier
    2 395 $
    Tarif préférentiel Un tarif préférentiel est accordé pour chacun des cours aux organismes publics, aux membres de certaines associations ainsi qu’aux entreprises ayant une entente avec Technologia (voir FAQ). Pour la liste complète des entités admissibles, consulter la section « Tarification » des FAQ. Notez également qu’aucun tarif préférentiel n’est accordé pour les formations en ligne. Les rabais accordés sur les formations ne peuvent être cumulables avec aucune autre promotion.
    2 155 $
    Formation en entreprise

    Vous avez plusieurs employés intéressés par une même formation? Que ce soit en présentiel dans vos bureaux ou à distance en mode virtuel, nous offrons des formations privées adaptées aux besoins de votre équipe. Des tarifs de groupes sont disponibles. Contactez-nous pour plus de détails ou demandez une soumission en ligne.

    Demander une soumission

    Demander une formation en entreprise

    Vous avez plusieurs employés intéressés par une même formation? Que ce soit en présentiel dans vos bureaux ou à distance en mode virtuel, nous offrons des formations privées adaptées aux besoins de votre équipe. Des tarifs de groupes sont disponibles. Contactez-nous pour plus de détails ou demandez une soumission en ligne.

    Dites-nous en plus
    Ajout effectué Voir mon panier