Objectifs de formation
A l'issue de cette formation, vous serez capable de :
- Décrire les architectures typiques du monde .NET
- Identifier sur quels critères juger une architecture technique
- Sélectionner les technologies .NET adéquates
- Communiquer avec d'autres technologies
- Mettre en oeuvre les design patterns
- Choisir la bonne méthodologie de développement
- Structurer correctement une application dans Visual Studio
- Choisir et définir une convention de nommage dans son architecture.
Prérequis
Avoir des connaissances en développement informatique.
Public concerné
Architectes, développeurs et chefs de projets.
Programme
Jour 1
Introduction
- Pourquoi architecturer ?
- Critères pour le choix d'une bonne architecture
- Définition d'un SI d'une entreprise
- Concept "d'abstraction"
- Ingénierie vs technicité
Architecture logicielle
- Introduction sur les différentes architectures
- Organisation technique vs fonctionnelle
- La notion de couche, module, service et composant
- La notion de fournisseur / consommateur
- Les architectures
- Services Oriented Architecture (SOA)
- Web Oriented Architecture (WOA)
- Entreprise Service Bus (ESB)
- Web Services
- Micro-services
- 2-tiers
- 3-tiers
- La couche d'accès aux données
- La couche métier
- Entités
- Services métiers
- Agents métiers
- Workflow métiers
- La couche de présentation
- Les couches techniques
- Le concept d'IoC (Inversion of Control)
- La notion d'add-in / plug-in
- Le concept de bootstrapper
- Scalabilité
- Maintenir une compatibilité descendante durant l'évolution d'une architecture
- Authentification et fédération
- Asynchronisme
Exemples de travaux pratiques (à titre indicatif)
- A partir d'un schéma informatique d'une entreprise fictive, repérer et documenter les divers éléments de type physique, logique et fonctionnel
- Placer sur le schéma les éléments qui ont été vus dans les deux précédents chapitres
Design patterns de base
- Introduction
- Les principes SOLID
- Les design patterns
- De création
- De structure
- De comportement
- Avancés
- AOP (Aspect Oriented Programming)
- Concept
- D'agrégation
- De bus
- De sérialisation
Design patterns spécialisés
- D'architecture sur les sources de données
- De Mapping Objet Relationnel (ORM)
- Comportementaux
- Structurels
- Des metadata
- De présentation Web
- De communication
- De gestion
- Des accès concurrents en mode déconnecté
- Des états
- Les autres design patterns
Design patterns orientés architecture distribuée
- Styles d'intégration
- Systèmes de messages
- Canaux de messages
- Construction de messages
- Transformation de messages
- Routage de messages
- Gestion système de messages
Exemples de travaux pratiques (à titre indicatif)
- A partir d'un schéma des différents composants d'une application, identifier les endroits où les patterns vus dans les chapitres précédents peuvent être utilisés
- Prendre un exemple de pattern, comme celui de l'ORM et présenter des exemples de code l'implémentant
Le framework .NET
- Grille des technologies du .NET
- .NET Framework vs .NET Core
- La CLR (Common Language Runtime) et ses services
- Transactionnel, Message Queuing et autres
- Langages et CTS (Common Type System)
- Assembly
- Outillage Visual Studio
- Conception d'une architecture avec Visual Studio
- Structuration d'une application dans Visual Studio
- Règles de nommage Assembly / Namespace
Exemple de travaux pratiques (à titre indicatif)
- Début de conception d'une application sous forme de fil rouge qui sera suivi pendant l'ensemble du cours afin d'appréhender les éléments de base d'une architecture .NET, telle que présentée ici
Jour 2
Applications Web et design patterns associés
- Le pattern MVVM (Model-View-ViewModel)
- ASP.NET
- ASP.NET MVC
- Développement d'application SPA (Single Page Apps) avec Angular et TypeScript
- Introduction à Blazor
- Création d'une application Blazor
Exemples de travaux pratiques (à titre indicatif)
- Rependre l'application fil rouge et ici, créer des éléments impliqués dans une architecture MVVM
- Il sera créé ici les composants ASP.NET MVC, avec un contrôleur, et des vues qui intégreront, d'un côté des composants Blazor, et de l'autre les éléments nécessaires à Angular (le modèle sera très simple)
Clients Windows et design patterns associés
- Windows Forms
- Windows Presentation Foundation
- Xamarin
- .NET MAUI
- .NET for Mobile
- Déploiement design patterns (MVP / MVC / MVVM / DashBoard)
Exemples de travaux pratiques (à titre indicatif)
- Parallèlement au fil rouge, créer ici une application utilisant WPF
- Démonstration d'une application .NET MAUI pour mobiles
Persistance et design patterns associés
- Concept de bases de données épaisses
- Différences entre SQL et NoSQL
- Fonctionnalités d'un SGBD SQL
- ADO.NET
- Linq to SQL et Entity Framework
- Design patterns
- Fonctionnalités d'une BDD NoSQL
- Sérialisation des données en base
Exemple de travaux pratiques (à titre indicatif)
- Ajouter à l'application fil rouge d'un accès BDD relationnel en utilisant Entity Framework
Jour 3
Communication
- Windows Communication Foundation (WCF)
- Web Services et SOA
- L'injection de dépendance
- REST Services et Web API
- Les API ASP.NET CORE
- Swagger
- P/Invoke (Plateforme Invoke) et Interop
- Windows Identity Foundation (WIF)
Exemple de travaux pratiques (à titre indicatif)
- Ajouter dans l'application fil rouge des API REST
Dans le Cloud avec Azure
- Concept d'IaaS, PaaS et SaaS
- Introduction aux services Azure
- Architectures pour un déploiement sur Azure
- Les containers (Docker et les alternatives)
Exemple de travaux pratiques (à titre indicatif)
- Démonstration de la création d'une application Azure
Produits Legacy
- Compatibilité avec les anciennes architectures
- Messaging avec MSMQ (Microsoft Message Queuing)
- Les produits de Messaging ActiveMQ, RabbitMQ et Azure Service Bus
- Transactions avec MTS (Microsoft Transaction Server)
- LDAP et Active Directory
- Fédération d'identités
Industrialisation des développements
- Introduction
- Concept d'usine à logiciels
- Application Life Management
- Méthodologies de développement
- Gestion multiple de version
- Les tests unitaires / mock
- Les tests d'intégration
- Les tests de validation
- Gestion des releases
- Team System
Exemple de travaux pratiques (à titre indicatif)
- Démonstration des capacités de Team System
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
Modalités, méthodes et moyens pédagogiques
Formation délivrée en présentiel ou distanciel* (blended-learning, e-learning, classe virtuelle, présentiel à distance).
Le formateur alterne entre méthode** démonstrative, interrogative et active (via des travaux pratiques et/ou des mises en situation).
Variables suivant les formations, les moyens pédagogiques mis en oeuvre sont :
- Ordinateurs Mac ou PC (sauf pour certains cours de l'offre Management), connexion internet fibre, tableau blanc ou paperboard, vidéoprojecteur ou écran tactile interactif (pour le distanciel)
- Environnements de formation installés sur les postes de travail ou en ligne
- Supports de cours et exercices
En cas de formation intra sur site externe à M2i, le client s'assure et s'engage également à avoir toutes les ressources matérielles pédagogiques nécessaires (équipements informatiques...) au bon déroulement de l'action de formation visée conformément aux prérequis indiqués dans le programme de formation communiqué.
* nous consulter pour la faisabilité en distanciel
** ratio variable selon le cours suivi
Modalités d’évaluation des acquis
- En cours de formation, par des études de cas ou des travaux pratiques
- Et, en fin de formation, par un questionnaire d'auto-évaluation
Accessibilité de la formation
Le groupe M2i s'engage pour faciliter l'accessibilité de ses formations. Les détails de l'accueil des personnes en situation de handicap sont consultables sur la page Accueil et Handicap.
Modalités et délais d’accès à la formation
Les formations M2i sont disponibles selon les modalités proposées sur la page programme. Les inscriptions sont possibles jusqu'à 48 heures ouvrées avant le début de la formation. Dans le cas d'une formation financée par le CPF, ce délai est porté à 11 jours ouvrés.