> Data > ASP.NET 2.0 : Investissez dans les performances

ASP.NET 2.0 : Investissez dans les performances

Data - Par William Sheldon - Publié le 24 juin 2010
email

Que vous soyez un développeur ASP.NET qui travaille sur des applications orientées données ou un DBA SQL Server gérant des applications ASP.NET, vous allez probablement découvrir que certaines possibilités d’ASP.NET 2.0 peuvent vous aider à « booster » les performances de votre site Web. Avec SQL Server afin d’invalider automatiquement les données mises en cache qui sont utilisées par le serveur Web.

ASP.NET 2.0 : Investissez dans les performances

Lorsqu’un utilisateur apporte des modifications au sein d’une page Web, la vitesse de réponse de votre application influe sur la perception que l’utilisateur a des performances de l’application en question. Néanmoins, le volume de données transmis pour gérer ces changements affecte en fait l’évolutivité et les performances de votre application.

Dans les versions précédentes d’ASP.NET, vous activez les éléments dynamiques d’une page Web en envoyant au client un ensemble de fonctions Java ou JScript avec toutes les données sur lesquelles ces scripts doivent agir. Par exemple, si vous souhaitez modifier le contenu de DropDownListBox B sur la base de la sélection de l’utilisateur dans DropDownListBox A, sans effectuer un aller-retour avec le serveur, vous envoyez au client toutes les options possibles pour DropDown- ListBox B, avec le code JScript qui sera appelé chaque fois qu’un utilisateur sélectionne quelque chose dans DropDownListBox A. Toutefois, cette approche présente certaines limitations importantes en termes de performances, dès lors que vous avez une liste étendue d’options potentielles. Vous ne pouvez pas fournir une interface utilisateur réellement interactive si vous devez télécharger potentiellement des milliers d’octets auxquels l’utilisateur n’accédera peut-être jamais.

Au lieu de cela, votre script côté client a besoin de récupérer des données supplémentaires dans le navigateur du poste client sans devoir actualiser toute la page Web. Cette technique, appelée AJAX (Asynchronous JavaScript And XML), est née il y a des années dans le cadre d’améliorations personnalisées apportées à Microsoft Internet Explorer. Au fil du temps, les principaux navigateurs Web ont mis en oeuvre d’une manière ou d’une autre l’objet XMLHTTP introduit par Microsoft et l’éditeur travaille actuellement sur un ensemble robuste d’outils basés sur AJAX, intitulé Atlas, qui soit capable de gérer des pages Web interactives, extrêmement performantes. L’encadré Web « Atlas Takes On the World » (http://www.itpro.fr, Club Abonnés, SQL Server), présente cet ensemble d’outils, mais aussi puissant puisse-t-il être, il n’a pas été inclus dans ASP.NET 2.0, contrairement aux fonctions de rappel.

 Les fonctions de rappel dans ASP.NET 2.0 vous permettent de demander des données supplémentaires à votre serveur, sur la base d’une action de l’utilisateur. Et au lieu d’écrire le code JScript nécessaire pour cette fonctionnalité, vous pouvez exploiter le code intégré ASP.NET 2.0 pour récupérer les données directement du serveur sans renvoyer toute la page sur le client. Les fonctions de rappel se servent de l’interface ICallbackEventHandler d’ASP.NET. Celle-ci définit deux méthodes côté serveur que votre page ASP.NET doit mettre en oeuvre pour gérer les appels d’un client Web vers votre page serveur. Celle-ci appelle la première méthode, Raise- CallbackEvent(ByVal eventArgument As String), lorsque le navigateur du client déclenche un événement callback vers votre serveur.

Le code utilisé pour appeler Raise- CallbackEvent doit utiliser le nom de méthode Raise- CallbackEvent car ASP.NET cherche uniquement une méthode ayant ce nom. Par ailleurs, le code ASP.NET accepte une seule chaîne comme paramètre en entrée à cette méthode, laquelle passe ensuite la chaîne à l’objet XMLHttp Request pour traitement. Cette méthode ne retourne rien, autrement dit il s’agit d’une méthode void en C# et d’une méthode Sub en Visual Basic. Votre page Web doit ensuite implémenter la méthode GetCallbackResult, que la page appelle pour récupérer le résultat de la méthode Raise- CallbackEvent.

Cette deuxième méthode n’accepte pas de paramètre en entrée, mais elle retourne une valeur de type chaîne et il vous faut donc du code client afin d’analyser la chaîne et d’y réagir. Pour certaines opérations plus complexes, par exemple celles remplissant un DataGrid, vous voulez que la chaîne contienne du code XML que vous pouvez analyser dans les lignes et colonnes de votre grille. Vous allez peut-être penser que vous avez besoin d’ajouter des fonctions JScript à votre page afin de mettre en oeuvre ces méthodes côté serveur pour les fonctions de rappel ASP.NET. En fait, votre page doit effectuer seulement quatre étapes pour un rappel au serveur et pour récupérer les résultats, et ASP.NET génère le code à votre place pour les trois premières étapes. Les quatre étapes sont les suivantes :
1. Rappel du serveur avec les données formatées en tant que chaîne pour déclencher le traitement côté serveur.
2. Rappel du serveur pour obtenir le résultat du traitement.
3. Appel de la fonction client que vous définissez, pour lui passer le résultat afin qu’elle puisse le traiter et l’afficher sur la page.
4. Traitement du résultat en JScript ou dans un autre langage de script client.

Téléchargez cette ressource

Préparer l’entreprise aux technologies interconnectées

Préparer l’entreprise aux technologies interconnectées

Avec la « quatrième révolution industrielle », les environnements hyperconnectés entraînent de nouveaux risques en matière de sécurité. Découvrez, dans ce guide Kaspersky, comment faire face à cette nouvelle ère de vulnérabilité.

Data - Par William Sheldon - Publié le 24 juin 2010