使用C#前端和Java后端的程序:好的还是坏的实践?

使用C#前端和Java后端的程序:好的还是坏的实践?,c#,java,desktop-application,C#,Java,Desktop Application,我的朋友和我在应用程序开发问题上有分歧。这是一个简单的生产管理应用程序 据我的朋友说,前端将数据存储在XML中,Java程序将读取XML文档并存储(在后端),然后应用一些业务逻辑并再次将结果存储到另一个XML文档中。C#前端将显示结果(他希望使用套接字来传递XML的状态) 我认为这是个坏主意。我建议整个应用程序要么用C#编写,要么用Java编写 注意:该应用程序是独立的。它不是通过网络使用的 你们有谁试过这个吗?请分享您的想法:)这是一个“不通过网络使用”的桌面应用程序。。。我根本看不到需要真正

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

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

我认为这是个坏主意。我建议整个应用程序要么用C#编写,要么用Java编写

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


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

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


用一种语言编写桌面应用程序,并将数据存储在XML中。

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

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

谈谈把它复杂化。Java或C#。一个确实不是另一个的后端。它们都像语言一样“做同样的事情”。唯一的区别是你是想利用.NET的强大功能,还是巨大的Java框架的强大功能。

所以你的应用程序是独立的,不需要在网络上工作,但你的朋友坚持使用套接字连接应用程序的前端和后端?似乎这个设置有问题


在我看来,您的朋友想使用Java,因为他更了解Java的XML处理框架。就我个人而言,我认为Java和.NET之间的互操作太过分了。用自己选择的一种语言编写应用程序,可以节省大量的工时和挫折感。

你说得对,你的朋友给了你一个坏主意。另外,从你的问题中,我看到有几个问题,我不知道从哪里开始,所以我只列出它们,但不在任何特定的顺序中。但你要继续读下去的基本原则是,你必须同意,越简单越好,正如爱因斯坦所说,“事情应该尽可能简单,但不要简单”(或者类似的话,我不记得确切的引语)

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

  • 要维护此应用程序,经理或公司需要雇佣2个不同的技能集。这可能不是真的,因为大多数程序员无论如何都是多语言的。但情况并非总是如此
  • 在部署方面,现在您强制用户同时安装JRE和.NET framework,以便能够运行您的应用程序。而且这两个都不是很小的足迹
    可以在前端利用C#桌面应用程序的强大功能,在后端使用JavaEJB+Web服务(Jax-ws)。C#应用程序可以读取SOAP wsdl来创建存根和接口,以访问Jax ws实现的Java后端。

    只是为了澄清:在Java中建议做的唯一事情就是重新格式化XML?这个链接非常完美。我将给他发送那个链接,并说服他:)谢谢你,你甚至不知道他的问题是什么,你是在建议一种模式吗?还有一个非常模棱两可的名字()。否则,我同意你的看法。