7

我们计划将feedreader创建为Windows 桌面和 iPad 应用程序。由于我们希望能够在此应用程序中显示网站运行(我们自己的)JavaScript,因此我们考虑将应用程序交付为 HTML/CSS/JavaScript,仅由一些 .NET 控件或 Cocoa Touch 网络浏览器组件包装。所以手头的任务是找出使用哪个框架来创建要嵌入到应用程序中的 HTML/CSS/JS 文件。

对于 HTML/CSS/JavaScript 的开发,我们很乐意使用 Vaadin、GWT 或其他一些框架,因为我们使用 Java 比使用 JS 要好得多。经过短暂的头脑风暴后,我们更喜欢 Vaadin,因为 UI 组件非常好,但我担心大部分繁重的工作将在服务器上而不是在客户端上(这不会太好)。我们也想要 GWT,但是 Java 到 JS 的编译需要很多时间和额外的步骤,并且过去使用它时会减慢开发时间。

问题是:你会选择哪个开发框架(假设你想实现这个项目并且到目前为止你主要使用 Java),为什么?如果有更好的框架选项(富客户端框架列表),请告诉我。

编辑:应用程序需要不时与我们的服务器通信(例如同步已读取的内容),但主要应该获取 xml 提要本身。因此,我希望大多数生成的代码可以嵌入到应用程序中,并且不需要我们的服务器进行繁重的活动。

Edit2:我们(实际上即使您怀疑)预计至少有 10000 个用户。

4

3 回答 3

7

根据我在 Vaadin 方面的经验,我会这样做,但您的要求有点偏向于纯 GWT。

  • Vaadin 需要服务器和服务器连接。如果主要构建离线桌面应用程序,这可以通过嵌入式 Jetty 来解决。(仅在需要时与在线服务同步),但对于 iPad,您需要立即在线连接以启动 Vaadin 应用程序。
  • GWT 完全在客户端运行,您可以构建一个仅在需要时连接的 JavaScript 浏览器应用程序。

因为 Vaadin 的开发速度要快得多,所以您可以先构建一个小的 Vaadin 版本,然后看看这在 iPad 上是否真的存在问题。

另一方面,如果您可以假设立即上线,则可以完全跳过本地服务器安装。只需在线运行应用程序并使用操作系统默认浏览器控件(即您建议的 .NET 控件)实现桌面版本。那么 Vaadin 就容易多了。

于 2011-03-11T13:17:34.867 回答
4

我的 3 美分:

如果您决定使用 vaadin,您将受益于已经 GOOD LOOKING 的组件。由于您不想编写(很多) CSS ,因此 vaadin 开箱即用已经很漂亮了。然而,Vaadin 是一个 SERVERSIDE 框架。即使用户界面交互不涉及获取任何数据(例如从一个选项卡移动到另一个选项卡),它们也会到达后端。

如果您决定使用 GWT,则至少必须为应用程序设置样式(这并不难)。还有编译时间长的问题(但是你可以在托管模式下测试和调试,这样你就可以在不编译的情况下运行应用程序,然后只在部署时编译)。gwt 的主要优点是您可以控制发送到线路的内容,对于不需要从后端获取数据的 UI 交互,它将纯粹在客户端工作。开发人员将确定何时向后端发送请求。(在 GWT 中做 RPC 请求非常简单)

希望这会帮助您做出决定。

于 2011-03-11T11:34:47.923 回答
4

Vaadin 只是基于 GWT 的框架,但有两个非常重要的特性:

  • 不需要运行 GWT 编译器。它是纯Java。当然,如果不添加插件,则必须运行 gwt 编译器。
  • 您无需编写通信代码。所以你不需要解决 DTO 问题、不可序列化的对象映射,也不需要编写 servlet。

我在工作中使用 Vaadin 一年了,我们还没有出现性能问题(桌面应用程序,大约 500 个用户)。IMO 非常好的解决方案是仅将 Vaadin 用于 UI,逻辑移动到独立的 bean 并使用 Spring 或 Guice 连接这两个元素。

在这种情况下,您应该使用 MVP 模式和领域驱动开发。

  • Bussines bean 是使用视图接口发送响应的域对象和逻辑。
  • 自定义 Vaadin 组件(可以扩展标准组件)实现视图接口。

如果 Vaadin 不适合您,那么当您决定更改 UI 引擎时,这种方式很好。只需重写 guice/spring 映射并编写视图接口的新实现。

于 2011-03-10T13:45:15.230 回答