问题描述
我们最近开始开发Java桌面应用程序,管理层要求我们使用Rich Client Platform。我知道Java有四个:
We recently started to develop a Java desktop app and management has requested that we make use of Rich Client Platform. I know of four for Java namely:
- Eclipse RCP - ,
- Netbean RCP - ,
- Spring RCP -
- Valkyrie RCP -
- Eclipse RCP - www link to ecipse rcp,
- Netbean RCP - Netbeans RCP web site,
- Spring RCP - spring rich client
- Valkyrie RCP - Valkyrie rich client
有没有人有任何经验如果是这样的话,每个人的力量和弱点是什么?
Has anyone got any experience in any of these and if so what are the strength and weaknesess of each?
谢谢
推荐答案
我建议你看一下JSR 296 - 它不是完整的,但是我认为它提供了你真正需要的每个Java GUI应用程序中的某些核心功能而不强迫的最佳位置ÿ你会生活在一个过于复杂的框架中。
I recommend that you take a look at JSR 296 - it's not complete yet by any stretch, but I think it hits the sweet spot for providing certain core functionality that you really, really need in every Java GUI app, without forcing you to live in an overly complicated framework.
我已成功使用JSR 296来创建一个中型应用程序。对于此应用中的窗口布局,我们使用(强烈推荐)。对于布局管理,我们使用MiGLayout(超越强烈推荐)。对于数据绑定,我们使用JSR 295的修改形式(我们在顶部实现了类似于的内容)我们用于GUI绑定的JSR 295)。我正在将Guice作为一种DI机制加入,但还没有完成那些努力(到目前为止,我认为它将与JSR 296一起发挥良好作用并在此处进行调整)。让我们看看...持久性是这里最大的缺失链接 - 我目前正在评估的XML持久性,但是遇到让它与像Guice这样的DI容器一起工作的问题。我有的工作,但对Betwixt的依赖很大,所以我们正在寻找更精简的东西。
I have used JSR 296 successfully to create a mid-sized application. For window layout in this app, we use MyDoggy (highly recommended). For layout management, we use MiGLayout (Beyond highly recommended). For data binding, we use a modified form of JSR 295 (we implemented something similar to PresentationModel on top of JSR 295 that we use for our GUI binding). I'm in the process of incorporating Guice as a DI mechanism but haven't finished that effort (so far, I think it will 'play well' with JSR 296 with a tweak here and there). Let's see... persistence is the big missing link here - I am currently evaluating Simple for XML persistence, but am running into issues with getting it to work with DI containers like Guice. I have Betwixt working, but the dependencies on Betwixt are huge so we are looking for something more streamlined.
关于Java的其他RCP选项的意见:
Opinions on other RCP options for Java:
NetBeans:
我有一些基本的哲学反对意见NetBeans使用的方法(根据我的口味设计反模式太多)。最后,框架迫使您做出糟糕的设计决策 - 如果您不使用NetBeans作为IDE(我尝试过,但我无法从Eclipse切换到NB),几乎不可能使用它。它可能只是我,但似乎应该可以编写RCP框架的代码,而无需使用大型复杂的向导和大量的自动生成的代码和XML文件。我花了这么多时间来解决Visual Studio生成的旧Visual C ++代码,我对任何无法手动编码的框架非常谨慎。
NetBeans:I have some fundamental philosophical objections to the approach used by NetBeans (too many design anti-patterns for my taste). In the end, the framework forces you to make poor design decisions - and it's almost impossible to use if you don't use NetBeans as your IDE (I tried, but I just couldn't switch from Eclipse to NB). It's probably just me, but it seems that it should be possible to write code for an RCP framework without using big complicated wizards and reams of auto-generated code and XML files. I've spent so many hours troubleshooting old Visual C++ code generated by Visual Studio that I'm extremely leery of any framework that can't be coded up by hand.
Spring RCP:
Spring的人们有一个很好的可靠设计,但文档确实非常薄弱。很难快速上手(但是一旦你做到了,你可以很快完成任务)。
Spring RCP:The folks at Spring have a good solid design, but the documentation is really, really weak. It's pretty difficult to get up to speed on it (But once you do, you can get things done pretty quickly).
Eclipse RCP:
没有使用Eclipse只是因为部署开销(取决于您的目标受众 - 对我们来说,部署额外的50 MB运行时只是不起作用)。毫无疑问,如果您的应用程序需要重要的插件功能,Equinox是一件很棒的事情(当然,您也可以使用JSR 296运行Equinox,或者使用类似于OSGi推广的Whiteboard模式的设计模式)。
Eclipse RCP:Haven't used Eclipse just because of the deployment overhead (depends on your target audience - for us, deploying an extra 50 MB of runtime just didn't work). Without question Equinox is a beautiful thing if your app needs significant plugin functionality (of course, you could run Equinox with JSR 296 as well, or use design patterns similar to the Whiteboard pattern promoted by OSGi).
这篇关于使用哪个富客户端平台的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!