ASP vs. ASP.Net

ASP und ASP.Net sind sehr unterschiedliche Programmiersprachen. ASP ist eine Skriptsprache, wobei ASP.NET die Webformulierung einer kompilierten Sprache ist (Visual Basic, C #, J #, C ++, .Net). Darüber hinaus ist ASP.NET im Gegensatz zu ASP eine objektorientierte Sprache.

Prozessisolierung

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

Andererseits ist der ASP.NET-Arbeitsprozess ein eigenständiger Prozess (aspnet_wp.exe), der vom IIS-Prozess inetinfo.exe getrennt ist. Das Prozessmodell in ASP.NET hat nichts mit den Prozessisolationseinstellungen in IIS zu tun.

Interpretation vs. Zusammenstellung

Wenn eine herkömmliche ASP-Seite angefordert wird, wird der Text dieser Seite linear analysiert. Alle Inhalte, die kein serverseitiges Skript sind, werden unverändert an die Antwort zurückgegeben. Alle serverseitigen Skripte auf der Seite werden zuerst über den entsprechenden Interpreter (JScript oder VBScript) ausgeführt, dessen Ausgabe dann an die Antwort zurückgegeben wird.

Im Gegensatz dazu werden ASP.NET-Seiten immer in .NET-Klassen kompiliert, die in Assemblys enthalten sind. Diese Klasse enthält den gesamten serverseitigen Code und den statischen HTML-Code. Sobald 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 bedient. Dadurch werden alle Ineffizienzen des Skriptmodells des herkömmlichen ASP beseitigt.

Auswirkungen auf die Leistung

  • Da ASP-Skripte im laufenden Betrieb interpretiert werden, wirkt sich dies auf die Leistung aus. Eine übliche Optimierung für ASP-Anwendungen besteht daher darin, viele serverseitige Skripte in vorkompilierte COM-Komponenten zu verschieben, um die Antwortzeiten zu verbessern. Da alle Komponenten in ASP.NET Assemblys sind, kommt es bei Verwendung von serverseitigem Code nicht zu Leistungseinbußen.
  • Mit ASP ist das Vermischen von serverseitigen Auswertungsblöcken mit statischem HTML 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.
  • Mit ASP können verschiedene Skriptblöcke innerhalb einer Seite in verschiedenen Skriptsprachen geschrieben werden. Dies mag in gewisser Weise ansprechend sein, beeinträchtigt jedoch auch die Leistung, da eine bestimmte Seite beide Skript-Engines (JScript, VBScript) laden muss, um eine Anforderung zu verarbeiten. Dies erfordert mehr Zeit und Speicher als die Verwendung nur einer Sprache. ASP.NET verfügt über "Code-Behind" in ASPX-Dateien, die analysiert und kompiliert werden. In einer ASPX-Datei können nicht mehrere serverseitige Sprachen verwendet werden.

Debuggen

Da bei ASP Skripte interpretiert werden, ist das Debuggen schwierig. Mit ASP.NET sind jedoch alle Tools, die dem .NET-Entwickler zur Verfügung stehen, auf den ASPX-Entwickler anwendbar. Fehler mit Seiten werden als Compilerfehler generiert, und es besteht eine gute Chance, dass die meisten Fehler zur Kompilierungszeit anstelle der Laufzeit gefunden werden, da VB.NET und C # beide stark typisierte Sprachen sind.

Ähnlicher Artikel