ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques



Documents pareils
Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Devenez un véritable développeur web en 3 mois!

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

PHP 5.4 Développez un site web dynamique et interactif

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

BES WEBDEVELOPER ACTIVITÉ RÔLE

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

HTML5 et CSS3 pour des sites Responsive Web Design

SharePoint 2013 Développez en.net pour personnaliser SharePoint (Apps, REST, CSOM et Azure)

Introduction à. Oracle Application Express

Programme ASI Développeur

Programmation Web. Introduction

Formation : WEbMaster

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

HTML5. Développement d applications Web. Visual Studio 2015 et TFS. L art et la manière. avec. Philippe DIDIERGEORGES

Joomla! Création et administration d'un site web - Version numérique

FICHE PRODUIT COREYE CACHE Architecture technique En bref Plateforme Clients Web Coreye Cache applicative Références Principe de fonctionnement

Tech-Evenings Sécurité des applications Web Sébastien LEBRETON

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Bonnes pratiques de développement JavaScript

Chapitre 1 Windows Server

Tour d horizon des différents SSO disponibles

LEA.C5. Développement de sites Web transactionnels

Windows Azure Platform Développez, déployez et administrez pour le Cloud Microsoft

1 - EXCHANGE Installation

Table des matières Chapitre 1 Virtualisation, enjeux et concepts Chapitre 2 Ligne de produit XEN

Internet Information Services (versions 7 et 7.5) Installation, configuration et maintenance du serveur Web de Microsoft

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Mise en œuvre des serveurs d application

Programmation Web. Madalina Croitoru IUT Montpellier

Diffuser un contenu sur Internet : notions de base... 13

SPT Description du cours NORAMSOFT SPT2013. SharePoint 2013 pour développeurs

NOUVEAUTES de Microsoft Dynamics CRM 2011 REF FR 80342A

Formation Webmaster : Création de site Web Initiation + Approfondissement

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

DRUPAL Réalisez des développements professionnels avec PHP (2ième édition)

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

FileMaker Server 12. publication Web personnalisée avec XML

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Création d'un site Internet dynamique avec HTML-CSS ou un CMS Formation à distance sur le réseau Pyramide

Comparatif fonctionnel des offre Saas d'igsi Easy CRM, Pro CRM, CRM On Demand

Configurer le Serveur avec une adresse IP Statique (INTERFACE :FastEthernet) : et un masque

Tsoft et Groupe Eyrolles, 2005, ISBN :

Construire un réseau social avec Symfony Xavier Lacot Clever Age. Symfony Live 11 et 12 juin 2009 Clever Age Xavier Lacot

FileMaker Server 14. Guide de démarrage

10. Base de données et Web. OlivierCuré

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Nouveau Web Client marquant, Cumulus Video Cloud, optimisations de la base de données, et plus..

Webmaster / Webdesigner / Wordpress

Compte Rendu d intégration d application

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

Notre processus d embauche

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

et Groupe Eyrolles, 2006, ISBN :

CQP Développeur Nouvelles Technologies (DNT)

Alfresco Guide Utilisateur

Application Web et J2EE

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Architectures web/bases de données

Créer et partager des fichiers

Installation / Sauvegarde Restauration / Mise à jour

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Drupal (V7) : principes et petite expérience

CAHIER DES CHARGES D IMPLANTATION

Catalogue des formations 2014

MEGA Web Front-End Installation Guide MEGA HOPEX V1R1 FR. Révisé le : 5 novembre 2013 Créé le : 31 octobre Auteur : Noé LAVALLEE

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

Authentification avec CAS sous PRONOTE.net Version du lundi 19 septembre 2011

INTRODUCTION AUX TESTS DE PERFORMANCE ET DE CHARGE

Association UNIFORES 23, Rue du Cercler LIMOGES

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP

FileMaker Server 13. Publication Web personnalisée avec XML

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

