ASP contre ASP.Net

ASP et ASP.Net sont des langages de programmation très différents. ASP est un langage de script, où ASP.NET est la formulation Web d'un langage compilé (Visual Basic, C #, J #, C ++, .Net). De plus, contrairement à ASP, ASP.NET est un langage orienté objet.

Isolement du processus

ASP est exécuté sous l'espace de processus inetinfo.exe (IIS) et est donc susceptible de planter les applications en raison de l'arrêt ou du redémarrage d'IIS.

En revanche, le processus de travail ASP.NET est un processus distinct (aspnet_wp.exe) distinct du processus IIS inetinfo.exe. Le modèle de processus dans ASP.NET n'est pas lié aux paramètres d'isolation de processus dans IIS.

Interprétation vs compilation

Lorsqu'une page ASP traditionnelle est demandée, le texte de cette page est analysé linéairement. Tout le contenu qui n'est pas un script côté serveur est rendu tel quel dans la réponse. Tous les scripts côté serveur de la page sont d'abord exécutés via l'interpréteur approprié (JScript ou VBScript), dont la sortie est ensuite restituée à la réponse.

En revanche, les pages ASP.NET sont toujours compilées en classes .NET hébergées dans des assemblys. Cette classe comprend tout le code côté serveur et le code HTML statique.Ainsi, une fois qu'une page est accédée pour la première fois (ou toute page d'un répertoire particulier est accédée), le rendu ultérieur de cette page est assuré par l'exécution de code compilé. Cela élimine toutes les inefficacités du modèle de script d'ASP traditionnel.

Conséquences sur les performances

  • Étant donné que les scripts ASP sont interprétés à la volée, il y a un impact sur les performances. Une optimisation courante pour les applications ASP consiste donc à déplacer un grand nombre de scripts côté serveur dans des composants COM précompilés pour améliorer les temps de réponse. Étant donné que tous les composants dans ASP.NET sont des assemblys, il n'y a aucune dégradation des performances en utilisant du code côté serveur.
  • Avec ASP, le mélange de blocs d'évaluation côté serveur avec du HTML statique est moins efficace qu'un seul bloc de script côté serveur, car l'interpréteur doit être appelé plusieurs fois. Pour éviter cela, de nombreux développeurs ASP ont recours à de gros blocs de script côté serveur, remplaçant les éléments HTML statiques par des appels Response.Write () à la place. Pour ASP.NET, ces étapes ne sont pas requises pour l'amélioration des performances.
  • ASP permet d'écrire différents blocs de script dans une page dans différents langages de script. Bien que cela puisse être intéressant à certains égards, cela dégrade également les performances en exigeant qu'une page particulière charge les deux moteurs de script (JScript, VBScript) pour traiter une demande, ce qui prend plus de temps et de mémoire que d'utiliser un seul langage. ASP.NET a «code-behind» dans les fichiers .aspx qui sont analysés et compilés. Plusieurs langues côté serveur ne peuvent pas être utilisées dans un seul fichier .aspx.

Débogage

Étant donné qu'ASP implique l'interprétation de scripts, le débogage est difficile. Mais avec ASP.NET, tous les outils disponibles pour le développeur .NET sont applicables au développeur .aspx. Les erreurs avec les pages sont générées comme des erreurs de compilation, et il y a de fortes chances que la plupart des erreurs soient trouvées au moment de la compilation au lieu de l'exécution, car VB.NET et C # sont tous deux des langages fortement typés.

Articles Connexes