Xamarin Android 용 C# 으로 Java 포팅Porting Java to C# for Xamarin.Android

이 방법은 다음과 같은 조직에 유용할 수 있습니다.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.
  • 인기 있는 Java 라이브러리의 .NET 버전을 사용 하고자 합니다.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. 선명 효과 는 원래 Db4o 코드를 Java에서로 C#이식 하는 데 사용 된 Versant의 오픈 소스 변환기입니다.Sharpen is an open source converter from Versant that was originally used to port the code for db4o from Java to C#. db4o은 Java에서 Versant 개발 된 다음 .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. Ngit은 Java 프로젝트 jgit의 포트입니다.Ngit is a port of the Java project jgit. Jgit 자체는 Git 소스 코드 관리 시스템의 Java 구현입니다.Jgit itself is a Java implementation of the Git source code management system. Java에서 C# 코드를 생성 하기 위해 ngit 프로그래머는 사용자 지정 자동화 된 시스템을 사용 하 여 Jgit에서 java 코드를 추출 하 고, 변환 프로세스를 수용할 수 있도록 일부 패치를 적용 한 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. 대부분의 경우에 C# 는 Java를 직접 이식 하는 것이 더 간단 하 고 더 쉬울 수 있습니다.In many cases, it may be simpler and easier to port Java to C# by hand.