.NET Programme ohne Framework
GEHT NICHT !
Egal was du machst, du wirst für .NET Programme immer mindestens das Restri Paket brauchen (ca. 21 MB).
Kurzer Hintergrund zu .NET!
Die Runtime, CommonLanguageRuntime (CLR) führt eigentlich keinen C# oder VB.NET Code aus. Wenn man mit den entsprechenden Compilern kompiliert, dann wird MSIL (MicrosoftIntermediatLanguage) Code erzeugt. Dieser Code wird zur Laufzeit in Native Code kompiliert und dann erst vom Prozessor ausgeführt. Deswegen auch der etwas verzögerte Startvorgang!
Im Prinzip ist C# oder VB.NET nur die Kelle eines Maurers, du könntest auch IL Code selber schreiben.
Warum gibt es IL? Nun, das ist relativ einfach zu beantworten sieht man sich die Architektur des Frameworks mal genauer an. Die FCL (FrameworkClassLibrary) besteht aus ca. 5000 Klassen. Mircosoft hat natürlich nicht das Rad neu erfunden und ein System geschaffen, das zu 60% API Funktionen kapselt und auführt. Der Grund hierfür ist, das alle Programmiersprachen, die einen .NET Compiler bietet auf die gleiche Art und Weise diese Klassen verwenden können. Entstanden ist ein einheitliches Objekt und Programmiermodell welches für jeden Sprache und auf jeder Plattform gleich funktioniert.
Das funktioniert deshalb, da in der CLS (CommonLanguageSpecification) und dem CTS (CommonTypeSystem) alle Grundlagen verankert sind an die sich ein Compiler halten muss, um typesicheren IL Code zu erzeugen.
Das ist der grob erklärte Hintergrund warum also die Runtime immer benötigt wird. Es gibt zwar ein Tool welches sich ngen.exe nennt mit dem man den IL Code vorkompilieren kann, aber trotzdem wird dieser Code später von der CLR übermacht und ausgeführt (deshalb spricht man von .NET Code auch Managed Code). Der Vorteil dieses Tools besteht lediglich darin, die Startzeit zu normalisieren.
Das war mal gaaaanz grob eine Einführung in .NET
Grüße