molis result portal Description fonctionnelle La structure système Configuration système requise Architecture du système

Adresse directe fichier : Adresse url spécifique sur laquelle le lien hypertext du Client doit être

Sommaire. Systèmes d Exploitation Intégration Sage 100 Sage CRM Disponibilité Client Bases de données... 3

AngularJS pour une application d'entreprise

Optimiser les performances d un site web. Nicolas Chevallier Camille Roux

L3 informatique TP n o 2 : Les applications réseau

UserLock Guide de Démarrage rapide. Version 8.5

Qu'est ce qu'une Fédération d'identités? Définitions Fonctionnement de base Fonctionnement détaillé Les principaux composants

CLOUD CP3S SOLUTION D INFRASTRUCTURE SOUMIS À LA LÉGISLATION FRANÇAISE. La virtualisation au service de l entreprise. Évolutivité. Puissance.

Transcription:

Introduction 1. Introduction 11 2. La plateforme de développement web de Microsoft 11 3. Définition du modèle de programmation MVC 14 4. L'historique d'asp.net MVC 17 4.1 ASP.NET MVC 1 (2008) 17 4.2 ASP.NET MVC 2 (2010) 17 4.3 ASP.NET MVC 3 (2011) 18 4.4 ASP.NET MVC 4 (2012) 18 S'outiller pour ASP.NET MVC 1. Préparation de l'environnement de développement 19 2. Les paquets NuGet 21 3. Débuter avec les modèles de projet ASP.NET MVC 4 25 4. Conclusion 35 Vue d'ensemble 1. Introduction 37 2. Présentation du paradigme 37 1/11

3. Le modèle 43 4. La vue 45 4.1 Le dossier Shared 45 4.2 Un fichier de mise en page partagée 46 4.3 La syntaxe Razor 49 5. Le contrôleur 54 5.1 Présentation 54 5.2 Les attributs 56 6. Conclusion 59 Modèles et formulaires 1. Introduction 61 2. Expression d'un cas métier concret 61 3. Conception de formulaires 65 3.1 Comment choisir entre le verbe GET et le verbe POST 65 3.2 Débuter dans l'écriture de formulaires 69 3.3 La liaison de données 76 3.3.1 Présentation 76 3.3.2 Extensibilité 78 3.4 Génération automatisée de code 81 4. Annotation d'un modèle pour l'affichage et la validation 83 4.1 Les attributs d'affichage 84 4.2 Les attributs de validation standard 87 4.3 Les attributs de validation ASP.NET MVC 90 2/11

4.4 Localisation des annotations 92 4.5 Création d'un attribut de validation personnalisé 94 4.6 Traitement de la validation dans le contrôleur 97 4.7 ASP.NET MVC et les fournisseurs de métadonnées 99 5. Conclusion 101 Conception de vues 1. Introduction 103 2. Les moteurs de vue 105 2.1 Fonctionnement d'un moteur de vue 105 2.2 Configurer un moteur de vue pour ASP.NET MVC 107 2.3 Les moteurs de vue alternatifs 112 3. Tour d'horizon de Razor 114 3.1 Au cœur du fonctionnement de Razor 115 3.2 La syntaxe de Razor 118 3.2.1 Les instructions uniques 118 3.2.2 Les blocs de code 119 3.2.3 Les structures conditionnelles 119 3.2.4 Lever l'ambiguïté entre code et contenu statique 120 3.2.5 Les commentaires 123 3.3 L'environnement de Razor avec ASP.NET MVC 124 4. Tirer parti de la classe HtmlHelper 126 4.1 Explication 127 4.2 Les HTML helpers existants 128 4.2.1 Affichage et édition 128 4.2.2 Des équivalents génériques 128 4.2.3 Spécifier des attributs HTML 130 4.3 Les modèles d'affichage et d'édition 131 3/11

