Pregunta

Empiezo a escribir una aplicación cliente-servidor usando .net (C#) tanto para el lado del cliente como para el del servidor.

Desafortunadamente, mi empresa se niega a pagar la licencia de Windows en el servidor, lo que significa que necesito reescribir mi código en Java o pasar al modo Mono.

¿Existe alguna buena forma de traducir código C# en Java?La aplicación del servidor no utilizó ninguna característica específica de .net, solo herramientas multilingües como Spring.net, Hibernate.net y log4net.

Gracias.

¿Fue útil?

Solución

Sugeriría construir para Mono.Te encontrarás con una zona gris, pero en general es genial.Sin embargo, si desea compilar para Java, puede consultar Saltamontes.Es un producto comercial, pero afirma ser capaz de traducir CIL (la salida del compilador de C#) a códigos de bytes de Java.

Otros consejos

Dejando a un lado las posibles soluciones, las traducciones directas de programas escritos en un idioma a otro diferente generalmente se consideran una Mala Idea™, especialmente si esta traducción se realiza de alguna manera automatizada.Incluso cuando lo hace un programador "real", traducir una aplicación línea por línea a menudo resulta en un resultado final poco deseable porque cada lenguaje tiene sus propios modismos, fortalezas y debilidades que requieren que las cosas se hagan de una manera ligeramente diferente.

Por doloroso que sea, probablemente sea lo mejor para usted y para aquellos que tienen que mantener esta aplicación reescribirla en Java si eso es lo que su empleador requiere.

Sólo sé al revés. Dbo4 está desarrollado en java y la versión c# se genera automáticamente a partir de las fuentes de java.

No hay una buena manera.Mi recomendación es empezar de nuevo en Java, o como dijiste usar Mono.

Aunque creo que el primer error fue elegir un lenguaje de implementación sin garantizar un entorno de implementación adecuado, no se puede hacer nada al respecto ahora.Creo que la forma Mono sería mejor.Tener que reescribir el código sólo aumentaría el costo del proyecto, especialmente si ya tienes una buena cantidad de código escrito en C#.Yo, personalmente, trato de evitar reescribir el código siempre que sea posible.

Java y C# son bastante parecidos en sintaxis y semántica.El verdadero problema son las pequeñas diferencias.Te morderán cuando no lo esperes.

Grasshopper es realmente la mejor solución en este momento, si la licencia funciona para usted (la versión gratuita tiene algunas limitaciones importantes).Está completamente basado en las bibliotecas de clase Mono (que en realidad son bastante buenas), pero se ejecuta sobre máquinas virtuales Java estándar.Eso es bueno ya que, según mi experiencia, las máquinas virtuales Java son generalmente un poco más rápidas y estables que Mono.Tiene más debilidades que Mono cuando se trata de API relacionadas con formularios/gráficos, ya que gran parte de esto no ha sido portado a Java desde Mono VM, sin embargo.

Sin embargo, en los casos en los que funciona, puede ser maravilloso.A veces, el rendimiento es incluso mejor que cuando se ejecuta el mismo código en la máquina virtual de MS en Windows.:)

Yo diría que desde el punto de vista del mantenimiento, reescriba el código.Aumentará el costo inicial del proyecto, pero luego requerirá menos mano de obra para quien esté mirando el código.Como se indicó en carteles anteriores, cualquier cosa automatizada como esta no puede hacer un trabajo tan bueno como el de un programador "real" y realizar la conversión línea por línea tampoco ayudará mucho.No querrás producir código más adelante que funcione pero que sea un infierno de mantener.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top