DevTrain

Autor: Till Groos

Schnellere und sichere Webanwendungen mit dem ASP.NET Precompiler

Der wohl häufigste Grund für die Anwendung des ASP.NET 2.0 PreCompiler ist das schnellere Starten der Webanwendung. 
Zu finden ist das Kommandozeilen Tool unter

%WINDIR%\Microsoft.NET\Framework\v2.0.xxxxx\aspnet_compiler.exe

Als Nebenprodukt bietet der PreCompiler zusätzliche auch noch erhöhte Sicherheit für Ihre Software.

Fleißige Webprogrammierer kennen es nur zu gut: der erste Aufruf Ihrer frisch auf den Webserver aufgespielten 
Webanwendung dauert und dauert und dauert. Grund dafür ist die ASP.NET Engine, die zur Laufzeit den Quellcode in Maschinencode kompiliert. Schlauerweise tut sie dies nur beim ersten Aufruf, danach beliefert sie den Webserver mit Informationen aus dem Cache. Den Cache findet man bei .NET 2.0 im

%WINDIR%\Microsoft.NET\Framework\v2.0.xxxxx\Temporary ASP.NET Files

In Place PreCompilation

Um unsere Kunden mit stehts mit einem zugigen Aufbau unserer Webseite zu begeistern, können wir diesen ersten Aufruf der Webanwendung mit dem PreCompiler erledigen. Der Syntax für diese "In Place" Prekompilation lautet:

aspnet_compiler.exe -v /Myapp

Dieser Aufruf kompiliert das Web im virtuellen Verzeichnis "Myapp". Die vorkompilierten Dateien landen im 
entsprechenden temporären Ordner von ASP.NET. Unser Web startet jetzt nicht nur zügig, wir wissen jetzt auch, dass unser Web syntaktisch Fehlerfrei ist.

PreCompilation for Deployment

Die zweite Methode, um Webseiten vorzukompilieren, ist "PreCompilation for Deployment". Hier können wir eine 
Webanwendung aus dem Dateisystem in ein gewähltes Verzeichnis Vorkompilieren. Das Resultat ist eine "Executable" unseres Webs:

aspnet_compiler.exe -p "c:\meine Quelle" -v / "c:\mein Ziel"

Der Parameter "-p" referenziert hier ein Verzeichnis im Dateisystem. Der Parameter "-v" wird vom Compiler zum Referenzieren der Root der Webs benötigt. Ein weiterer Vorteil dieses Compileraufrufs: es befindet sich kein 
Quellcode mehr auf dem Webserver. Nicht nur alle Klassen aus dem App_Code und die Codebeside-Informationen werden 
kompiliert, auch die .aspx, .asmx, .ashx, .master und .ascx Dateien werden landen als vorkompilierte Dateien im 
Zielverzeichnis. Resultat dieses Kompilierens ist, dass keine Veränderungen durch einfaches kopieren mehr an der 
Webseite vorgenommen werden können. Um wenigstens die .aspx, .asmx, .ashx, .master und .ascx Dateien mit Quelltext im Web zu haben, kann zusätzlich die Option "-u" verwendet werden.

Wer im Besitz eines Visual Studios ist, kann die Vorzüge des Precompiliers auch visuell Nutzen. Unter "Webseite, 
veröffentlichen" finden sich die oben beschriebenen Features für das "PreCompile for Deployment" und einige mehr in
einer kompakten Maske wieder.

Fazit

Der ASP.NET Precompiler bietet nicht nur Vorzüge in Sachen Performance. Auch die Sicherheit unserer Webanwendungen profitieren vom Kompilieren. Syntaktische Fehler in unserer Software können so dem Kunden vorenthalten bleiben und Quellcode bleibt dem suchenden Angreifer verborgen.


Erfasst am: 30.03.2006 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=970
© Copyright 2003 ppedv AG - http://www.ppedv.de