Projekt migrieren von C# auf Java
Mit einigen Veränderungen in der personellen Besetzung im Büro, die Ebenen der C# - know-how hat, abgesetzt zu werden, sprunghaft an und mittlerweile gibt es mehr Java-Entwickler. Es hat sich mittlerweile zu dem Punkt, wo die höheren-ups in Erwägung ziehen, eine bestehende .NET-Projekt in C# geschrieben in die Java-Welt.
Abgesehen von dem offensichtlichen problem der "starten ganz von vorne was sind die Möglichkeiten, die diese Unternehmen erreichen einen erfolgreichen Schritt von der Entwicklung auf ein Projekt aus .NET C# in Java?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier sind Dinge zu beachten:
Wenn Sie sich entscheiden, zu konvertieren:
Nur um Brian und Eric ' s Meinung, ich würde sagen, dass die Kommissionierung bis C# für Java-Entwickler sollte einfach sein meiner Meinung nach. Sie sind konzeptionell sehr ähnliche Sprachen, und ich würde vorschlagen, die Ausbildung Ihres Java-Entwickler zu gewinnen, einige C# - Fähigkeiten, so dass Sie nicht gezwungen werden zu gehen, um den Aufwand einer migration.
Ich abonnieren Joel ist der Ansicht, dass insgesamt umschreiben ist fast immer ein Fehler. Andere Poster haben Recht: C# und Java sind ähnlich genug, dass alle zuständigen Java-Entwickler sollte in der Lage sein, kompetent zu werden in C# in einer Angelegenheit von Wochen oder Monaten. Das ist nicht zu sagen, Sie werden Experten. Dass es länger dauert, aber so lange, wie Sie haben einige C# - Entwickler können den Prozess leiten, dann sollten Sie OK sein.
Es ist schwer zu kommentieren, ob oder nicht, solch ein übergang ist eine gute oder schlechte Idee ist, ohne zu wissen, Besonderheiten der Anwendung: Größe, Art der Anwendung, Industrie und so weiter.
Wäre ich extrem zurückhaltend über solch einen Schalter da, meiner bescheidenen Meinung nach, C# ist nun eine sehr viel modernere Sprache als Java und das sage ich Ihnen als jemand, wurde ein Java-Entwickler ofr über einem Jahrzehnt (seit der 1.0.2/1.1 Tage).
Das ist nicht zu sagen, dass Java schlecht ist. Das ist es nicht. Die Sonne hat eine dunkle Wolke über Sie und zeigte Unwillen oder der Unfähigkeit der Fahrt die Plattform nach vorn in den letzten Jahren.
Unabhängig von den Sprachen beteiligt sind, ist das management dieses Unternehmens klingt verrückt. Für alles andere als eine triviale Anwendung, wie kann es wirtschaftlich sinnvoll ist, neu zu schreiben, eine ganze code-Basis von Grund auf neu, anstatt nur die Einstellung einer einzelnen person mit einigen Fähigkeiten in der richtigen Sprache? Ist das ein Geschäft mit diesem bekannten problem: zu viel Geld übrig?!
Wie lange hat Sie den vorhandenen code in der Entwicklung? Wenn es kaum begonnen, konnte ich das verstehen. Wenn es gesehen wird, ein release und hat aktive Nutzer, es wird nie Sinn machen, um es wegzuwerfen. Wenn du gespendet hast den C# - code, um ein start-up mit den richtigen Fähigkeiten, denken, wie viel Vorsprung Sie haben würde, über Sie.
Beenden, bevor Sie die Konvertierung der .NET-Projekt in Java, alle diejenigen, die Java-Entwickler, die Teil des conversion-Projekt gelernt haben C#. So dass Sie dann nicht mehr brauchen, konvertieren Sie es in Java (und Sie können Sie wegwerfen alle Java-code, der produziert wurde, bei der Umwandlung), denn nun haben Sie ein Entwickler-team, die das können sowohl Java und C#. Das Problem ist gelöst. 😀
Wenn es irgendwelche Komponenten, die bereits isoliert, oder es verwendet eine service-orientierte Architektur, Sie könnte unter Umständen eine Migration einer Komponente zu einer Zeit, (wo jede einzelne Komponente neu geschrieben) und haben noch die Komponenten miteinander sprechen, mit den gleichen interoperable Netzwerk-Protokolle. Hängt wahrscheinlich davon ab, welche Art von app über die wir sprechen.
Stellen Sie sicher, Sie haben Tonnen von tests, da eine solche migration wird dich beißen, wo Sie es am wenigsten erwarten.
Haben Sie mehr .Net-oder Java-Anwendungen in der Produktion. Wenn Ihr bereits eine wesentliche Investition .Net-Server und-Anwendungen, warum nicht Fragen Sie nach Freiwilligen unter den Java-Entwicklern zu verschieben .Net? Die Sprache und die syntax ist sehr ähnlich, so dass der schwierige Teil wäre das erlernen der Rahmen und sofern Sie nicht zu verbringen Ihre ganze Zeit damit, UI-Entwicklung auch das erlernen der Rahmen ist nicht so schwer.
In unserem Büro haben wir eine Reihe von sehr guten Entwicklern, die sich hin und her zwischen der Java-und der .Netto-Bedarf.
Um zu beweisen, management, Sie muss immer zu sprechen im Hinblick auf den ROI und zahlen. Zeigen Sie Ihnen, dass, wenn Sie verschieben Sie diese Anwendungen, es dauert enorm viel Zeit, QA-Ressourcen, und kann leicht in den hintergrund zu Rücken, wenn es bekommt, de-priorisiert durch einige andere Projekt oder eine neue Entwicklung, die Bedeutung.
Hatte ich Erfolg, wenn ich zeigte Ihnen, dass die Zeitpläne, ROI, Arbeitsaufwand, Kosten, etc.
So jetzt kommt der eigentliche Punkt, denke ich, dass Java-Entwickler wäre in der Lage, Unterstützung von C#, es sei denn, Sie haben einige grundlegende mentale Blockade gegen die Microsoft-Technologien.
Haben Sie einen Blick auf Net2Java, die puports zur Unterstützung bei der Umwandlung Ihrer code von C# auf Java. Ich bezweifle, dass es wird perfekt sein, aber sein ein Weg, um entfernen eine Menge Plackerei von der Aufgabe, so dass Sie mit den kinks inkompatibel framework-Aufrufe und Funktionen der Sprache auszubügeln.
Sobald Sie das getan haben, ist Ihre Aufgabe, die wie jede andere große Projekt migration - testen, testen und testen erneut. Unit-tests, System-integration und System-tests, dann die end-user tests. Sollten Sie havew jene tests, die bereits im Ort, die Sie mit der ursprünglichen Anwendung, abgesehen von den unit-tests, werden Sie immer noch relevant.
Wenn Sie beschlossen, dies zu tun, werden Sie wahrscheinlich profitieren Sie von einem hybrid-Ansatz, bei dem man im Grunde mix C# und Java in der gleichen Anwendung, wie es wird sich ändern das Szenario von einem Wasserfall Umstellung auf eine schrittweise migration. Hier kenne ich zwei Möglichkeiten:
1) ikvm ( http://www.ikvm.net/ ), mit denen Sie die Ausführung von Java-code in einer .NET-runtime. Dies ermöglicht es Java-code zum Aufruf der C# - code und Umgekehrt. Dann fixieren Sie den C# - code-Entwicklung, und langsam fügen Sie die überarbeitete Funktionalität der Java-Teil, während eine funktionelle Anwendung.
2) Mainsoft ( http://dev.mainsoft.com/Default.aspx?tabid=130 ), die ermöglicht es Ihnen zu kompilieren .NET-bytecode in Java bytecode. Sie haben eine Kostenlose Einstiegsversion. Ich habe keine Erfahrung mit dem Produkt, aber Sie werben stark auf unsere Plattform, die nur in Java verfügbar.
Ich bin kein Java Experte, aber aus meiner Erfahrung in der Arbeit mit den Java-code, während ein C# - fan, die folgenden sind einige der möglichen Kopfschmerzen:
Persönlich, ich glaube nicht, dass das schreiben von scratch ist eine schlechte Idee. Da Sie bereits eine funktionierende Architektur.
Ich bin etwas überrascht, dass sich niemand sogar vorgeschlagen, die Idee der Ablehnung von migration.
Ich glaube nicht, dass ein C# - Entwickler werden gezwungen zu wechseln Java (oder Umgekehrt) weil er gesagt wurde (auch, wenn er drohte mit einer Pistole, dann vielleicht). Ich nimmt sich viel Zeit, Bewegung und Leidenschaft zu meistern mindestens einen Technologie-stack. Sie können einfach nicht starten, über Nacht mit einer neuen Technologie und erwarten die gleiche Qualität bieten.
Würd ich persönlich nicht stört, bis gesagt, und starten Sie die übertragung. An dem Punkt würde ich sagen, die manager, die ich bin .NET Kerl und nicht wechseln zu einer anderen Technologie, nur weil Sie sich entschieden.
Als für die technische Seite, es ist nicht die Sprache, die syntax, unterscheidet sich aber eher Bibliotheken und deren Funktionen. Natürlich, wenn Sie alle die neuesten Schnickschnack, der .NET 3.5 ausführlich wurden dann die Sprache Unterschied wird Ihnen eine echte Herausforderung.
Das ist sicherlich eine lustige Art und Weise, einfach nur entscheiden, um die Migration von Anwendungen aus .NET zu Java. Jemand hat keine Ahnung von dem Aufwand...
Möglicherweise könnten Sie jni4net - opensource-Brücke ?
Oder eine Liste von andere Optionen ich weiß.