Portabilidade de Java para C# para Xamarin.Android

Essa abordagem pode ser de interesse das organizações que:

  • Estão alternando pilhas de tecnologia de Java para C#.
  • Deve manter um C# e uma versão Java do mesmo produto.
  • Deseja ter uma versão do .NET de uma biblioteca Java popular.

Há duas maneiras de portar o código Java para C#. A primeira maneira é portar o código manualmente. Isso envolve desenvolvedores qualificados que entendem o .NET e o Java e estão familiarizados com as expressões apropriadas para cada linguagem. Essa abordagem faz mais sentido para pequenas quantidades de código ou para organizações que desejam se afastar completamente do Java para o C#.

A segunda metodologia de portabilidade é tentar automatizar o processo usando um conversor de código, como o Sharpen. Sharpen é um conversor de código aberto do Versant que foi originalmente usado para portar o código para db4o de Java para C#. db4o é um banco de dados orientado a objeto que o Versant desenvolveu em Java e, em seguida, portado para o .NET. Usar um conversor de código pode fazer sentido para projetos que devem existir em ambas as linguagens e que exigem alguma paridade entre os dois.

Um exemplo de quando uma ferramenta de conversão de código automatizada faz sentido pode ser visto no projeto ngit . Ngit é uma porta do jgit do projeto Java. O Jgit em si é uma implementação Java do sistema de gerenciamento de código-fonte Git . Para gerar código C# do Java, os programadores ngit usam um sistema automatizado personalizado para extrair o código Java do jgit, aplicar alguns patches para acomodar o processo de conversão e, em seguida, executar o Sharpen, que gera o código C#. Isso permite que o projeto ngit se beneficie do trabalho contínuo e contínuo que é feito no jgit.

Geralmente, há uma quantidade não trivial de trabalho envolvida na inicialização de uma ferramenta de conversão de código automatizada, e isso pode ser uma barreira a ser usada. Em muitos casos, pode ser mais simples e fácil portar Java para C# manualmente.