it-swarm-es.tech

¿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?

83
joshjdevl

Nunca he encontrado una herramienta de conversión de C # -> Java. La sintaxis sería bastante fácil, pero los marcos son dramáticamente diferentes. Incluso si hubiera una herramienta, aconsejaría fuertemente en contra de ella. He trabajado en varios proyectos de "migración", y no puedo decir con suficiente énfasis que si bien la conversión parece ser una buena opción, los proyectos de conversión siempre siempre siempre se convierten en depósitos de dinero. No es un acceso directo, lo que terminas con es un código que no se puede leer y que no se aprovecha del idioma de destino. hablando desde la experiencia personal, asuma que una reescritura es la opción más barata.

43
Michael Meadows

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

27
Mike Rustici

Este blog post sugiere resultados útiles de Tangible .

8
Nick Westgate

Hay una herramienta de Microsoft para convertir Java a C #. Para la dirección opuesta, eche un vistazo aquí y aquí . Si esto no funciona, no debería tardar mucho en convertir la fuente manualmente porque C # y Java son muy similares,

6
Roger Ween

Aunque esta es una pregunta antigua, eche un vistazo a xmlVM http://www.xmlvm.org/clr2jvm , no estoy seguro de que sea lo suficientemente maduro todavía, aunque ha existido por varios años ahora Creo que XMLvm se creó principalmente para traducir aplicaciones Java de Android al iPhone, sin embargo, su marco basado en la traducción de códigos XML es lo suficientemente flexible como para hacer otras combinaciones (consulte los diagramas en el sitio).

En cuanto a la razón para hacer esta conversión, tal vez sea necesario 'secuestrar' parte del código de oss muy abundante y usarlo dentro de su propio proyecto [Java].

Aclamaciones

Rico

5
Big Rich

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

4
Pedro C

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

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

3
scubabbl

C # tiene algunas características más que Java. Tomemos como ejemplo a los delegados: muchas aplicaciones muy simples de C # usan delegados, mientras que la gente de Java considera que el patrón de observador fue suficiente. Entonces, para que una herramienta convierta una aplicación de C # que use delegados, tendría que traducir la estructura de usar delegados a una implementación del patrón de observador. Otro problema es el hecho de que los métodos de C # no son virtuales de forma predeterminada mientras que los métodos de Java sí lo son. Además, Java no tiene una manera 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 polimorfismo de una manera que no se traduce directamente a Java. Si miras a tu alrededor, es probable que encuentres que hay muchas herramientas para convertir Java a C #, ya que es un lenguaje más simple (por favor, no me llames, no dije nada peor, dije más simple); sin embargo, encontrará muy pocas herramientas decentes que conviertan C # a Java.

Recomendaría cambiar su enfoque para convertir de Java a C #, ya que a la larga creará menos dolores de cabeza. Db4Objects lanzó recientemente su herramienta interna que utilizan para convertir Db4o en C # al 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 hacer spam)

3
Lorentz

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

3
Guven Demir

No estoy seguro de lo que está intentando hacer al desear convertir C # a Java, pero si lo que necesita es la interoperabilidad .net, es posible que desee revisar Mono

1
karlipoppins

Bueno, la sintaxis es casi la misma, pero se basan en diferentes marcos, por lo que la única forma de realizar la conversión es conseguir que alguien conozca ambos idiomas y convierta el código :) La respuesta a su pregunta es que no existe una herramienta "efectiva" para convertir c # a Java

1
Hannoun Yassir

Esto no tiene importancia, pero ¿no es para eso Grasshopper was?

1
Ian Patrick Hughes

Posiblemente podrías usar jni4net - opensource bridge en lugar de eso? O lista de otras opciones Lo sé.

1
Pavel Savara