Die .Net-CLR als Makro-Baukasten

Die .Net CLR bietet nicht nur einen gigantischen Funktionsumfang, sie enthält auch einen kostenlosen C# und VB-Compiler. Damit ist es kein Problem, eigene Makros und Skripte zukünftig direkt in einer dieser Sprachen zu schreiben.

Zudem lassen sich damit problemlos Applikationen mit einer eigenen Plugin-Schnittstelle entwickeln, für die dann die Anwender Ihrer Software eigene Makros oder Module erstellen können, ohne auf eine IDE oder den Original-Sourcecode Ihrer Anwendung angewiesen zu sein.

Doch zunächst beschäftigen wir uns mit den Grundlagen des eingebauten Compilers: Wir erstellen ein universelles Programm namens css, das auf der Kommandozeile normalen C# Code direkt ausführt. Der Ablauf soll dabei genau so einfach sein wie bei den üblichen Macros für den Windows-Skripting Host: Man ruft das Tool auf und übergibt ihm lediglich den Pfad zu einer Datei. Nur enthält diese dann kein VB-Script oder JavaScript mehr, sondern völlig normalen C#-Code.

Diese Datei wird dann geladen, kompiliert und in eine Assembly überführt. Gelingt dies, werden die C#-Anweisungen direkt ausgeführt. Tritt ein Fehler auf, wird dieser mit entsprechenden Hinweisen angezeigt. Im Prinzip macht unser css also nichts weiter, als den Compiler und Linker mit dem übergebenen C#-Sourcecode aufzurufen und das Ergebnis auszuführen.