Ce support s'adresse aux développeurs, architectes et administrateurs qui souhaitent adopter une approche professionnelle pour la réalisation d'applications web en tirant le meilleur parti possible d'ASP.NET. Il accompagne le lecteur dans une étude complète de la technologie ASP.NET et de Visual Studio 2022. Pour chaque thème abordé, des exemples pratiques et utiles sont fournis en C#. Le lecteur commencera par Visual Studio et ses outils (débogage, refactoring, tests unitaires, tests...
Ce support s'adresse aux développeurs, architectes et administrateurs qui souhaitent adopter une approche professionnelle pour la réalisation d'applications web en tirant le meilleur parti possible d'ASP.NET. Il accompagne le lecteur dans une étude complète de la technologie ASP.NET et de Visual Studio 2022. Pour chaque thème abordé, des exemples pratiques et utiles sont fournis en C#.
Le lecteur commencera par Visual Studio et ses outils (débogage, refactoring, tests unitaires, tests d'interface graphique, VSTS...) et par les évolutions du langage C#. Le deuxième chapitre décrit le fonctionnement des applications IIS sous Windows comme Azure, et explique comment réaliser des modules spécifiques pour le serveur Web. L'ouvrage étudie en détail les web forms, AJAX, jQuery, et propose des composants personnalisés pour créer des graphiques.
Les chapitres suivants élaborent des solutions pour allier rapidité de développement et performances dans l'accès aux bases de données ADO.NET, avec notamment les composants basés sur LINQ et Entity Framework. Sont ensuite traitées la sécurisation unifiée des sites web OWIN (avec Google) et la personnalisation de la navigation (Web Part et services web WCF, REST).
Les sites MVC et leurs développements SPA et Web API sont présentés avec des exemples pratiques, ainsi que la plateforme ASP.NET Core 7.
Le dernier chapitre décrit la mise en production sous ASP.NET et l'infrastructure de supervision Health Monitoring ainsi que le déploiement des applications web sur la plateforme Cloud Microsoft Azure.
Les exemples de code du support sont en téléchargement sur le site www.editions-eni.fr.
1.3.2 Références explicites dans le fichier Web.config
1.4 Le cache de construction
1.5 Les applications web de Visual Studio
2. Le rôle du serveur web
2.1 Le serveur IIS
2.2 Le serveur de développement ASP.NET
2.3 L'environnement Azure
3. Le pipeline HTTP de IIS
3.1 Fonctionnement de IIS
3.1.1 Premiers pas sous HTTP avec Telnet
3.1.2 Détail du traitement IIS
3.2 La classe HttpContext
3.3 La classe HttpApplication
3.3.1 Cycle de vie de l'application
3.3.2 Ajouter un fichier Global.asax
3.3.3 Créer un module HTTP
3.4 Les gestionnaires (handlers) HTTP
3.4.1 Créer un handler ASHX
3.4.2 Créer un handler dans une DLL
Les Web Forms
1. Présentation des Web Forms
1.1 Structure d'une page ASPX
1.1.1 Style imbriqué, en ligne et séparé
1.1.2 Les scriptlets
1.1.3 Hiérarchie des contrôles
1.1.4 Ajouter dynamiquement des contrôles
1.1.5 Objets intrinsèques
1.2 Cycle de vie d'une page
1.2.1 Le cycle nominal
1.2.2 Identifier les requêtes de type postback
1.3 Les contrôles web
1.3.1 Les balises HTML
1.3.2 L'attribut runat="server"
1.3.3 Les contrôles HTML
1.3.4 Les contrôles web
1.3.5 Les contrôles à base de modèles (template)
1.3.6 Les contrôles utilisateurs et les contrôles personnalisés
1.4 Navigation entre les pages
1.4.1 Les liens hypertextes
1.4.2 Redirections par serveur
1.5 Postback et cross postback
1.6 Les callback
1.7 Validation des entrées utilisateur
1.7.1 Principe de la validation
1.7.2 Les contrôles de validation
1.7.3 La validation personnalisée
1.7.4 La validation discrète
2. Organiser la présentation
2.1 Thèmes et skins
2.1.1 Les feuilles de style CSS
2.1.2 D'autres approches des CSS
2.1.3 Les thèmes
2.1.4 Les skins
2.2 Les contrôles utilisateurs .ascx
2.2.1 Créer un contrôle utilisateur
2.2.2 Utiliser un contrôle utilisateur
2.2.3 Ajouter des propriétés et des événements
2.3 Les pages maîtres (master pages)
2.3.1 Créer une page maître
2.3.2 Créer une page de contenu
2.3.3 Programmer les pages maîtres et les pages de contenu
2.3.4 Appliquer dynamiquement une page maître
3. Les composants personnalisés
3.1 Fonctionnement des composants personnalisés
3.1.1 Les types de composants personnalisés (custom controls)
3.1.2 Création d'une bibliothèque de composants
3.1.3 Mise au point du composant ColoredPad
3.1.4 Enregistrement et tests
3.2 NumericTextBox, un composant dérivé de TextBox
3.2.1 Création du contrôle
3.2.2 Propriétés et événements
3.2.3 Rendu
3.3 ChartControl, un composant graphique utilisant GDI+
3.3.1 Fonctionnement
3.3.2 Rendu
3.3.3 Intégration et tests
3.4 PictureBrowser, un composant basé sur un modèle
3.4.1 Fonctionnement
3.4.2 Implémentation du composant
3.4.3 Les modèles
3.4.4 Le rendu
3.4.5 Les événements
3.4.6 Informations relatives à la conception dans Visual Studio
3.4.7 Utilisation du composant
3.5 Des ressources incorporées aux DLL
4. AJAX
4.1 Du callback à AJAX
4.2 Le gestionnaire de script ScriptManager
4.3 Le composant UpdatePanel
4.3.1 Fonctionnement
4.3.2 Mise en œuvre
4.3.3 Gestion des erreurs
4.3.4 Les triggers
4.4 Le composant UpdateProgress
4.5 Le Timer
4.6 La programmation objet avec JavaScript
4.6.1 Insertion de code JavaScript dans une page
4.6.2 Créer des objets et des classes JavaScript
4.6.3 Le style AJAX
4.6.4 Des classes dérivées
4.6.5 Implémenter des interfaces
4.7 Introduction à jQuery
4.7.1 Installation
4.7.2 Parcourir le DOM
4.7.3 Intervenir sur la page
4.7.4 Les plugins
5. Les services web en Web Form
5.1 Création d’un service web ASMX
5.2 Utilisation d’un service web ASMX depuis un Web Form
L’accès aux données avec ADO.NET
1. Les bases d'ADO.NET
1.1 Le mode connecté
1.1.1 La connexion
1.1.2 La commande
1.1.3 Le DataReader
1.1.4 Les paramètres
1.1.5 Les transactions
1.2 Les bases de données SQL Server
1.2.1 Les déclinaisons du logiciel SQL Server
1.2.2 Création de bases
1.2.3 Création de tables
1.2.4 Les vues
1.2.5 Les procédures stockées
1.3 Rendre transparent l'accès aux bases
1.3.1 Le mode déconnecté
1.3.2 DataAdapter et TableAdapter
1.3.3 Le mapping objet-relationnel et les frameworks spécialisés
1.3.4 Les fabriques ADO.NET
2. Accès aux données à base de fournisseurs
2.1 Introduction au développement par fournisseurs
2.1.1 Contrôles sources de données en mode fournisseur
2.1.2 Contrôles de présentation des données
2.2 Les sources SqlDataSource et AccessDataSource
2.2.1 La requête de sélection
2.2.2 Les requêtes de mises à jour
2.2.3 Les paramètres
2.2.4 Le cache
2.3 Le fournisseur ObjectDataSource
2.3.1 Principe
2.3.2 Mise en œuvre
2.3.3 Paramètres de création
2.3.4 Gestion du cache
2.3.5 Une version avancée
2.4 Le fournisseur XmlDataSource
2.5 LinqDataSource
2.5.1 Un DAO pour LinqDataSource
2.5.2 Le contexte de données .edmxl
2.5.3 Les événements de LinqDataSource
2.6 EntityDataSource
2.6.1 Le framework Entity
2.6.2 Créer le modèle conceptuel
2.6.3 Requêter avec LINQ to Entities
3. Les composants graphiques de présentation des données
3.1 Le composant GridView
3.1.1 Présentation tabulaire des données
3.1.2 Les opérations de sélection et de navigation
3.1.3 Les clés et les opérations de mise à jour
3.1.4 Les formatages et les tris
3.1.5 Les colonnes modèles
3.1.6 La liaison bidirectionnelle
3.1.7 Gérer les jointures
3.2 Le composant DetailsView
3.2.1 Présentation du DetailsView
3.2.2 Les événements
3.3 Le composant FormView
Gestion de l'état
1. Les différents moyens pour maintenir l'état
1.1 Les champs cachés
1.2 Le ViewState
1.2.1 Utiliser le ViewState dans un Web Form
1.2.2 Contrôler l'application du ViewState
1.3 La chaîne de requêtes (Query String) et les URI
1.4 Les cookies
2. Les sessions
2.1 Utilisation de l'objet Session
2.1.1 Mémorisation d'un objet et recherche
2.1.2 Initialisation de l'objet Session
2.1.3 Sécurisation du jeton de session
2.2 Sessions sans cookie et délai d'abandon de session
2.2.1 Sessions sans cookie
2.2.2 Timeout
2.3 Services de conservation des données en session
2.3.1 Le processus en mémoire InProc
2.3.2 Le service Windows ASP.NET State Service
2.3.3 Le service SQL Server
2.3.4 Services personnalisés
3. Les objets Application et Cache
3.1 L'objet Application
3.1.1 Utilisation
3.1.2 Verrouillage
3.2 Le cache de données d'applications Cache
3.2.1 Les dépendances de temps
3.2.2 Le callback
3.2.3 Les dépendances fichiers
3.2.4 Les dépendances SQL sous SQL Server
3.3 Le cache HTML
3.3.1 Cache de sortie
3.3.2 Fragments de pages en cache
3.3.3 Les substitutions
3.3.4 Les profils de cache
Personnalisation et sécurisation
1. Sécurisation des sites ASP.NET
1.1 Le modèle de sécurisation du site
1.1.1 Les objets de la sécurité
1.1.2 L'authentification
1.1.3 Les autorisations
1.2 Sécurisation en mode Windows
1.2.1 Activation du mode d'authentification
1.2.2 Configuration de IIS
1.2.3 Autorisations
1.3 Sécurisation en mode Forms
1.3.1 Activation du mode Forms et création d'une page de connexion
1.3.2 Endossements de rôles
1.3.3 Le mode Forms sans cookie
1.3.4 Autorisations
1.4 Le fournisseur MemberShip
1.4.1 Fonctionnement du fournisseur
1.4.2 Utiliser AspNetSqlMembershipProvider
1.5 Sécurisation en comptes d'utilisateurs individuels
1.6 Le répertoire Account
1.7 Le référentiel local d'utilisateurs
1.8 Activer un référentiel externe
1.9 Le fournisseur de rôles
1.9.1 AspNetSqlRoleProvider
1.9.2 WindowsRoleTokenProvider
1.10 Les contrôles intégrés
2. Présentation personnalisée
2.1 Les profils utilisateur
2.1.1 Formation du profil
2.1.2 Utilisation du profil
2.1.3 Groupage et types complexes
2.2 Navigation au sein du site
2.2.1 Le fichier de définition du site
2.2.2 Le fournisseur SitemapProvider, l'API Sitemap et le SitemapDataSource
2.2.3 Les contrôles associés à la navigation
2.2.4 Filtrer l'affichage selon le rôle de l'utilisateur
2.3 Internationalisation
2.3.1 Les ressources globales
2.3.2 Les ressources locales
2.3.3 Le composant Localize
2.3.4 Localisation des validations
3. Les WebParts
3.1 Du site web au portail
3.2 Créer un portail
3.2.1 Le gestionnaire WebPartManager
3.2.2 Les zones WebPartZone
3.2.3 Les éléments WebPart
3.3 Les contrôles catalogues CatalogZone et PageCatalogPart
3.3.1 Le catalogue de zones
3.3.2 Un menu pour changer de mode
3.3.3 Donner des noms aux éléments
3.3.4 Les éditeurs
3.4 Créer des éléments personnalisés
3.4.1 Créer un WebPart à partir d'un composant utilisateur
3.4.2 Créer un WebPart personnalisé
3.4.3 Connecter les éléments
Les sites web MVC avec .NET Framework
1. L'approche MVC
1.1 Le design pattern MVC
1.2 Les évolutions de MVC
2. Les sites ASP.NET MVC
2.1 Création d'un site
2.2 Organisation des répertoires
2.3 Création du modèle
2.4 Définition du contrôleur
2.5 Ajout des vues
3. Définition des routes
4. Aller plus loin
4.1 D'une action à l'autre
4.2 Mise à jour du modèle et redirection
4.3 Validation
5. Le moteur de rendu Razor et les vues
5.1 La syntaxe C# dans les vues CSHTML
5.1.1 Principes de base
5.1.2 Les balises Action
5.1.3 Les méthodes de formulaires
5.1.4 Créer ses propres extensions HTML
5.2 Structure et organisation des vues
5.2.1 Les gabarits Layout
5.2.2 Les vues partielles
5.2.3 Rendu des scripts et des bundles
6. Sécurisation des sites MVC
6.1 Authentification
6.2 Autorisations
7. Les Single Page Applications (SPA)
7.1 Utiliser les Web API
7.1.1 Créer un projet Web API
7.1.2 Établir un modèle et un contrôleur
7.1.3 La page unique
7.2 Utiliser KnockOut pour la liaison de données
Développer sous ASP.NET Core
1. Un site web ASP.NET Core
1.1 Création du projet
1.2 Contenu du projet
2. Configuration
2.1 Les fichiers Program et Startup
2.1.1 Program
2.1.2 La classe Startup
2.2 La configuration JSON
2.2.1 appSettings.json
2.2.2 launchSettings.json
2.2.3 Les bundles
2.3 Gestion des packages
2.4 Application de thèmes avec Bootstrap
3. Développement MVC
3.1 Les contrôleurs web
3.2 Les vues
3.3 Les Web API
3.3.1 Créer un contrôleur Web API
3.3.2 Utiliser un service Web API depuis une page
3.4 Le package Identity
3.4.1 Activer l'authentification
3.4.2 Personnaliser les pages de gestion de compte utilisateur
4. Définir des environnements d’exécution
4.1 Détection de l'environnement d'exécution
4.2 Définition d'environnements
Configuration, déploiement et administration
1. Configuration
1.1 Héritage de la configuration
1.2 Configuration de test et de production
1.2.1 Le gestionnaire de configuration de Visual Studio
1.2.2 Plusieurs fichiers de configuration Web.config
1.2.3 Les pages d'erreurs du fichier Web.config
2. Déploiement des applications ASP.NET
2.1 Déploiement manuel
2.1.1 Création d'un répertoire virtuel
2.1.2 Sélection des fichiers à copier
2.1.3 La page par défaut
2.2 Déploiement par le système de copie
2.3 Déploiement avec Microsoft Azure
2.3.1 Création d'un compte Azure
2.3.2 Vue d'ensemble de l'interface de gestion des services
2.3.3 Création d'un projet associé à un compte Azure
2.3.4 Développement de l'application
3. Supervision des applications ASP.NET
3.1 L'infrastructure de supervision Health Monitoring
3.1.1 La hiérarchie des événements web
3.1.2 La hiérarchie des fournisseurs
3.2 Mise en œuvre dans ASP.NET
3.2.1 Déclarer des événements
3.2.2 Déclarer des fournisseurs d'écoute
3.2.3 Ajouter des règles d'abonnement
Index
Brice-Arnaud GUÉRIN
Ingénieur ESIEA, Brice-Arnaud GUERIN est Directeur de programmes chez Kantar et auteur aux Editions ENI depuis 2003. Ses compétences en développement et son désir de partager ses connaissances l'ont naturellement conduit à l'écriture d'ouvrages consacrés à la conduite de projets et à la réalisation d'applications (C++, .NET, PHP).