我很好奇人们如何将开源项目(例如Lucene和Hibernate从Java移植到.NET)?使用Microsoft发布的Java Language Conversion Assistant 2.0是一件简单的事吗?
答案 0 :(得分:11)
不幸的是,对于大型项目而言,通常需要付出更大的努力。一种语言中的效率可能不在另一种语言中,更重要的是,在一种语言中存在可能不在另一种语言中。例如,NHibernate花了年来移植,并且他们仍在这样做(尽管像Linq一样添加功能)。
通常情况下,逐个选择并逐个移植类,在可能的情况下进行优化,在需要的地方更改结构。仿制药,别名和拳击等东西都在港口发生变化。然后,在你完成它之后,通常还有很多优化工作要做(当然这是可选的......),也许它的事件,也许是静态和扩展方法,可能是你的新语言/平台提供的任何东西旧的没有。
这样想,为什么你把它移植到.Net?我打算说你处于两种情况中的一种,一种是因为工作而被迫使用.Net(doh,抱歉!)或者你喜欢 .Net,因为它为你提供了一些优势。在第二类中,这意味着您选择 over Java,因此在移植时,您希望利用任何使您首先选择.Net的功能。
答案 1 :(得分:4)
我建议遵循Noda Time的开发,这是Jon Skeet尝试将Joda Time从Java移植到.Net。 Jon实际上是在以下博客上记录体验:
http://noda-time.blogspot.com/
我建议关注博客,此项目的Google网页论坛以及Google代码项目。谷歌群组和代码页链接可以在博客上的其中一个帖子中找到。