代码之家  ›  专栏  ›  技术社区  ›  paweloque

RIA与RCP

  •  6
  • paweloque  · 技术社区  · 17 年前

    我参与了一个项目,我们试图为一个旧的应用程序构建一个GUI替代品。在真正实现功能之前,我们已经开始使用EclipseRCP(富客户机平台)和GWT(GoogleWidgetToolkit,一个富互联网应用程序)进行原型设计。您对RIA和RCP GUI有何经验?什么时候使用RIA有意义?在什么情况下富客户端更合适?鉴于目前RIA的可能性,划清界限变得越来越困难。。你有什么经验吗?


    你所有的答案都很有趣。我愿意接受所有这些,因为它们有助于回答我的问题,我承认这是一个相当开放的问题。所以我投了他们每个人的票。希望你能分享这份赏金。

    9 回复  |  直到 17 年前
        1
  •  7
  •   cliff.meyers    17 年前

    没有任何关于应用程序需求的细节是回答这个问题的关键。

    使用GWT的最大好处是相对于RCP这样的东西来说易于部署。对于用户来说,没有什么比将其web浏览器指向URL更容易的了,对于操作团队来说,没有什么比将代码推送到服务器、跳转并调用一天更容易的了。

    我已经用AdobeFlex开发了好几年,发现它真的很强大,或多或少有着与GWT一样的部署优势,但提供了与RCP一样的功能。你可能也想看看。

        2
  •  7
  •   KarlP    17 年前

    • 重复劳动
    • 大量输入
    • 重复的任务
    • 常用操作的快捷键
    • 在任务栏中容易找到的适当窗口。
    • 用于很少使用的操作的上下文菜单
    • 有限的(或已知的)用户数。
    • 大量或复杂的动画或实时更新。

    RCP和workbench不是那么容易使用,但是如果应用程序能够从具有多个开放视图/编辑器等的更“自由”和开放的工作模型中获益,那么您可以免费获得很多。

    如果该应用程序用于更多的临时任务,那么GWT真的很好。

    GWT真的很好, 但它仍然是一个web应用程序,这有时很糟糕。我不想在一个web应用程序中完成所有的工作,因为在这个应用程序中,我可能会意外地按下一个键而丢失所有的工作和会话。(我的键盘甚至在箭头键旁边有一个键,似乎无法禁用)。它功能强大,几乎可以在RCP中执行任何您可以执行的操作,但它仍在web浏览器中运行,这可能会令人恼火。

    请记住,您可以使用JavaWebStart部署RCP应用程序。

        3
  •  3
  •   paxdiablo    17 年前

    我们为Eclipse开发了一个(试点项目)插件,然后将其转换为一个独立的RCP应用程序(我们不想将其作为插件发布,因为我们不想将Eclipse作为预请求,所以我们必须添加一些支持代码,使其比简单的RCP迁移稍微复杂一些) 使用jQuery导入RIA应用程序。

    尽管RCP阵营尽了最大的努力,RIA版本的开发却花费了几乎相同的时间(尽管它是从零开始的),而且执行起来更加流畅。

    关键是RIA版本不需要安装,因为我们所有的客户端都已经有应用服务器,更新集中在一个服务器上,而不是每个客户端。

    RCP版本的功能早已落后。就我们而言,Eclipse作为一个开发环境是很好的(对于Java来说,我们没有其他语言的经验),但是他们将IDE从GUI中分离出来(使RCP成为可能)所付出的努力是不够的 相当地 完成了。

        4
  •  3
  •   KCL    17 年前

    富internet应用程序是一种很好的方法,可以使健壮的软件像传统的桌面软件一样运行。RIA的一个常见问题是,许多开发人员倾向于将业务逻辑放在客户端代码中。客户端代码中的业务逻辑和状态非常不安全,因为可以在运行时操纵客户端代码。此外,它是一个白盒系统,允许黑客检查代码并发现弱点,例如仅在客户端代码中进行输入验证或操纵状态。不要被混淆所愚弄,因为它只会减慢黑客的速度,但不会阻止他。Billy Hoffman写了一本关于AJAX安全性的好书(名为, 塔达 ,“Ajax安全性”),我向每个RIA开发人员推荐它。

    这并不意味着RIA定义不好,如果您知道自己在做什么,您可以编写安全的RIA(客户端代码中没有业务逻辑,没有状态,输入验证[也]在服务器端完成等等)。有两个框架实现了这种更安全的服务器驱动RIA,一个是 IT Mill toolkit (基于GWT)和 ICEFaces 据我所知也应该是这样。

        5
  •  3
  •   paxdiablo    17 年前

    根据我的经验,RIA GUI往往足够健壮,能够向用户传达大多数信息。这可能有一些例外,但我现在想不出一个好的。RIA的优点是任何人都可以通过web浏览器访问,而无需安装厚客户端(RCP)。除非你有一些特殊复杂的显示,不能通过网络技术来完成,否则我建议你走RIA路线。

        6
  •  1
  •   Surya    17 年前

    但是,如果你的用户不需要离线,你就可以省去在你的rcp应用程序和服务器之间同步用户数据/产品更新等的麻烦,RIA将是这种情况下的选择。

        7
  •  1
  •   Adam Paynter    17 年前

    也有可能部署一个RCP,该RCP具有RIA的一些好处。我们正在为客户调查的一个解决方案(仅供公司员工使用)是使用通过Javaservlet启动的Java应用程序。

    • 它的外观、感觉、行为和性能都像本机应用程序,非常像RCP(多亏了SWT)

    确定的一些损害包括:

    • 应用程序必须使用与用户插件兼容的Java版本开发(尽管客户端可能要求在员工计算机上安装最低版本)。RetroWeaver工具可以提供帮助,尽管我对它没有太多经验。
    • 用户必须保持web浏览器处于打开状态,否则应用程序将被终止。
        8
  •  0
  •   jacob.arun jacob.arun    17 年前

    此应用程序的性质是什么。它应该完全在客户端计算机上运行吗?它是否需要访问本地存储的数据?您是否只是对现有应用程序的GUI进行了重新调整,而引擎仍然是遗留代码?

        9
  •  0
  •   McGovernTheory    17 年前

    我的另一半正在开发一个软件设备,她利用AJAX作为配置设备的手段。配置的功能集非常丰富,并且与RIA非常一致。同样,必须在web浏览器上本地安装软件也是极不鼓励的。

    推荐文章