Objectifs pédagogiques
- 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.
Modalités et moyens pédagogiques
Formation délivrée en présentiel ou distanciel* (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 les 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 informatique...) 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
Niveau requis
Avoir des connaissances en développement informatique.
Public concerné
Architectes, développeurs et chefs de projets.
Programme
Introduction
- Pourquoi architecturer ?
- Critères pour le choix d'une bonne architecture
- Modèles de vente d'une application
- Différences entre un éditeur et un service informatique d'entreprise
- Définition d'un SI d'une entreprise
- Concept "d'abstraction"
- Ingénierie vs technicité
- Psychologie des services informatiques d'une entreprise
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)
- Entreprise Service Bus (ESB)
- 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
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é
- De gestion des états
- De limitation et de boostage
- 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
Le Framework .NET
- Grille des technologies du .NET
- .NET Framework vs .NET Core
- La CLR (Common Language Runtime) et ses services
- 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
Applications Web et design patterns associés
- ASP.NET
- ASP.NET MVC
- Développement d'application SPA (Single Page Apps) avec AngularJS et TypeScript
Clients Windows et design patterns associés
- Windows Forms
- Windows Presentation Foundation
- Silverlight
- Xamarin
- Windows 10 et Modern UI
- Windows RT
- Déploiement design patterns (MVP / MVC / MVVM / DashBoard)
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 BD NoSQL
- Sérialisation des données en base
Communication
- Windows Communication Foundation (WCF)
- Web Services et SOA
- SOAP Web Services ASMX et WCF
- REST Services et Web API
- P/Invoke (Plateforme Invoke) et Interop
- Windows Identity Foundation (WIF)
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)
Alternatives techniques d'entreprises
- Messaging avec MSMQ (Microsoft Message Queuing)
- 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
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
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