Laden...

c#->native code

Erstellt von C#SHARP vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.347 Views
C
C#SHARP Themenstarter:in
40 Beiträge seit 2006
vor 18 Jahren
c#->native code

wäre es irgendwie möglich aus c# eine Win32 (native Code) EXE zu erstellen ???

reine Neugierde

L
50 Beiträge seit 2005
vor 18 Jahren

Soviel ich weiß is das unmöglich, weil bei jeder .Net-sprache der code zuerst in die IL Compiliert wird und dann der Jit-Compiler beim ersten aufruf des Programmes das Programm richtig Compiliert.

Dann is da noch die GarbageCollection die dir das Speichermanagement abnimmt.

Außerdem sind alle Standardklassen in .net im Framework enthalten.

mfg
Luke

I
1.739 Beiträge seit 2005
vor 18 Jahren

>wäre es irgendwie möglich aus c# eine Win32 (native Code) EXE zu erstellen ???

Ja, precompilieren mit NGEN. Da IL aber der Maschine gegenüber sehr flexibel ist, würde ich NGEN erst während der Installation starten(auf dem Ziel).
Vorteile: schnellerer Start und so, ist es das erste Net-Programm(bei Start) muss trotzdem der ganze Frameworkkram erst hochgefahren werden(lohnt sich nicht bei kleinen Anwendungen, die sowieso meist von XCopy-Deployment eher profitieren).
Nachteile:
Echten "nativen Code" wirst du nicht erzeugen können, das wär auch nicht Sinn von .Net, .Net ist Abstraktion nicht Konkret. Bei nativen Code unter Windows(oder anderen, auch älteren OS) findest du inzwischen auch Abstraktionen(sonst müsste deine App. jede Grafik-, Sound- etc. -Karte anders behandeln(ja die App, wieso das das OS...). Abstraktion macht schon alles langsamer(ausser richtiges Rechnen). Aber ohne wär schnelle Hardware sinnlos(weil nicht mehr beherrschbar, in ihrer Vielfalt).

1.549 Beiträge seit 2004
vor 18 Jahren

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

906 Beiträge seit 2005
vor 18 Jahren

Mit XenoBuild geht es:

http://www.xenocode.com/Products/Postbuild/Features.aspx

Native x86 executable generation: Compiles assemblies into native x86 executables, allowing .NET applications to run immediately on machines without the Framework installed.