3

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

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

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

4

5 回答 5

3

db4o使用一种名为sharpen的内部工具来维护一个源存储库(我认为是Java)并将其自动转换为C#。

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

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

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


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

于 2008-12-03T23:56:46.953 回答
1

这很难。虽然有一些很好的库可以移植到这两个平台上,但在框架方面,似乎没有太多共同点。

我在这里得到的关于 SO 的偏差是,在 .NET 世界中与公司路线没有太大偏差。就好像 Java 中的每个人都只使用 EJB、JSF 和 JNDI,而从未提出过 Guice、Struts 或 Hibernate。

如果可以的话,我会采取不同的策略:与其并行开发相同的系统,不如开发一个系统,然后在其周围放置一个包装器以支持其他平台。这样做的缺点是其他平台注定要落后于主要平台,例如 Mono。这个缺点也适用于某些库本身的端口,例如 Spring.net 或 Guice.net。

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

于 2008-12-03T23:23:54.133 回答
1

我读过有关Mainsoft应用程序的好东西,尽管我自己从来不用使用它。

于 2008-12-04T00:23:50.143 回答
0

为什么要并行开发 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# 中使用。但是您不必对核心类进行两次编码。

于 2009-03-02T14:02:10.497 回答
0

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

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

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

  3. 还要画出尽可能多的相似之处,我会决定使用 NHibernate 和 Hibernate
于 2009-03-02T17:49:56.453 回答