ASP vs. ASP.Net

ASP und ASP.Net sind sehr unterschiedliche Programmiersprachen. ASP ist eine Skriptsprache, wo als ASP.NET ist die Webformulierung einer kompilierten Sprache (Visual Basic, C #, J #, C ++, .Net). Anders als ASP ist ASP.NET eine objektorientierte Sprache.

Inhalt: ASP vs ASP.Net

  • 1 Prozessisolierung
  • 2 Interpretation vs. Kompilierung
    • 2.1 Auswirkungen auf die Leistung
  • 3 Debugging
  • 4 Referenzen

Prozessisolierung

ASP wird unter dem Prozessraum inetinfo.exe (IIS) ausgeführt und ist daher anfällig für Anwendungsabstürze, da IIS gestoppt oder neu gestartet wird.

Auf der anderen Seite ist der ASP.NET-Arbeitsprozess ein separater Prozess (aspnet_wp.exe), der vom IIS-Prozess inetinfo.exe getrennt ist. Das Prozessmodell in ASP.NET steht in keiner Beziehung zu den Prozessisolierungseinstellungen in IIS.

Interpretation vs. Kompilierung

Wenn eine herkömmliche ASP-Seite angefordert wird, wird der Text dieser Seite linear analysiert. Alle Inhalte, die kein serverseitiges Skript sind, werden in der Antwort so wiedergegeben, wie sie sind. Das gesamte serverseitige Skript auf der Seite wird zuerst durch den entsprechenden Interpreter (JScript oder VBScript) ausgeführt, dessen Ausgabe dann in der Antwort wiedergegeben wird.

Im Gegensatz dazu werden ASP.NET-Seiten immer in .NET-Klassen kompiliert, die sich in Assemblys befinden. Diese Klasse umfasst den gesamten serverseitigen Code und den statischen HTML-Code. Wenn also zum ersten Mal auf eine Seite zugegriffen wird (oder auf eine Seite in einem bestimmten Verzeichnis zugegriffen wird), wird das nachfolgende Rendern dieser Seite durch Ausführen von kompiliertem Code ausgeführt. Dadurch werden alle Ineffizienzen des Skriptmodells herkömmlicher ASPs eliminiert.

Auswirkungen auf die Leistung

  • Da ASP-Skripts schnell interpretiert werden, hat dies Auswirkungen auf die Leistung. Eine häufige Optimierung für ASP-Anwendungen besteht daher darin, viele serverseitige Skripts in vorkompilierte COM-Komponenten zu verschieben, um die Antwortzeiten zu verbessern. Da alle Komponenten in ASP.NET Assemblys sind, gibt es keinen Leistungsabfall durch die Verwendung von serverseitigem Code.
  • Bei ASP ist das Durchmischen serverseitiger Auswerteblöcke mit statischem HTML-Code weniger effizient als ein einzelner serverseitiger Skriptblock, da der Interpreter mehrmals aufgerufen werden muss. Um dies zu vermeiden, greifen viele ASP-Entwickler auf große Blöcke serverseitiger Skripte zurück und ersetzen stattdessen statische HTML-Elemente durch Response.Write () - Aufrufe. Für ASP.NET sind solche Schritte zur Leistungsverbesserung nicht erforderlich.
  • ASP ermöglicht, dass verschiedene Skriptblöcke innerhalb einer Seite in verschiedenen Skriptsprachen geschrieben werden. Dies mag in mancher Hinsicht ansprechend sein, beeinträchtigt jedoch auch die Leistung, da von einer bestimmten Seite beide Scripting-Engines (JScript, VBScript) zur Verarbeitung einer Anfrage geladen werden müssen. Dies erfordert mehr Zeit und Speicher als die Verwendung einer einzigen Sprache. ASP.NET enthält "CodeBehind" in ASPX-Dateien, die analysiert und kompiliert werden. Mehrere serverseitige Sprachen können nicht in einer einzelnen ASPX-Datei verwendet werden.

Debugging

Da in ASP Skripts interpretiert werden, ist das Debuggen schwierig. Mit ASP.NET können jedoch alle für den .NET-Entwickler verfügbaren Tools auf den ASPX-Entwickler angewendet werden. Fehler bei Seiten werden als Compiler-Fehler generiert, und es besteht eine gute Chance, dass die meisten Fehler zur Kompilierungszeit statt zur Laufzeit gefunden werden, da VB.NET und C # beide stark typisierte Sprachen sind.

Verweise

  • wikipedia: Aktive Serverseiten
  • Wikipedia: ASP.NET