Перенос Java в C#Porting Java to C#

Третий вариант с использованием Java в приложениях Xamarin.Android является порт исходный код Java для C#.A third option for using Java in a Xamarin.Android application is to port the Java source code to C#.

ОбзорOverview

Этот подход может представлять интерес для организаций:This approach may be of interest to organizations that:

  • Выполняется переключение стеков технологий от Java к C#.Are switching technology stacks from Java to C#.
  • Необходимо поддерживать C# и Java-версию того же продукта.Must maintain a C# and a Java version of the same product.
  • Возникает необходимость в версии .NET популярные библиотеки Java.Wish to have a .NET version of a popular Java library.

Существует два способа, чтобы перенести код Java C#.There are two ways to port Java code to C#. Первый способ заключается в том, чтобы вручную перенести код.The first way is to port the code manually. Это включает в себя опытным разработчикам понять .NET и Java и пользователь знаком с правильной идиомы для каждого языка.This involves skilled developers who understand both .NET and Java and are familiar with the proper idioms for each language. Этот подход наиболее целесообразно для небольшого объема кода или организациям, желающим полностью отойти от Java к C#.This approach makes the most sense for small amounts of code, or for organizations that wish to completely move away from Java to C#.

Второй методологию переноса является попробовать и автоматизировать процесс с помощью преобразователь кода, таких как повышении резкости.The second porting methodology is to try and automate the process by using a code converter, such as Sharpen. Развивайте является открытым исходным кодом преобразователь из Versant, который использовался при переносе кода для db4o из Java к C#.Sharpen is an open source converter from Versant that was originally used to port the code for db4o from Java to C#. db4o — это объектно ориентированного база данных Versant разработан в Java, а затем перенесена в .NET.db4o is an object-oriented database that Versant developed in Java, and then ported to .NET. С помощью преобразователя кода имеет смысл для проектов, которые должны существовать в обоих языках и которым требуется некоторые четность между ними.Using a code converter may make sense for projects that must exist in both languages and that require some parity between the two.

Когда имеет смысл средство преобразования кода автоматических пример можно увидеть в ngit проекта.An example of when an automated code conversion tool makes sense can be seen in the ngit project. Является портом проекта Java, Ngit jgit.Ngit is a port of the Java project jgit. Jgit сам является реализацией Java Git кода системы управления версиями.Jgit itself is a Java implementation of the Git source code management system. Для создания C# код из Java, использование программистов ngit пользовательский автоматизированная система извлечения кода Java из jgit, применение некоторых исправлений для поддержания процедуры преобразования и запустите повышении резкости, который создает C# кода.To generate C# code from Java, the ngit programmers use a custom automated system to extract the Java code from jgit, apply some patches to accommodate the conversion process, and then run Sharpen, which generates the C# code. Это позволяет проекту ngit выгоды от непрерывной, текущей работы, выполненной в jgit.This allows the ngit project to benefit from the continuous, ongoing work that is done on jgit.

Обычно имеется нетривиальный объем работы, связанные с начальной загрузки средство преобразования автоматических кода, и это может оказаться препятствием для использования.There is often a non-trivial amount of work involved with bootstrapping an automated code conversion tool, and this may prove to be a barrier to use. Во многих случаях, возможно, проще и легче для порта Java для C# вручную.In many cases, it may be simpler and easier to port Java to C# by hand.