用C#前端和Java后端编程:好的还是坏的做法?

时间:2008-12-12 18:58:48

标签: c# java desktop-application

我和我的朋友对应用程序开发问题存在分歧。这是一个简单的生产管理应用程序。

根据我的朋友的说法,前端以XML格式存储数据,Java程序将读取XML文档,存储它(在后端),并应用一些业务逻辑并再次将结果存储到另一个XML中文献。并且C#前端将显示结果(他希望使用套接字来传达XML的状态)。

我认为这是一个坏主意。我建议整个应用程序应该用C#或Java编写。

注意:该应用程序是独立的。它不是通过网络使用的。

你们有没有试过这个?请分享您的想法:)

7 个答案:

答案 0 :(得分:11)

你是对的,你的朋友提出了一个坏主意。另外,从你的问题,我看到有几个问题,我不知道从哪里开始,所以我只会列出它们,但不是在任何特定的oder。但是你要阅读的基本规则是,你必须同意,更简单的更好,因为爱因斯坦说“事情应尽可能简单但不简单”(或类似的东西,我不记得确切的引用)。

  1. 前端和后端的概念并不真正适用于桌面应用程序。相反,您希望使用MVC模式来分离关注点。维基百科可能是开始学习或复习的好地方。
  2. 如果你不需要,为什么要使用socket(完全没必要)。这是一个坏主意的第一个原因,因为如果一切都是用语言完成的,你就不需要使用套接字,在相同的进程空间中运行(你的应用程序是桌面应用程序或独立应用程序)。
  3. 同样,为什么XML(再次没必要)。没有必要,因为你可以只传递Java或C#对象。使用XML,首先会出现信号噪声问题,因为标签会添加到真实数据中。然后是时候解析,构建XML,潜在的其他库等等。这将是你朋友的方法中引入的所有代码。
  4. 这些是最明显的原因。从经理或公司的角度来看还有其他原因:

    1. 要维护此应用程序,经理或公司需要雇用2种不同的技能组合。这可能不是真的,因为大多数程序员无论如何都是多语言的。但事情并非总是如此。
    2. 在部署方面,现在您强制用户同时安装JRE和.NET框架,以便能够运行您的应用程序。其中任何一个都不是一个小的足迹。

答案 1 :(得分:5)

谈论让它变得复杂。 Java或C#。一个人真的不是另一个人的后端。他们都和语言“做同样的事情”。唯一的区别在于您是想利用.NET的强大功能,还是利用极其巨大的Java框架的强大功能。

答案 2 :(得分:3)

这是一个“不通过网络使用”的桌面应用程序......我根本没有看到需要真正的“后端”。

使用单一语言编写桌面应用程序,并以XML格式存储数据。

答案 3 :(得分:2)

因此,您的应用程序是独立的,不需要通过网络工作,但您的朋友坚持使用套接字连接应用程序的前端和后端?这个设置有问题,似乎是more complicated than it needs to be

听起来我的朋友想要使用Java,因为他更了解Java的XML处理框架。就个人而言,我认为Java和.NET之间的互操作是过度的。通过用您选择的单一语言编写应用程序,您可以节省大量的工时和挫折。

答案 4 :(得分:1)

你朋友的建议是保持模块化。使用什么语言并不重要,但如果将它放在一个大项目中,你可能会使它不模块化。

答案 5 :(得分:1)

对于那种类型的应用程序,我会使用一种语言。

答案 6 :(得分:1)

可以在前端利用C#桌面应用程序的强大功能,并在后端使用Java Ejb + Web Service(Jax-ws)。 C#apps可以读取SOAP wsdl来创建存根和访问Jax-ws实现的Java后端的接口。