Compartir a través de


Portabilidad de Java a C# para Xamarin.Android

Este enfoque puede ser de interés para organizaciones que:

  • Están cambiando las pilas de tecnología de Java a C#.
  • Deben mantener una versión C# y otra Java del mismo producto.
  • Desean tener una versión de .NET de una biblioteca de Java popular.

Hay dos maneras de portar código Java a C#. La primera forma es portar el código manualmente. Implica que deben hacerlo desarrolladores experimentados que entiendan .NET y Java y que estén familiarizados con las expresiones adecuadas de cada idioma. Este enfoque tiene más sentido para pequeñas cantidades de código o para organizaciones que quieren cambiar completamente de Java a C#.

La segunda metodología de portabilidad consiste en probar y automatizar el proceso mediante el uso de un convertidor de código, como Sharpen. Sharpen es un convertidor de código abierto de Versant que se usó originalmente para portar el código para db4o de Java a C#. db4o es una base de datos orientada a objetos, desarrollada en Java y que luego se ha portado a .NET. El uso de un convertidor de código puede tener sentido para los proyectos que deben existir en ambos lenguajes y que requieran cierta paridad entre los dos.

Un ejemplo de cuándo tiene sentido una herramienta de conversión de código automatizada puede verse en el proyecto ngit. Ngit es un puerto del proyecto de Java jgit. El propio jgit es una implementación Java del sistema de administración de código fuente Git. Para generar código C# desde Java, los programadores de ngit usan un sistema automatizado personalizado para extraer el código Java de jgit, aplicar algunas revisiones para acomodar el proceso de conversión y, a continuación, ejecutar Sharpen, que genera el código C#. Esto permite que el proyecto ngit se beneficie del trabajo en curso continuo que se realiza en jgit.

A menudo, hay una cantidad de trabajo que no es trivial implicado en el arranque de una herramienta de conversión de código automatizada, lo que puede resultar un obstáculo para su uso. En muchos casos, puede ser más sencillo y fácil portar Java a C# a mano.