¿Existe una herramienta efectiva para convertir código C # a código Java?

¿Existe una herramienta efectiva para convertir código C # a código Java?

Nunca he encontrado una herramienta de conversión C # -> Java. La syntax sería bastante fácil, pero los marcos son dramáticamente diferentes. Incluso si hubiera una herramienta, recomendaría encarecidamente no hacerlo. He trabajado en varios proyectos de “migración” y no puedo decir enfáticamente que, si bien la conversión parece una buena opción, los proyectos de conversión siempre siempre se vuelcan a las cajas de dinero. No es un atajo, con lo que terminamos es un código que no es legible y no aprovecha el idioma de destino. hablando desde la experiencia personal, suponga que una reescritura es la opción más barata.

Tenemos una aplicación que necesitamos mantener tanto en C # como en Java. Como mantenemos activamente este producto, un puerto de una sola vez no era una opción. Investigamos Net2Java y las herramientas de Mainsoft, pero ninguno cumplió con nuestros requisitos (Net2Java por falta de solidez y Mainsoft por el costo y la falta de conversión del código fuente). Creamos nuestra propia herramienta llamada CS2J que se ejecuta como parte de nuestro script de construcción nocturno y hace un puerto muy efectivo de nuestro código C # para Java. En este momento es precisamente lo suficientemente bueno para traducir nuestra aplicación, pero tendría un largo camino por recorrer antes de ser considerada una herramienta integral. Hemos licenciado la tecnología para algunas partes con necesidades similares y estamos jugando con la idea de publicarla públicamente, pero nuestra actividad principal simplemente nos mantiene demasiado ocupados en estos días.

Esta publicación de blog sugiere resultados útiles de Tangible .

Hay una herramienta de Microsoft para convertir Java a C #. Para la dirección opuesta, mire aquí y aquí . Si esto no funciona, no debería tomar demasiado tiempo convertir la fuente manualmente porque C # y Java son muy similares,

Aunque esta es una pregunta antigua, eche un vistazo a xmlVM http://www.xmlvm.org/clr2jvm , no estoy seguro de si ya es lo suficientemente maduro, aunque ya hace varios años que funciona. XMLvm fue creado, creo, principalmente para traducir aplicaciones Android de Java al iPhone, sin embargo, su marco basado en la traducción de código XML es lo suficientemente flexible como para hacer otras combinaciones (ver los diagtwigs en el sitio).

En cuanto a una razón para hacer esta conversión, tal vez haya una necesidad de ‘secuestrar’ algunos de los códigos OSS abundantes que existen y usarlos en su propio proyecto [Java].

Aclamaciones

Rico

No se convierten directamente, pero permite la interoperabilidad entre .NET y J2EE.

http://www.mainsoft.com/products/index.aspx

C # tiene algunas características más que Java. Tomemos como ejemplo a los delegates: muchas aplicaciones C # muy simples usan delegates, mientras que las personas de Java calculan que el patrón del observador fue suficiente. Entonces, para que una herramienta convierta una aplicación de C # que usa delegates, debería traducir la estructura de usar delegates a una implementación del patrón de observador. Otro problema es el hecho de que los métodos C # no son virtuales por defecto mientras que los métodos Java lo son. Además, Java no tiene una forma de hacer que los métodos no sean virtuales. Esto crea otro problema: una aplicación en C # podría aprovechar el comportamiento de métodos no virtuales a través del polymorphism de una manera que no se traduzca directamente a Java. Si miras a tu alrededor, probablemente encontrarás que hay muchas herramientas para convertir Java en C #, ya que es un lenguaje más simple (por favor, no me llames, no lo dije peor; dije más simple); Sin embargo, encontrará muy pocas herramientas decente que conviertan C # a Java.

Recomiendo cambiar su enfoque para convertir de Java a C # ya que creará menos dolores de cabeza a largo plazo. Db4Objects lanzó recientemente su herramienta interna que utilizan para convertir Db4o en C # para el público. Se llama Sharpen. Si se registra en su sitio, puede ver este enlace con instrucciones sobre cómo usar Sharpen: http://developer.db4o.com/Resources/view.aspx/Reference/Sharpen/How_To_Setup_Sharpen

(He estado registrado con ellos por un tiempo y son buenos para no enviar spam)

Intente mirar Net2Java Me parece la mejor opción para la conversión automática (o semiautomática al menos) de C # a Java

Estos muchachos parecen tener una solución para esto, pero aún no lo he intentado. También tienen una versión demo del convertidor.

No estoy seguro de lo que está tratando de hacer si desea convertir C # a java, pero si se trata de la interoperabilidad .net que necesita, es posible que desee comprobar Mono

Esto está fuera de lugar, ¿pero no es para lo que era Grasshopper ?

Bueno, la syntax es casi la misma, pero dependen de diferentes marcos, por lo que la única forma de convertirlo es obtener a alguien que conozca ambos idiomas y convertir el código 🙂 la respuesta a su pregunta es no, no hay una herramienta “efectiva” para convertir c # a java

¿Posiblemente podrías usar jni4net – puente opensource en su lugar? O una lista de otras opciones que conozco.

¿Por qué no escribirlo en HAXE ( http://haxe.org/ ) y convertirlo a lo que quieras que sea?