Modèle avancé
- Personnaliser le scaffolding.
- "Binder" personnalisé pour lier les données au modèle.
- Validation d'attribut personnalisé côté serveur et côté client.
Travaux pratiques
Réaliser une validation personnalisée.
Vue avancée
- Architecture MVC versus Architecture Razor pages de ASP.Net Core 5.0.
- Écrire un tag helper.
- Liens fortement typés avec TypedRouting.
Travaux pratiques
Gérer les images avec Tag helper à partir d’un Content Delivery network.
Contrôleur avancé
- Mocker et injecter les dépendances pour les tests.
- Actions asynchrones.
- Écrire des templates de courriers et gérer les envois.
- Cache avec ResponseCache.
Travaux pratiques
Ajout de la fonctionnalité d'envoi de courrier avec des templates.
Organisation, routage et SEO
- Concept des Single Pages Application.
- Indexation avec Lucene.
- Areas pour organiser les sites.
- Créer sa route virtuelle pour le SEO.
- Modifier son site pour monter en SEO.
Travaux pratiques
Automatiser les routes avec une route virtuelle et mise en place d'indexation avec Lucene.
Outils pour le cycle de vie du projet
- Création de package Nuget.
- Installation d'un référentiel Nuget Privé.
- Ajouter des actions non intrusives au démarrage.
- Framework Elmah pour le logging des erreurs.
- Test automatisé du navigateur avec Selenium.
Travaux pratiques
Installation d'un référentiel Nuget privé, création d'un package Nuget et test automatisé du navigateur.
Identité et sécurité
- Étendre la protection Cross Site Resource Forgery par défaut.
- Utilisation de captcha contre les bots.
- IdentityServer pour une identification moderne avec OAuth/OpenId.
- Sécurité basée sur les stratégies (Policy).
Travaux pratiques
Mise en place d'une authentification OAuth avec IdentityServer.
WebSockets et SignalR
- Architecture SignalR.
- Support des navigateurs non dotés en Websockets.
- Résilience de la connection.
Travaux pratiques
Mise en œuvre d'un serveur de gestion client en SignalR et JQuery SignalR.