我有一个开源Java数据库迁移工具(http://www.liquibase.org),我正在考虑移植到.Net。
大多数工具(至少从复杂性方面来说)是围绕逻辑的,“如果你要添加一个主键,而数据库是Oracle使用这个SQL。如果数据库是MySQL使用这个SQL。如果主键是named和数据库是Postgres使用这个SQL“。
我可以分叉Java代码库并将其转换(手动和/或自动),但随着对上述逻辑的更新和错误修复,我不想将它应用于这两个版本。我想要做的是将所有逻辑移动到一个可以由Java和.Net版本编译和使用的形式。
我想要转换的代码不包含任何高级库使用(JDBC,System.out等),从Java到.Net会有很大差异,所以我认为这不会是一个问题(最糟糕的是)它可以围绕设计。
所以我要找的是:
我知道Python和Ruby都有针对JVM和CLR的实现。它们如何符合我的要求?有没有人使用这种技术成功(或不成功)用于跨平台应用程序?有什么问题我需要担心吗?
答案 0 :(得分:5)
查看Fantom programming language。它有自己的类Java / C#语法,但可以定位Java VM或.NET CLR。
他们的"Why Fantom"页面概述了他们的可移植性方法与在VM上运行的动态语言的对比。
答案 1 :(得分:1)
使用IKVM.NET可能会有运气。我不确定它的确切状态,但如果您坚持在.NET Framework上运行Java代码,那么值得一试。它包括Java基类库的.NET实现,因此看起来相当完整。
我可能建议的另一个选择是将代码移植到J#语言,这是一种完整的.NET语言(尽管不是C#或VB.NET意义上的第一类)。该语言的设计使得与Java的差异很小。
答案 2 :(得分:0)
如果您正在考虑使用嵌入式方法,可以查看Lua。