2008-09-15 5 views
4

Ich beginne eine Client - Server - Anwendung mit .net (C#) für Client - und Server - Seite zu schreiben.Wie kann ich C# -Code in Java-Code umschreiben oder umwandeln?

Leider weigern sich meine Firma, für Windows-Lizenz auf Server-Box zu zahlen, was bedeutet, dass ich meinen Code in Java neu schreiben oder auf die Mono-Weise gehen muss.

Gibt es eine gute Möglichkeit, C# -Code in Java zu übersetzen? Die Server-Anwendung hat keine .net-spezifische Funktion verwendet, sondern nur sprachübergreifende Tools wie Spring.net, Hibernate.net und log4net.

Danke.

+0

Ich denke, ich habe eine doppelte Frage gefunden: http://stackoverflow.com/questions/78811/is-there-an-effective-tool-to-convert-c-sharp-code-to-java-code –

Antwort

6

Ich würde vorschlagen, für Mono zu bauen. Sie werden in eine Grauzone geraten, aber insgesamt ist es großartig. Wenn Sie jedoch für Java erstellen möchten, können Sie unter Grasshopper nachsehen. Es ist ein kommerzielles Produkt, aber es behauptet, CIL (die Ausgabe des C# -Compilers) in Java-Bytecodes übersetzen zu können.

+4

I wissen nichts über Grasshopper, aber es klingt wie eine schlechte Idee. Wenn Sie beabsichtigen, diese App in Java auszuführen und zu warten, werden Sie die Quelle in Java und nicht in C# haben wollen. – shsteimer

0

Ich kenne nur den anderen Weg. Dbo4 wird in Java entwickelt und die C# -Version wird automatisch aus den Java-Quellen generiert.

0

Es gibt keinen guten Weg. Meine Empfehlung ist, in Java von vorne anzufangen, oder wie du gesagt hast, benutze Mono.

0

Obwohl ich glaube, der erste Fehler war die Auswahl einer Implementierungssprache, ohne eine geeignete Implementierungsumgebung sicherzustellen, kann nichts dagegen unternommen werden. Ich würde denken, dass der Mono-Weg besser wäre. Code neu schreiben zu müssen würde nur die Kosten des Projekts erhöhen, besonders wenn Sie bereits eine gute Menge Code in C# geschrieben haben. Ich persönlich versuche, Code wann immer möglich neu zu schreiben.

4

Mögliche Lösungen beiseite, direkte Übersetzungen von Programmen in einer Sprache in eine andere Sprache geschrieben wird in der Regel als eine schlechte Idee betrachtet ™ - vor allem, wenn diese Übersetzung in irgendeiner automatisierten Weise erfolgt. Selbst wenn es von einem "echten" Programmierer gemacht wird, führt die Übersetzung einer Anwendung Zeile für Zeile oft zu einem weniger als wünschenswerten Endergebnis, da jede Sprache ihre eigenen Idiome, Stärken und Schwächen hat, die etwas anders ausgeführt werden müssen.

So schmerzlich wie es sein mag, es ist wahrscheinlich in Ihrem besten Interesse und diejenigen, die diese Anwendung beibehalten müssen, um es in Java neu zu schreiben, wenn das ist, was Ihr Arbeitgeber benötigt.

0

Java und C# sind in Syntax und Semantik recht eng verwandt. Das eigentliche Problem sind die kleinen Unterschiede. Sie werden dich beißen, wenn du es nicht erwartest.

0

Grasshopper ist derzeit die beste Lösung, wenn die Lizenzierung für Sie funktioniert (die kostenlose Version hat einige erhebliche Einschränkungen). Es basiert vollständig auf den Mono-Klassen-Bibliotheken (die eigentlich ziemlich gut sind), läuft aber auf Standard-Java-VMs. Das ist gut, da die Java-VMs meiner Erfahrung nach etwas schneller und stabiler sind als Mono. Es hat mehr Schwächen als Mono, wenn es um APIs für Forms/Graphics geht, da vieles davon jedoch nicht von der Mono-VM auf Java portiert wurde.

In den Fällen, in denen es funktioniert, kann es aber wunderbar sein. Die Leistung ist manchmal sogar besser als beim Ausführen desselben Codes auf MS VM unter Windows. :)

0

Ich würde sagen, aus einem Wartungsstandpunkt den Code neu schreiben. Es wird die anfänglichen Kosten des Projekts erhöhen, wäre aber später weniger arbeitsintensiv für jeden, der sich den Code ansieht. Wie bei früheren Postern wurde gesagt, dass alles, was so automatisiert ist, nicht so gut funktioniert wie ein Job als "echter" Programmierer, und Zeile für Zeile zu konvertieren, wird auch nicht viel helfen. Du willst später keinen Code erstellen, der funktioniert, aber es ist die Hölle, die es zu pflegen gilt.

Verwandte Themen