4.3.1 Présentation 131 4.3.2 Une vue personnalisée associée à une classe 134 5. Extensibilité : créer ses propres méthodes 136 5.1 Avec le mot-clé @helper 136 5.1.1 Pour la vue courante 136 5.1.2 Pour toutes les vues 138 5.2 Avec les templated delegates 141 5.2.1 Pour la vue courante 141 5.2.2 Pour toutes les vues 141 5.3 Étendre la classe HtmlHelper 143 6. Les modes d'affichage 145 6.1 Mode d'affichage mobile 147 6.2 Modes d'affichage personnalisés 148 7. Conclusion 150 Le routage 1. Introduction 153 2. Définition d'url intelligible et optimisation pour les moteurs de recherche 154 3. La sélection d'une route au cœur d'asp.net 156 3.1 Gestionnaires HTTP et modules HTTP 157 3.2 Cycle de la requête 161 3.3 Résolution d'une route ASP.NET MVC 164 4. Définition de routes 169 4.1 Des paramètres dans les routes 170 4.1.1 Valeurs par défaut 171 4.1.2 Paramètres optionnels 173 4/11

4.1.3 Définir plusieurs paramètres dans un segment 175 4.1.4 Paramètres de requête, querystring 178 4.2 Utilisation du routage pour rétro-générer une URL 178 4.3 Ajout de contraintes sur une route 183 4.4 Router vers un fichier existant physiquement 186 4.5 Ignorer des routes 188 4.6 Des routes pour des pages WebForms 190 4.7 Lier une route à un ou plusieurs espaces de noms 192 5. Déboguer des routes 193 6. Étendre le mécanisme de routage 196 7. Conclusion 199 Utilisation avancée des contrôleurs 1. Introduction 201 2. Le cycle de vie d'un contrôleur 201 2.1 La fabrication d'un contrôleur 202 2.2 La gestion de l'état de session 208 2.3 La libération des ressources 209 2.4 Les classes de base d'un contrôleur 210 2.5 La sélection d'une action 211 2.6 L'exécution d'une action 215 3. Le retour d'exécution d'une action 218 3.1 EmptyResult 221 3.2 HttpStatusCodeResult 222 3.3 RedirectResult 223 3.4 RedirectToRouteResult 224 3.5 JavascriptResult 225 5/11

3.6 JsonResult 226 3.7 FileResult 228 3.8 ViewResultBase 229 3.9 Type de résultat personnalisé 230 4. Les filtres d'action 232 5. Écrire des contrôleurs asynchrones 238 5.1 Fonctionnement des contrôleurs synchrones 238 5.2 Fonctionnement des contrôleurs asynchrones 239 5.3 Mise en œuvre 241 6. Conclusion 243 JavaScript et jquery 1. Introduction 245 2. Des pages interactives, jquery à l'appui 246 2.1 Présentation de jquery 246 2.1.1 Une compatibilité des navigateurs 247 2.1.2 Découplage de l'html et du JavaScript 248 2.2 La manipulation du DOM : les sélecteurs 250 2.3 Les événements 254 2.3.1 S'abonner et se désabonner 254 2.3.2 S'abonner au bon moment 256 2.4 Étendre jquery 257 2.5 Les attributs de données HTML 5 261 3. Des pages agréables avec de l'ajax 265 3.1 Des appels en lecture avec jquery 265 3.2 Des appels en lecture avec System.Web.Mvc.AjaxHelper 269 3.3 La soumission de formulaires en Ajax 270 6/11

