您会选择哪些主流框架、模式和工具来并行开发两个项目(一个使用 C#,一个使用 Java),以便最大限度地减少总工作量。(忽略可互换或等效工具的明显情况,例如 SCC、单元测试等。还假设通用广泛的 RDBMS 支持。)

“主流”意味着市场一般不会忽视结果,因为它使用了他们从未听说过的未经测试的东西,或者需要神秘的技能来实施和支持它。

假设有一个广泛适用的战术业务应用程序。

有帮助吗?

解决方案

这是艰难的。虽然有移植到这两个平台提供一些好的库,当它涉及到框架,似乎没有被太多的共性。

我在这里得到了对SO漂移是,有没有从.NET世界的公司行较小偏差。这将是因为如果每个人都在Java中使用EJB只,JSF和JNDI,从不与吉斯,Struts的,弄出或休眠状态。

如果我可以,我会采取不同的策略:不是并行开发同一个系统,开发一个系统,把一个包装围绕它来支持其他平台。这样做的缺点是,其他平台注定要落后于伯,例如单声道。该缺点也适用于一些库本身,像Spring.net或Guice.net的端口。

或者你可以发明自己的芥末

其他提示

数据库4o 使用名为的内部工具 锐化 维护一个源存储库(我认为是 Java)并将其自动转换为 C#。

正如他们在博客文章中所说:

在你开始做梦之前:锐化不是“魔杖”。不要指望向其提供任意 Java 应用程序并按一下按钮即可接收正在运行的 .NET 版本。转换过程需要在 Java 方面做出一些设计妥协,并且部分 .NET 代码仍然需要手工制作并集成到转换后的源代码中。

然而,它仍然是一个很酷的项目。另外,我认为它最适合新项目。根据 GPL 发布,但您必须注册 开发者.db4o.com 下载它。


编辑: 这里 也是一个示例博客文章。

我读过有关有Mainsoft 应用好东西,虽然我从未使用过它自己。

为什么要并行开发 Java 和 C#?

您可以只使用 Java 和 J#。唯一的问题是,J# 停留在 Java 1.4 级别,因此您有两个选择:

  • 不要使用枚举、泛型、for-each 等花哨的东西
  • 使用像 Retroweaver 这样的工具将 1.5 转换回 1.4

我刚刚构建了一个中型应用程序(大约 80 个类/30,000 行),该应用程序可以通过这种方式在 Java 和 .NET 上很好地运行。

据我所知,J# 编译的 Java 类是 .NET 字节码,就像任何其他 .NET 字节码一样,可以在 C# 中使用。但您不必对核心类进行两次编码。

根据项目的规模,我建议采用以下技术和方法:

  1. 由于 Java 和 C# 中的 UI 非常不同,我将为这两个项目构建 UI 的 XML 表示形式...然后决定两个选项之一 a) 基于通用 XML 对两个项目的 UI 类源进行静态和单次生成(这可能会以某种方式与您的构建过程集成,以便整个过程自动启动) b) 在这两种情况下动态生成 UI(可能更难实现)

  2. 为了使两个项目的架构相似,我将使用 Spring 和 Spring.NET

  3. 为了尽可能多地相似,我会选择 NHibernate 和 Hibernate
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top