我正在进行一个项目,我们尝试为旧应用程序构建 GUI 替代品。在我们真正实现该功能之前,我们已经开始使用 Eclipse RCP(富客户端平台)和 GWT(Google 小部件工具包,一种富互联网应用程序)进行原型设计。您对 RIA 和 RCP GUI 的体验如何?什么时候使用 RIA 有意义?在什么情况下富客户端更适合?随着 RIA 当前的可能性,划清界限变得越来越困难。你有什么经验吗?


编辑:你所有的答案都非常有趣。我愿意接受所有这些,因为它们有助于回答我的问题,我承认这是一个相当开放的问题。所以我对他们每个人都投了票。希望奖金能与大家分享。

有帮助吗?

解决方案

有不是你的应用程序的要求,任何一个细节是真正关键回答这个问题。

在大赢使用GWT是易于部署相对的为类似RCP。没有什么更容易为用户比在一个URL并没有什么方便的操作团队不是推开代码到服务器,弹跳它,把它每天指着自己的网络浏览器。

至于功能,大面积,其中GWT将拿出短会更丰富的数据可视化:图表,树/节点,网络图等,这东西是可能的GWT和服务器上的一些帮助,但局限性DHTML开始显现出来,即使有一个强大的工具包像GWT。在另一方面,RCP为您提供了Java 2D的全功率的可视化你想要的任何东西。这些类型的功能可能没有必要给你,但他们也使企业的应用非常有趣的的,不仅仅是一个选项卡,树和数据网格控件乱了。

我已经与Adobe Flex现在开发了好几年,并发现它是真正强大的,具有更多或更少相同的部署优势像GWT,但提供相同的那种力量为RCP。您可能要检查出来了。

其他提示

尽管 GWT 已经走了很长一段路,但它并没有提供与适当的应用程序相同的灵活性和可访问性。

尽管 GWT 应用程序几乎可以完成实际应用程序可以完成的所有操作,但许多因素表明 RCP 将是最好的工具。

  • 重复工作
  • 大量输入
  • 长时间的会议
  • 重复任务
  • 用于编辑或演示的自定义小部件。
  • 具有不同数据的多个窗口。
  • 常用操作的快捷键
  • 快速反应。
  • 一个真正的菜单栏,coolbars。
  • 一个可以在任务栏中轻松找到的合适窗口。
  • 很少使用的操作的上下文菜单
  • 用户数量有限(或已知)。
  • 广泛或复杂的动画或实时更新。

如果您认为您的应用程序需要一个带有多个视图和编辑器的工作台,那么就可以选择。

RCP 和工作台使用起来并不容易,但是如果应用程序受益于具有多个开放视图/编辑器等的更“自由”和开放的工作模型,那么您可以免费获得很多东西。

如果应用程序用于更多的偶然任务,那么 GWT 确实不错。

GWT确实不错, 但它仍然是一个网络应用程序,有时这很糟糕。我不想在网络应用程序中完成所有工作,因为这样我可能会意外地按下某个键并丢失所有工作和会话。(我的键盘甚至在箭头键旁边有一个似乎无法禁用的键)。它足够强大,几乎可以完成您在 RCP 中可以做的任何事情,但它仍然在 Web 浏览器中运行,这可能会令人恼火。

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

我们开发了一个(试点项目)插件的Eclipse,然后将其转化为两个独立的RCP应用程序(我们不想将它作为一个插件,因为我们不希望Eclipse作为预REQ,所以我们不得不添加一些支持的代码使之略不仅仅是一个简单的举动为RCP更复杂)的的到使用jQuery一个RIA应用程序。

尽管RCP阵营的最好的努力,RIA版本花费了大约相同的时间来开发(即使它是从头开始),它看起来在执行更顺畅。

在硬道理是,有没有安装需要与RIA版本,因为我们所有的客户已经有应用服务器和更新是在一个集中的服务器,而不是每个客户端。

在RCP版本早已被在功能上留下。就我们而言,Eclipse是罚款,一个开发环境(用于Java,我们与其他语言的经验),但他们投入裂开从GUI的IDE的努力(使RCP可能)不< EM>相当成品。

在另一方面,jQuery的似乎定制的那种东西(可能是因为它的那种东西还是定制)建。这两个应用程序开发和运行都非常不错。

丰富的互联网应用是使强大的软件,像传统的桌面软件的好方法。与RIA的一个普遍问题是,许多开发商倾向于把业务逻辑在客户端代码。在客户端代码的业务逻辑和状态是非常不安全的人可以操纵在运行时的客户端代码。此外,它是白盒系统,它允许黑客检查代码,并找到弱点,如仅在客户端代码或操纵状态进行输入验证。不要混淆由被愚弄了,因为它只是减缓黑客,但不会阻止他。比利·霍夫曼写了一本好书关于AJAX安全(调用的 TA-DAA 的 “Ajax安全”),我推荐它为每一个RIA开发者。

这并不意味着RIA被定义不好,你可以编写安全的RIA,如果你知道你在做什么(在客户端代码,没有状态,输入验证(也)在服务器端完成等没有业务逻辑) 。有一对夫妇,其实现驱动RIA这保证器服务器框架,一个是(基于GWT) IT米尔工具包 ICEFaces的也应该是我的知识。

在我的经验,RIA的GUI往往是足够强大的大部分信息传达给用户。有一些可能是一些例外,但现在我想不出一个好的。 RIA拥有的是无需安装胖客户端(RCP)访问通过网络浏览器的人的优点。除非你有一些特殊的复杂的显示无法通过网络技术来完成我建议你去的RIA路线。

这是组织我工作选择RCP,因为他们的用户需要与应用在线和离线工作(当他们在路上等)。我知道这是可能与谷歌的grears,但现在的齿轮是不是真的主流够大organiazation立足其旗舰产品上。 但是,如果用户没有这个必要下线,你真的会节省您的RCP应用程序和服务器之间同步用户数据/产品更新ECT的麻烦,RIA是在这种情况下要走的路。

还可以部署具有 RIA 一些优点的 RCP。我们的客户正在研究的一种解决方案(仅供其公司内的员工使用)是使用通过 Java servlet 启动的 Java 应用程序。

确定的一些好处包括:

  • 它很容易升级,就像RIA一样(只需重新部署其JAR文件,下次使用小程序浏览页面时就会选择它)
  • 它看起来、感觉、行为和执行都像一个本机应用程序,非常像一个 RCP(感谢 SWT)

已确定的一些损害包括:

  • 用户的计算机必须安装 Java 插件。
  • 应用程序必须使用与用户插件兼容的 Java 版本进行开发(尽管客户端可能要求在员工计算机上安装最低版本)。RetroWeaver 工具可以提供帮助,尽管我对此没有太多经验。
  • 用户必须保持网络浏览器打开,否则应用程序将被终止。

什么是本申请的性质。它应该是一个客户端计算机上运行完全?是否需要访问本地存储的数据?你只是replcaning的GUI与发动机仍然遗留代码的现有应用?

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top