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.
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.
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.
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.