0

我计划将我的桌面财务应用程序(用 Delphi 编写)重写为 Web 应用程序,并且正在考虑使用哪种技术。其他可能的要求是将尽可能多的代码传输到共享库,该共享库也可以在应用程序的桌面版本中使用。没有所有权的总成本这样的参数。我可以根据需要重写它。

我需要一种能够原生处理 UTF-8 并连接到 PostgreSQL 以及 Microsoft SQL Server 的跨平台技术。

我已经使用 Ruby on Rails 进行了足够多的编程,并且会说它对商业网站非常有用,但不适合我自己的 Web 应用程序,因为我不喜欢它的“魔力”并且无法用 UTF-8 编写 .rb 文件。

PHP 似乎与 RoR 类似,虽然我没有尝试过。

ASP.NET / .NET MVC 符合我的要求,但它仅适用于 Windows。

所以,我选择了Java。但是他们在 Internet 上说 Java 和 JSP 是不同的技术,我不能将 Java 桌面应用程序转换为 JSP。Java 和 JSP 真的如此不同吗?例如,在 .NET 中,我可以编写一个数据库和业务逻辑库,可以在桌面应用程序和 ASP.NET 应用程序中使用。

4

3 回答 3

1

对于您描述的情况,为桌面和 Web 应用程序提供大量共享代码应该很容易。将应用程序视为由 2 层组成:

  • 第 1 层:业务逻辑和数据库访问代码,这一层只是纯 java 它不应该依赖任何无法在容器外运行的技术。例如,您可以使用 JPA 进行数据库访问,并使用 Spring 将您的业务逻辑组织成很好的模块化单元。如果您为此层编写了一个全面的测试套件,那么您将确信您的业务逻辑可以正常工作,并且可以更容易地确定错误是 Web 应用程序错误还是桌面错误。
  • 第 2 层:UI 逻辑,您将需要该层的两个实例,一个使用 Swing 或 JavaFX 等桌面 UI 技术编写,另一层 UI 层使用 JSP/Servlets、JSF、SpringMVC 等 Web 应用程序编程技术编写。 ... 等等。这个 UI 层将依赖于第 1 层,并且由于第 1 层的综合测试套件,您可以确信它在第 1 层上调用的操作是好的。

至于 Web 开发技术,我建议您考虑 JSP 和 Servlet 的更高级别的框架,因为这将为您节省大量时间。

有可能使用 JavaScript、HTML 5 编写单个 UI 层,这是一个 Web 应用程序,但在许多功能上表现得像一个桌面应用程序。然后,您可以制作产品的桌面版本,该版本基本上启动没有 chrome 的浏览器窗口并在其中运行应用程序。如果您确实选择走这条使用 JavaScript 和 HTML 5 的道路,那么有很多框架可供选择,我建议您在 infoq.com 上观看 ThroneOfJS 会议http://www.infoq.com/上的视频为了了解可用的框架,我有偏见的建议是使用 AngularJS。

于 2012-10-14T15:28:55.330 回答
1

JavaJSPs没有什么不同。JSP在执行之前被编译成 Java Servlet

JSP用于编写 HTML/ASP 之类的处理表示的代码。换句话说,它将表示细节与 Java 编码分开,但最终,服务器将您的 JSP 文件编译成 Java Servlet。

你想写什么JSP,都可以通过Servlet

如果您计划在 Servlet 上使用 JSP,请确保您没有在 JSP 本身中编写整个代码,例如从数据库中读取数据。所有的业务逻辑都应该放在 JAVA 类中,并通过您的 JAVA 类在 JSP 中使用。如果设计得当,您的 Java 类可以被重用。

如果我对您的理解正确,这就是您要实现achieve re-usability的目标,即application logic.

于 2012-10-14T15:14:02.957 回答
1

除了您可以像 .NET 一样重用您的服务、逻辑等之外,它们并没有什么不同。唯一的问题是视图,在java中有很多方法可以做到这一点。如果您选择了 JSP,您将需要编写所有演示文稿(您可以调用您的服务、逻辑等),但是如果您想在桌面 java 应用程序中重用尽可能多的代码,那么将它带到 Web 上也许是您的应该看一下java Applets,它们相对简单地变成java应用程序。

于 2012-10-14T15:26:00.460 回答