3.3.1 Avec jquery 272 3.3.2 Avec AjaxHelper 274 4. Les validations client 275 4.1 jquery Validate et Helpers ASP.NET MVC en action 275 4.2 IClientValidatable, des validations personnalisées côté client 278 5. Conclusion 281 Optimisations et performances 1. Introduction 283 2. Utiliser les systèmes de cache 284 2.1 Côté serveur : cacher des données 284 2.1.1 Niveau requête 284 2.1.2 Niveau utilisateur 286 2.1.3 Niveau application 288 2.2 Côté serveur : cacher du HTML 292 2.2.1 Fonctionnement 292 2.2.2 Localiser les créations de cache : client/serveur 294 2.2.3 Créer un profil d'outputcache pour toutes les actions 296 2.2.4 OutputCache et les autorisations 297 2.2.5 Cacher des parties de page 297 2.3 Côté client : nouveau cache 301 2.3.1 Le cache de résultats de requête 301 2.3.2 Le cache en mémoire 301 2.3.3 Le cache applicatif 301 3. Organisation de la page web 305 3.1 Où placer les scripts JavaScript? 305 3.2 Instrumenter les performances 307 3.2.1 Tester sur différentes versions de navigateurs 307 7/11

3.2.2 Tester localement 309 3.3 Des mots-clés judicieux 312 4. Utiliser les bundles 313 4.1 Mettre en place un bundle 314 4.2 Utiliser un CDN 316 4.3 Créer des transformations personnalisées 318 5. Conclusion 320 Sécurité 1. Introduction 321 2. Gestion de l'authentification 322 2.1 Utilisation du SimpleMembership 322 2.1.1 ASP.NET 2.0 et les fournisseurs Membership 322 2.1.2 Intégration de SimpleMembership 323 2.1.3 Fonctionnement de SimpleMembership 324 2.1.4 WebSecurity 326 2.2 Connexion à un fournisseur OpenId et OAuth 328 3. Les menaces qui pèsent sur une application ASP.NET MVC 334 3.1 Introduction 334 3.2 Les en-têtes de requêtes 334 3.3 Le Cross-Site Scripting 336 3.3.1 Assainir les entrées 339 3.3.2 Assainir les sorties 340 3.4 Le Cross-Site Request Forgery 343 3.5 L'Over Posting 346 4. Conclusion 349 8/11

Exposition de données au travers des Web API 1. Introduction 351 2. Principes de base de conception 352 2.1 L'exposition de données 352 2.2 Le type des données 353 2.3 Le modèle HTTP 354 2.4 Travailler avec Fiddler 357 3. Similitudes avec le modèle ASP.NET MVC 359 3.1 La création d'un projet 360 3.2 La définition des routes 362 3.3 La création d'un contrôleur 365 3.4 La gestion des erreurs 371 3.5 La liaison de données 375 3.6 Les formats de données 379 4. Utilisation d'odata 382 4.1 La présentation du protocole 383 4.2 L exposition de données 384 5. Déploiement d'une solution 387 5.1 La génération de documentation 387 5.2 L hébergement autonome 390 6. Conclusion 392 Introduction aux applications monopages 1. Introduction 393 9/11

2. Présentation 394 3. Construction d'une application monopage 395 3.1 L'utilisation des Web API 395 3.2 Librairies utilisées 398 3.2.1 Knockout 398 3.2.2 Changements d'url 401 3.2.3 AngularJS 403 4. Conclusion 406 ASP.NET MVC avancé 1. Introduction 407 2. Les modèles de vues 408 2.1 Approche basique 408 2.2 Approche par modèles de vues 411 2.3 Utilisation d Automapper 415 3. Internationalisation d'une application 421 4. Injection de dépendances 426 4.1 Écrire un contrôleur compatible avec l'injection de dépendances 430 4.2 Configurer un conteneur d'inversion de contrôle 431 4.3 Le cœur de l'injection de dépendances dans ASP.NET MVC 434 4.4 La localisation de services 437 5. Écriture de tests unitaires 439 5.1 Tester des routes 440 5.2 Tester des contrôleurs 444 10/11

5.3 Tester des filtres 447 6. Génération de code automatisée 448 7. Conclusion 452 Déploiement 1. Introduction 455 2. Les éléments à déployer 456 3. Déploiement vers un serveur IIS 457 4. Déploiement vers Windows Azure 468 5. Conclusion 471 Index 473 11/11