我这里有一个很多年前编写的应用程序,其中包含一个重量级前端,可以直接查询数据库服务器。该应用程序可在大约7个专用工作站上运行。我碰巧还有一个基于Web的前端,它具有相同的功能集,还有一个基于Web的管理,用于管理和报告数据-它们都直接访问了数据库。

该应用程序非常简单,我知道它可以很好地解决问题。它可能会使用更新,而且我什至无法访问在GUI上工作所需的工具。我最近一直在学习Java,看来改写这个应用程序将是一个很好的入门项目。

所以我的问题是这样的:

我想在Swing中,该应用程序将需要一个非Web GUI。由于非常特殊的原因,这是必需的。该应用程序还将需要一个基于Web的GUI,该GUI具有与Swing front相同的功能,并且可能会被部署为JSR-168 Portlet,并且还需要一个基于Web的管理工具(也包括Portlet)。在我以前的设计中,由于每个组件都有自己的代码库,所以最终得到了大量重复的代码,并且我愚蠢地使用存储过程来帮助确保关键计算至少一致。

我应该从哪里开始?我很难确定这在Java世界中应该如何工作。我想我最难过的是如何创建一个应用程序,该应用程序可以同时具有Swing(或其他)前端和基于Web的前端,并尽可能减少重复?

编辑:我从概念上知道这是如何工作的。我要问的是关于Java技术的建议。要考虑的框架等

最佳答案

构建一个包含业务逻辑的核心。使用JDepend或类似的工具来确保它无处引用任何摆动或任何web / jsp / servlet。

构建两个UI:对于Web版本,选择一个您选择的webframework,然后从那里调用您的业务逻辑。

对于Swing框架,您有两种选择:通过Web服务访问Businesslogic(您可以使用RMI或其他任何方式,但是我不会),即逻辑位于为Web应用程序提供服务的同一Web服务器上(我可能更愿意这样做)。另一种选择是为Weblogic附带一个摆动GUI。使编码和调试更加容易,但是现在您有多个访问数据库的点,当您要使用缓存时会引起头痛

无论如何,您只应复制gui内容,一次在html / css / javascript中,一次在swing中。

祝贺该项目,它将教您很多有关设计和软件体系结构的信息

10-08 01:12