2009-05-01 4 views
8

오픈 소스 Java 데이터베이스 마이그레이션 도구 (http://www.liquibase.org)를 가지고 있습니다.이 도구는 .Net으로 이식 할 것을 고려하고 있습니다.JVM/CLR 소스 호환 언어 옵션

대부분의 도구 (복잡성 측면에서 보면)는 "기본 키를 추가하고 데이터베이스가 Oracle에서이 SQL을 사용하는 경우와 같은 논리가 있습니다. 데이터베이스가 MySQL 인 경우이 SQL을 사용하십시오. 기본 키 Postgres는이 SQL을 사용합니다. "

Java 코드베이스를 포크하여 (수동 및/또는 자동으로) 변환 할 수 있지만 위의 로직에 대한 업데이트 및 버그 수정으로 인해 두 버전에 모두 적용하지 않아도됩니다. 내가하고 싶은 것은 모든 논리를 자바와 닷넷 버전 모두가 컴파일하고 사용할 수있는 형태로 옮기는 것이다.

변환 할 때 찾고있는 코드에는 Java에서 .Net으로 크게 다를 수있는 고급 라이브러리 사용 (JDBC, System.out 등)이 포함되어 있지 않으므로 문제가 될 것이라고 생각하지 않습니다. 최악의 경우 주변에서 설계 될 수 있음).

그래서 내가 무엇을 찾고 있어요 것은 :

  • 나는 내 응용 프로그램의 공통 부분을 코딩하고 대상 플랫폼의 "표준"언어에서 사용 가능한 클래스로 컴파일 할 수있는 언어
  • 시스템
  • 그래서 이상한 아무것도 멀리 무서워하는 것이 모든 런타임 요구 사항을 추가하지 않습니다 잠재적 인 참여자

내가 KN ow Python과 Ruby는 모두 JVM과 CLR을 구현하고 있습니다. 그들이 내 요구 사항에 얼마나 잘 맞습니까? 크로스 플랫폼 애플리케이션에이 기술을 사용하여 성공한 사람 (또는 성공하지 못한 사람)이 있습니까? 내가 걱정해야 할 잡화가 있습니까?

답변

5

Fantom programming language을 확인하십시오. 자체 Java와 유사한/C#과 유사한 구문을 갖지만 Java VM 또는 .NET CLR을 대상으로 할 수 있습니다.

페이지의 "Why Fantom" 페이지에서는 VM에서 실행되는 동적 언어와 비교하여 이식성에 대한 접근 방식에 대해 자세히 설명합니다.

+0

팬이 최선의 선택 인 것 같습니다. Jython on Java는 CLR에서 IronRuby가 버전 0.3에 머물면서 잠시 동안 작업하지 않은 것처럼 보입니다. 나는 이것이 내가 정말로하고 싶은 것이거나 포크를하는 것이 더 쉬운지를 알기 위해 Fan을 더 배워야 할 것이다. –

+0

자이 썬의 최신 버전은 11 월에 나왔다.이 버전에서는 팬텀 (Fantom)이이 경우에 더 잘 어울리는 것에 동의하지만, 꽤 적극적으로 보인다. – Yishai

1

IKVM.NET을 사용하면 운이 좋을지도 모릅니다. .NET Framework에서 Java 코드를 실행해야하는 경우에는 정확한 상태가 확실하지 않지만 시도해 볼 가치가 있습니다. 그것은 Java 기본 클래스 라이브러리의 .NET 구현을 포함하므로 합리적으로 완성 된 것처럼 보입니다.

내가 제안하는 유일한 다른 옵션은 J# 언어로 코드를 이식하는 것입니다.이 언어는 전체 .NET 언어입니다 (C# 또는 VB.NET이라는 의미에서 첫 번째 클래스는 아니지만). 이 언어는 Java와의 차이점이 최소화되도록 설계되었습니다.

+0

두 옵션을 모두 생각했지만 IKVM에 대한 나의 관심은 종속성을 추가하는 것이었고 J #에 대한 나의 관심은 .net 개발자가 조롱 당하고있었습니다. –

+0

@Nathan : 아주 이해할 수 있습니다 ...주류 기술 내에서 원하는 방식으로 "이상적인"솔루션을 찾지는 못할 것이라고 생각합니다. 대부분의 프로젝트 관리자는 (아마도 다른 사람들의 도움을 받아) 전체 코드 기반을 다른 언어로 이식하고 모든 포트에서 코드에 대한 변경/수정을 병렬 처리합니다. 필자는 개인적으로 JVM/CLR 버전에 동일한 코드 기반을 사용하려고 시도하는 것보다 더 많은 문제를 겪게 될 것이라고 생각합니다. 별도의 포트를 유지하는 것이 더 많은 노력이지만 가치가 있습니다. – Noldorin

0

emdedded approach를 생각하고 있다면 루아를 볼 수 있습니다.

관련 문제