如何用Java代码重写或者转换C#代码?
我开始使用.net(C#)为客户端和服务器端编写客户端服务器应用程序。
不幸的是,我的公司拒绝为服务器盒上的Windows许可证付费,这意味着我需要用Java重写代码或者采用Mono方式。
有什么好的方法可以用Java转换Ccode吗?服务器应用程序不使用.net特定功能,而仅使用跨语言工具,例如Spring.net,Hibernate.net和log4net。
谢谢。
解决方案
回答
我只知道另一种方式。 Dbo4是用Java开发的,而cversion是自动从Java源代码生成的。
回答
没有好办法。我的建议是从Java重新开始,或者像我们说的那样使用Mono。
回答
尽管我认为第一个错误是在没有确保合适的部署环境的情况下选择一种实现语言,但是现在无法采取任何措施。我认为单声道方式会更好。不得不重写代码只会增加项目的成本,特别是如果我们已经有大量用C#编写的代码。我个人,尽量避免重写代码。
回答
我建议为Mono建立。我们会遇到一些灰色区域,但总体来说很好。但是,如果要为Java构建,则可以签出Grasshopper。这是一种商业产品,但声称可以将CIL(Ccompiler的输出)转换为Java字节码。
回答
除了可能的解决方案外,将一种语言编写的程序直接翻译成另一种语言通常被认为是一个坏主意-特别是如果这种翻译是以某种自动化方式完成的。即使由"真正的"程序员完成,逐行翻译应用程序也会导致最终结果不理想,因为每种语言都有自己的习惯用法,优点和缺点,需要以稍微不同的方式完成操作。
尽管这很痛苦,但这可能是出于最大利益,如果雇主要求,那么那些必须维护此应用程序才能用Java重写该应用程序的人可能会这样做。
回答
Java和Care在语法和语义上非常接近。真正的问题是差异很小。当我们不期望时,他们会咬你。
回答
如果许可适合我们,Grasshopper实际上是目前最好的解决方案(免费版本有一些明显的限制)。它完全基于Mono类库(实际上相当不错),但是在标准Java VM上运行。就我的经验而言,这很好,因为Java VM通常比Mono更快,更稳定。在与表单/图形相关的API方面,它的确比Mono具有更多的弱点,但是,其中大部分还没有从Mono VM移植到Java。
在某些情况下,它可能会很棒。有时性能甚至比在Windows的MS VM上运行相同代码时还要好。 :)
回答
从维护角度讲,我会重写代码。这将增加项目的初始成本,但是对于以后正在查看代码的人来说,它将减少劳动强度。就像以前的海报所说的那样,任何自动化的工作都不能像"真正的"程序员那样出色,并且逐行转换也无济于事。我们不希望以后再产生任何代码,但可以维护。