2008-12-12 133 views
3

我的朋友和我在应用程序开发问题上存在分歧。这是一个简单的生产管理应用程序。使用C#前端和Java后端进行编程:好还是坏实践?

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

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

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

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

+0

只是为了澄清:建议在Java中完成的唯一事情是重新格式化XML? – 2008-12-12 19:06:37

回答

10

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

  1. 前端和后端的概念并不真正适用于桌面应用程序。相反,你想使用MVC模式来分离问题。维基百科可能是开始学习或评论的好地方。
  2. 为什么使用套接字(这是完全不必要的),如果你不需要。这是第一个原因,它是一个坏主意,因为如果一切都是用语言完成的,在同一个进程空间中运行(您的应用程序是桌面应用程序或独立应用程序),则不需要使用套接字。
  3. 同样,为什么XML(再次不必要)。不需要,因为您可以传递Java或C#对象。对于XML,首先存在信号噪声问题,因为标签被添加到真实数据中。然后有时间来分析,构建XML,潜在的其他库等。这就是所有在你的朋友的方法中引入的代码。

这些是最明显的原因。从经理或公司的角度还有其他原因:

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

你甚至不知道他的问题是什么,并且你提出了一个模式?还有一个非常模糊的名字(http://tinyurl.com/5gjfjt)。否则,我同意你的看法。 – 2008-12-14 22:53:06

2

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

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

1

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

1

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

5

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

2

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

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

+0

该链接是完美的。我打算给他发送那个链接并说服:) 感谢一个负载 – udpsunil 2008-12-12 19:29:52

1

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

相关问题