当前位置: 首页 > 面试题库 >

使用哪个富客户端平台

孔征
2023-03-14
问题内容

我们最近开始开发Java桌面应用程序,并且管理部门要求我们使用Rich Client Platform。我知道Java有四个:

  1. Eclipse RCP- www链接到ecipse rcp,
  2. Netbean RCP- Netbeans RCP网站
  3. Spring RCP- Spring Rich Client
  4. Valkyrie RCP- Valkyrie富客户端

任何人都没有任何经验,如果是,那么每个人的优势和劣势是什么?

谢谢


问题答案:

我建议您看一下JSR 296-尚未完成,但我认为它达到了在每个Java
GUI应用程序中提供您确实需要的某些核心功能的最佳位置,而不会强迫您继续生活一个过于复杂的框架。

我已经成功地使用JSR
296创建了中型应用程序。对于此应用程序中的窗口布局,我们使用MyDoggy(强烈建议)。对于布局管理,我们使用MiGLayout(强烈建议不要使用)。对于数据绑定,我们使用JSR
295的修改形式(在GUI绑定中,我们在JSR
295的顶部实现了与PresentationModel类似的功能)。我正在将Guice用作DI机制,但尚未完成这项工作(到目前为止,我认为它会在JSR
296上进行一些调整,从而“很好地”发挥作用)。让我们看看…持久性是这里缺少的主要环节-
我目前正在评估Simple的XML持久性,但是在使其与Guice等DI容器一起使用时遇到了问题。我有Betwixt
工作正常,但是对Betwixt的依赖性很大,因此我们正在寻找更简化的方法。

关于Java的其他RCP选项的观点:

NetBeans:我对NetBeans所使用的方法有一些基本的哲学异议(我喜欢太多的设计反模式)。最后,该框架迫使您做出糟糕的设计决策-
如果您不使用NetBeans作为您的IDE,几乎是不可能使用的(我尝试过,但是我无法从Eclipse切换到NB)。可能只有我一个人,但是似乎可以为RCP框架编写代码,而无需使用大型复杂的向导和大量自动生成的代码和XML文件。我花了很多时间对由Visual
Studio生成的旧的Visual C ++代码进行故障排除,以至于对任何无法手动编写的框架都持怀疑态度。

Spring RCP:Spring的人员具有良好的整体设计,但是文档确实非常虚弱。加快速度非常困难(但是一旦完成,您就可以很快完成工作)。

Eclipse RCP:仅仅由于部署开销而没有使用Eclipse(取决于您的目标受众-对我们来说,额外部署50
MB的运行时就是行不通的)。毫无疑问,如果您的应用程序需要重要的插件功能(当然,您也可以在JSR
296上运行Equinox,或者使用类似于OSGi推广的Whiteboard模式的设计模式),Equinox就是一件美丽的事情。



 类似资料:
  • 问题内容: 由于我没有收到对最后一个问题的肯定回答。我将尝试自己编写一个Java FTP上传小程序。 我的问题是:“您能推荐一个Java FTP客户端库供我使用吗?” 我希望它是: 稳定 能够处理被动和主动模式 能够提供上传进度信息 如果出了问题(尤其是上传不成功时),则引发可捕获的异常 便宜/免费使用,最好是开源的 我发现这个 概述了一些库,但由于这篇文章是从2003年,也许一些新的事态发展已经

  • 一面 9.20 个人介绍 实习项目介绍 熟悉什么开发语言 除了一道编程题题回答结果,在多线程环境下,哪个输出结果是准确的 http 的请求过程 tcp 三次握手四次挥手 有一块蛋糕,第二天可能有两个人吃,也有可能有三个人吃,那么最少可以分几块蛋糕使得分蛋糕的结果公平? 有一个5升杯子和一个三升的杯子,怎么装出四升的水? 在夜晚,小明一家人过桥,桥一次只能过两个人,现在有一盏灯只能燃烧30秒,过一趟

  • 自我介绍。 一上来您知道我们这岗位主要做的是移动端?(无语,我项目都是pc的那你给我发面试干嘛都不看简历是吧) 介绍tcp的连接过程 为什么要做一个三次握手的过程? Tcp是一个单向还是双向的连接? Tcp连接的特点? Tcp在一些大数据传输和极端情况下怎么去保护它的可靠性?(没答好) 答了一个序列号,重发机制,剩下没想到。 面试官引导:例如发送失败或者是大批量数据他有什么方法去控制? 在项目中有

  • 1. 创建 Maven 工程 服务端部署完毕后,我们可以新建一个 Maven 工程使用 SOFARegistry 提供的服务。首先新建一个 Maven 工程,然后引入如下依赖: <dependency> <groupId>com.alipay.sofa</groupId> <artifactId>registry-client-all</artifactId> <versi

  • 发起请求 让我们从导入aiohttp模块开始: import aiohttp 好啦,我们来尝试获取一个web页面。比如我们来获取下GitHub的时间轴。 async with aiohttp.ClientSession() as session: async with session.get('https://api.github.com/events') as resp:

  • 我正在使用Netty4创建一个需要为多个客户端连接提供服务的服务器。ServerBootstrap由父线程组和工作线程组构成。根据ServerBootStrap上的文档。group()方法it “为父(接收器)和子(客户端)设置EventLoopGroup。这些EventLoopGroup用于处理SocketChannel和Channel的所有事件和IO。” 据我所知,ParentExecutor