nativer code mit c#
-
hallo, ich habe gehört, dass man ein .net programm auch in nativen code übersetzen lassen kann. geht das mit c#2005 express, und wenn ja, wo liegen vor und nachteile. danke im voraus für die antworten
-
besucher66 schrieb:
hallo, ich habe gehört, dass man ein .net programm auch in nativen code übersetzen lassen kann. geht das mit c#2005 express, und wenn ja, wo liegen vor und nachteile. danke im voraus für die antworten
es gibt kein solches tool in visual studio und eine übersetzung in nativen code ist völlig sinnlos. erstens wird der code deines programms vor der ausführung durch den jit-compiler sowieso native kompiliert, wodurch sich dein vorhaben eigentlich erübrigt. zweitens geht sonst die flexibilität verloren; support und garantien für die lauffähigkeit kannst du vergessen. und selbst wenn du es native übersetzen lassen kannst, braucht es immer noch das framework. dieses kannst du vielleicht mitkompilieren, aber die resultierende datei wiegt dann mindestens 20mb. überhaupt wirst du, wenn du dir ein solches tool leisten kannst (ich hab mal vor langer zeit eins gesehen; preislage um 6000$ aufwärts), performanceeinbussen hinnehmen müssen, da diese tools niemals so guten code erzeugen, wie es z.B. ein über jahre hinweg entwickelter c++-compiler kann; auch die möglichkeit, dass der jit deinen code auf die zielmaschine optimiert fällt ins wasser. alles in allem würd ich alles die finger davon lassen. soltest du wirklich auf rein nativen code angewiesen sein, dann arbeite mit c++. wenn du nur teilweise nativen code brauchst, dann nimm c++/cli. so, das ist glaub ich alles. danke für die aufmerksamkeit.
-
ein solches tool um eine exe zu erstellen die nicht erst durchs framework laufen muss nennt man "linker"
such bei google...
vorteil:
es kann unter umständen auch auf computern ohne framework laufen.nachteil:
die exe umfasst ca das 100fache volumen.
es ist nicht gewährleistet das es auf jeden pc geht.
kein garbagecollector.
keine verwaltung.
keine anpassung an die umgebung während der laufzeit.
kostet momentan 1300$ pro einzellizens.
-
Jack30lena schrieb:
vorteil:
es kann unter umständen auch auf computern ohne framework laufen.Dazu musst du dann selbst bei trivialen Programmen große Teile der Klassenbibliothek und der Runtime einkompilieren.
Der Trend in der Software-Entwicklung geht eigentlich aus gutem Grund dazu über, Bibliotheken auszulagern, damit sich mehrere Programme diese teilen können. Allein schon wegen der zunehmenden Größe und Menge an Bibliotheken, die ein Programm heute benötigt und wegen kurzen Update-Zyklen ist das statische linken von Libs schon kaum noch sinnvoll.
Viele übersehen, dass auch zu Visual C++ eine riesige Laufzeitumgebung gehört, das Visual C++ Redistributable. Da kommt auch keiner auf die Idee, das statisch hinzuzulinken.
-
Optimizer schrieb:
Dazu musst du dann selbst bei trivialen Programmen große Teile der Klassenbibliothek und der Runtime einkompilieren.
Jack30lena schrieb:
nachteil:
die exe umfasst ca das 100fache volumen.