Module 8 programmation avancée d'asp.net

3 460 vues

Publié le

Aspects avancés d'ASP.NET

Publié dans : Technologie
0 commentaire
2 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
3 460
Sur SlideShare
0
Issues des intégrations
0
Intégrations
303
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
2
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Module 8 programmation avancée d'asp.net

  1. 1. Développement web avecVisual Studio 2012 et ASP.NETModule 8 – Programmation Avancée de ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  2. 2. Développement web avec ASP.NET et Visual Studio 2012 Objectifs du module 2  Permettre aux développeurs d’acquérir des aspects avancés sur ASP.NET tels que la gestion de l’état, les module ou la configuration des applications ASP.NETModule 8 – Programmation Avancée de ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  3. 3. Développement web avec ASP.NET et Visual Studio 2012 Plan du module 3  Configuration  Modules et Handlers  Gestion de l’étatModule 8 – Programmation Avancée de ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  4. 4. Développement web avec ASP.NET et Visual Studio 2012 4 Module 8 - Programmation Avancée de ASP.NET Section 1 : Configuration des Applications ASP.NETCopyright © 2013, Mostefai Mohammed Amine
  5. 5. Développement web avec ASP.NET et Visual Studio 2012 Introduction 5  ASP.NET est basé sur un système hiérarchique de configuration Module 8 – Programmation Avancée de ASP.NET  Le fichier de configuration est appelé « web.config » et est sous format XML  Le fichier Web.config hérite des paramètres de « Machine.config » qui existe dans le sous-répertoire « CONFIG » du répertoire d’installation du .NET Framework  Les paramètres dédiées à la gestion de l’application web se trouvent dans la section « system.web »Section 1 : Configuration des Applications ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  6. 6. Développement web avec ASP.NET et Visual Studio 2012 Structure du Web.Config 6<configuration> <configSections> </configSections> Module 8 – Programmation Avancée de ASP.NET <connectionStrings> </connectionStrings> <appSettings></appSettings> <system.web> </system.web> <system.webServer> </system.webServer></configuration>Section 1 : Configuration des Applications ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  7. 7. Développement web avec ASP.NET et Visual Studio 2012 Principales sections (Hors System.Web) 7 Sections Description appSettings Paramètres de l’application. Exemple <appSettings> Module 8 – Programmation Avancée de ASP.NET <add key="monParametre" value="25"/> </appSettings> configSections Sections personnalisées de configuration <configSections> Exemple <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /></configSections> connectionStrings Chaînes de connexion aux bases de données <connectionStrings> Exemple <add name="adv" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.D ata.SqlClient;provider connection string=&quot;data source=.;initial catalog=AdventureWorks;integrated security=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /></connectionStrings>Section 1 : Configuration des Applications ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  8. 8. Développement web avec ASP.NET et Visual Studio 2012 Sections System.Web 8 Sections Description Compilation Détermine les paramètres de compilation tels que l’activation du débogage, le langage cible ou les assemblies référencées dans les Module 8 – Programmation Avancée de ASP.NET pages web <compilation debug="true" strict="true" explicit="true" defaultLanguage="c#" targetFramework="4.5" Exemple assemblyPostProcessorType=""> <assemblies> <add assembly="System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> </assemblies> 7 </compilation> pages Définit des paramètres communes à toutes les pages de l’application web tels que le thème, la page maître,…etc. Pour redéfinir ces paramètres, utiliser la directive « Page ». <pages buffer ="true" styleSheetTheme="" theme ="MonTheme" Exemple masterPageFile ="pageMaitre.master" enableEventValidation="true" />Section 1 : Configuration des Applications ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  9. 9. Développement web avec ASP.NET et Visual Studio 2012 Sections System.Web - Suite 9 Sections Description customErrors Paramètres indiquant la redirection vers les pages en cas d’erreurs (par exemple 401 ou 404). Module 8 – Programmation Avancée de ASP.NET <customErrors defaultRedirect ="Error.aspx" mode ="Off"> <error statusCode ="401" redirect ="Unauthorized.aspx"/> Exemple </customErrors> sessionState Mode de gestion de l’état : en mémoire, en utilisant un serveur d’état ou en utilisant SQL Server <sessionState mode="StateServer" stateConnectionString= "tcpip=serveurdetatport777:777" /> ExempleSection 1 : Configuration des Applications ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  10. 10. Développement web avec ASP.NET et Visual Studio 2012 Sections System.Web - Suite 10 Sections Description authentification Gère les paramètres d’authentification. Par exemple, « Forms » pour les applications web et « Windows » pour les applications intranet Module 8 – Programmation Avancée de ASP.NET basées sur « Active Directory » <authentication mode="Forms"> Exemple <forms loginUrl="Login.apsx" timeout="30"> </forms> </authentication> authorization Gère les paramètres d’autorisation (qui peut accéder à quoi) de l’application web. <authorization> Exemple <allow roles ="Admin"/> <deny users ="*"/> </authorization>Section 1 : Configuration des Applications ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  11. 11. Développement web avec ASP.NET et Visual Studio 2012 Sections System.Web - Suite 11 Sections Description membership Permet de définir des « MembershipProvider » personnalisés permettant d’implémenter la création et la validation d’utilisateurs et Module 8 – Programmation Avancée de ASP.NET de comptes du site <membership defaultProvider="Demo_MemberShipProvider"> <providers> <add name="monProvider" type="System.Web.Security.SqlMembershipProvider" Exemple connectionStringName="bdd_comptes" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="5" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression=""> </providers> </membership>Section 1 : Configuration des Applications ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  12. 12. Développement web avec ASP.NET et Visual Studio 2012 Sections System.Web - Suite 12 Sections Description roleManager Les utilisateurs sont regroupés en groupes appelés « rôles » pour simplifier l’attribution des privilèges. Cette section permet d’intégrer Module 8 – Programmation Avancée de ASP.NET un gestionnaire de rôle fourni avec .NET ou personnalisé. <roleManager enabled="true" defaultProvider=« monProvider"> <providers> Exemple <add connectionStringName="db_comptes" applicationName="/" name="monProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> </providers> </roleManager> globalization Paramètres de localisation des applications (ou sous-applications) <globalization culture="en-US" uiCulture="en-US"></globalization> ExempleSection 1 : Configuration des Applications ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  13. 13. Développement web avec ASP.NET et Visual Studio 2012 Intégration avec IIS7 13  À travers la section system.webServer, la configuration de l’application Module 8 – Programmation Avancée de ASP.NET vis-à-vis de IIS 7.0 est définie  Des paramètres comme la page par défault, les handlers et les modules HTTP sont définis désormais dans cette sectionSection 1 : Configuration des Applications ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  14. 14. Développement web avec ASP.NET et Visual Studio 2012 Sections system.webServer 14 Sections Description defaultDocument Définit quel document donner si aucun document n’est spécifié dans l’URL Module 8 – Programmation Avancée de ASP.NET <defaultDocument> Exemple <files> <add value="accueuil.apsx"/> </files> </defaultDocument> Handlers Un handler HTTP est un gestionnaire qui s’exécute lorsqu’une ressource est demandée sur le serveur. Le développeur peut exécuter ses propres Handlers en implémentant l’interface IHttpHandler puis les déclarer dans web.config. IIS intègre les handlers en utilisant le fichier de configuration. <handlers> Exemple <add type="MonApplication.DateTimeHandler" path="*.datx" verb="*" name="datxHandler"/> <add type="MonApplication.DateTimeHandler" path="*.timx" verb="*" name="timxHandler"/> </handlers>Section 1 : Configuration des Applications ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  15. 15. Développement web avec ASP.NET et Visual Studio 2012 Sections system.webServer 15 Sections Description modules Permet d’ajouter des modules HTTP à l’application <modules> Exemple Module 8 – Programmation Avancée de ASP.NET <add type="MonApplication.MyModule1" name="myModule"/> </modules>Section 1 : Configuration des Applications ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  16. 16. Développement web avec ASP.NET et Visual Studio 2012 Appliquer la configuration sur une portion de l’application 16  En ASP.NET, les applications de moyenne et de grande taille sont Module 8 – Programmation Avancée de ASP.NET composées d’une multitude de dossiers et de sous-dossiers  Avec la section « location », il est possible de définir la configuration d’un sous-ensemble de l’application  Un autre moyen est de créer un fichier « web.config » dans un sous- répertoire de l’applicationSection 1 : Configuration des Applications ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  17. 17. Développement web avec ASP.NET et Visual Studio 2012 Exemple de la balise « location » 17 <location path="Rep1"> Module 8 – Programmation Avancée de ASP.NET <system.web> <pages clientIDMode="Static"></pages> <globalization culture="fr-Fr" uiCulture="fr-Fr"></globalization> </system.web> </location>Section 1 : Configuration des Applications ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  18. 18. Développement web avec ASP.NET et Visual Studio 2012 Tutoriel 8.1 : Configuration d’Applications ASP.NET 18 • Lancer Tutoriel 8.1, étape 1 et 2 Module 8 – Programmation Avancée de ASP.NETSection 1 : Configuration des Applications ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  19. 19. Développement web avec ASP.NET et Visual Studio 2012 Module 8 - Programmation Avancée de ASP.NET 19 Section 2 : Modules et Handlers HTTPCopyright © 2013, Mostefai Mohammed Amine
  20. 20. Développement web avec ASP.NET et Visual Studio 2012 Handlers HTTP 20  Un Handler HTTP est un module permettant de répondre à des requêtes Module 8 – Programmation Avancée de ASP.NET spécifiques demandant des ressources sur internet  Il existe deux types de Handlers : des handlers par défaut et des handlers personnalisés  Par exemple, les ressources dont l’extension est « aspx » sont gérés par un handler spécifique lançant leur compilation  Le handlers personnalisés sont des handlers créés par les développeurs pour gérer une certaine catégorie de ressourcesSection 2 : Modules et Handlers HTTP Copyright © 2013, Mostefai Mohammed Amine
  21. 21. Développement web avec ASP.NET et Visual Studio 2012 Caractéristiques des handlers 21  Les handlers peuvent être utilisés pour pointer sur des ressources Module 8 – Programmation Avancée de ASP.NET spécifiques telles que des images, des informations RSS ou sur des ressources virtuelles (qui n’existent pas physiquement)  Les handlers sont des classes implémentant une interface « IHttpHandler »  Avec IIS 7.0, les handlers s’intègrent en utilisant la section <system.webServer »  Pour les anciennes versions d’ASP.NET, la configuration se faisant dans la section « system.web »Section 2 : Modules et Handlers HTTP Copyright © 2013, Mostefai Mohammed Amine
  22. 22. Développement web avec ASP.NET et Visual Studio 2012 Tutoriel 8.2 : Création de Handlers HTTP 22 • Lancer Tutoriel 8.2, étape 1 Module 8 – Programmation Avancée de ASP.NETSection 1 : Configuration des Applications ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  23. 23. Développement web avec ASP.NET et Visual Studio 2012 Modules HTTP 23  Un module HTTP est un sous-système qui s’inscrit dans le cycle de vie Module 8 – Programmation Avancée de ASP.NET d’une requête HTTP  Un module inscrit des évènements au cycle de vie qui effectuent des actions particulières telles que les statistiques, les logs, l’authentification  Les modules peuvent être réutilisés entre plusieurs applicationsSection 2 : Modules et Handlers HTTP Copyright © 2013, Mostefai Mohammed Amine
  24. 24. Développement web avec ASP.NET et Visual Studio 2012 Tutoriel 8.2 : Création d’un module HTTP 24 • Lancer Tutoriel 8.2, étape 2 Module 8 – Programmation Avancée de ASP.NETSection 1 : Configuration des Applications ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  25. 25. Développement web avec ASP.NET et Visual Studio 2012 Module 8 - Programmation Avancée de ASP.NET 25 Section 3 : Gestion de l’étatCopyright © 2013, Mostefai Mohammed Amine
  26. 26. Développement web avec ASP.NET et Visual Studio 2012 Introduction 26  HTTP est un protocole sans état, en d’autres mots, entre deux requêtes Module 8 – Programmation Avancée de ASP.NET HTTP, toutes les informations créées en mémoire sont perdues  Il est nécessaire de garder un état entre plusieurs requêtes : par exemple le panier dans un site de e-commerce  La gestion de l’état est un mécanisme permettant de retrouver les informations entre plusieurs requêtes sans passer par des moyens de persistance tels que les bases de données ou les fichiers  Il existe deux types de mécanismes de gestion d’état : des mécanismes côté serveur et des mécanismes côté clientSection 3 : Gestion de l’état Copyright © 2013, Mostefai Mohammed Amine
  27. 27. Développement web avec ASP.NET et Visual Studio 2012 Gestion de l’état côté serveur 27 Etat d’application Module 8 – Programmation Avancée de ASP.NET Etat de Profil session CacheSection 3 : Gestion de l’état Copyright © 2013, Mostefai Mohammed Amine
  28. 28. Développement web avec ASP.NET et Visual Studio 2012 Etat de l’application 28  ASP.NET permet de garder l’état entre plusieurs requêtes pour une seule Module 8 – Programmation Avancée de ASP.NET session à travers la propriété « Session »  Contrairement à l’état de l’application, les variables stockées dans la session ne sont communes qu’à une seule session de l’utilisateur  La session se termine après un timeout ou après que l’utilisateur ne ferme la fenêtre du navigateur.Section 3 : Gestion de l’état Copyright © 2013, Mostefai Mohammed Amine
  29. 29. Développement web avec ASP.NET et Visual Studio 2012 Etat de la session 29  Fournit un état accessible à toutes les applications Module 8 – Programmation Avancée de ASP.NET  De type HttpApplicationState  Sa valeur est commune entre toutes les sessions actives  Utile pour des informations partagées telles que le nombre de visiteurs  L’accès à l’état de l’application se fait via la propriété « Application »Section 3 : Gestion de l’état Copyright © 2013, Mostefai Mohammed Amine
  30. 30. Développement web avec ASP.NET et Visual Studio 2012 Tutoriel 8.3 : Gestion de l’état 30 • Lancer Tutoriel 8.3, étape 1 Module 8 – Programmation Avancée de ASP.NETSection 1 : Configuration des Applications ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  31. 31. Développement web avec ASP.NET et Visual Studio 2012 Gestion du cache 31  La compilation des pages demande un temps processeur très considérable Module 8 – Programmation Avancée de ASP.NET  Certaines données très fréquemment utilisées sont sujettes à des modifications qui ne sont pas fréquentes  Le cache permet d’accélérer les traitements en mettant les éléments qui ne sont pas susceptibles de changer dans un cache au lieu de les traiter à chaque requête  ASP.NET offre deux mécanismes de cache : le cache de données et le cache des pagesSection 3 : Gestion de l’état Copyright © 2013, Mostefai Mohammed Amine
  32. 32. Développement web avec ASP.NET et Visual Studio 2012 Le cache de données 32  Le cache de données permet de stocker certaines données dans un Module 8 – Programmation Avancée de ASP.NET emplacement temporaire  Les données sont accédées en utilisant des clés  Les données sont enlevées du cache lorsqu’elles arrivent à expiration ou lorsqu’il n’y a plus d’emplacement mémoireSection 3 : Gestion de l’état Copyright © 2013, Mostefai Mohammed Amine
  33. 33. Développement web avec ASP.NET et Visual Studio 2012 Tutoriel 8.3 : Gestion de l’état 33 • Lancer Tutoriel 8.3, étape 2 Module 8 – Programmation Avancée de ASP.NETSection 1 : Configuration des Applications ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  34. 34. Développement web avec ASP.NET et Visual Studio 2012 Le cache de pages 34  Le cache de pages stocke le contenu d’une forme web dans le cache afin Module 8 – Programmation Avancée de ASP.NET d’éviter sa recompilation  Le cache de page est très utile pour les pages qui ne changent pas fréquemment  Le cache est activé en utilisant la directive « OutputCache »  Dans la directive « OutputCache » certains paramètres sont définis tels que les délais d’expiration ou la variation. Par exemple, pour chaque chaîne de requête de l’URL, un cache de la page est créé.Section 3 : Gestion de l’état Copyright © 2013, Mostefai Mohammed Amine
  35. 35. Développement web avec ASP.NET et Visual Studio 2012 Gestion de l’état côté client 35 Champs cachés Module 8 – Programmation Avancée de ASP.NET Cookies VIEWSTATESection 3 : Gestion de l’état Copyright © 2013, Mostefai Mohammed Amine
  36. 36. Développement web avec ASP.NET et Visual Studio 2012 Les Cookies 36  Petits fichiers texte stockés sur la machine de l’utilisateur. Module 8 – Programmation Avancée de ASP.NET  Quand l’application veut constituer un cookie chez le client, elle l’inclut dans la réponse HTTP  Le Cookie est alors attaché à chaque requête HTTP qu’il émet vers le serveur  Les Cookies peuvent expirer  Les cookies peuvent contenir des données telles que des paramètres d’authentification ou des préférencesSection 3 : Gestion de l’état Copyright © 2013, Mostefai Mohammed Amine
  37. 37. Développement web avec ASP.NET et Visual Studio 2012 Tutoriel 8.3 : Gestion de l’état 37 • Lancer Tutoriel 8.3, étape 3 Module 8 – Programmation Avancée de ASP.NETSection 1 : Configuration des Applications ASP.NET Copyright © 2013, Mostefai Mohammed Amine

×