寻找关于 JIDE 的反馈
我即将开始开发相当大的基于 java 的桌面应用程序。看了JIDE组件和框架,乍一看似乎是一个不错的解决方案。我想听听那些使用过这些产品的人的意见。他们有多可靠?学习曲线是怎样的?优点和缺点?
I'm about to start development of fairly large java based desktop application. After looking at JIDE components and frameworks, it seems to be a good solution at a glance. I'd like to hear from those who used those products. How reliable are they? What's the learning curve? Pros and cons?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我已经在积德生活和呼吸了近两年了。作为我公司 Swing GUI 应用程序的主要开发人员,JIDE 让我的生活既轻松又困难。
首先,好部分。
其组件的广度和深度令人难以置信。他们最新的演示有 171 个项目,大多数都针对不同的组件。这才是 Swing 应该有的样子。该公司确实很小,但你不可能说他们只有“一种产品”(@Stephen C)。您找不到任何其他组件套件拥有从日期选择器和弹出警报到可搜索和可过滤列表和表格,再到数据透视表和对接的所有功能。
他们的支持是超现实的。确实(根据 @Carlos),唯一的媒介是论坛,但是周转时间和他们的回复质量确实令人惊叹(我是那里的第三名海报,所以我确实知道)。我的许多帖子都是新功能和 API 更改(例如私有 -> 受保护)请求,并且它们在一两个版本内满足了其中的绝大多数(这意味着最多几周到一个月)。
您可以购买源代码许可证以获得完整的源代码和未混淆的调试 jar。如果您打算使用他们更复杂的产品(例如枢轴和对接),我强烈建议您这样做(我希望我能从他们那里获得销售佣金)。
一旦您拥有了它们的源代码,您就可以根据需要进行大量自定义,因为代码非常开放并且结构良好,适合扩展。有时扩展未记录的类/方法是有风险的,但他们的代码非常稳定。
我不得不说他们的代码质量是一流的。它并不是非常干净(它和 Swing 本身一样大),但我从来没有被迫挠头并想知道 WTF。
他们为每个产品组提供了非常可靠的开发人员指南(向下滚动页面)。 javadoc 非常好。 完整演示本身就是探索组件和功能的好方法。 文档是我选择 JIDE 对接而不是 FlexDock 的主要原因(后来我发现 JIDE 对接还具有更多功能)。
现在是困难部分。
正如 @Carlos 提到的,他们确实在每个版本中引入了回归。他们似乎没有完全全面和全自动的回归测试,但考虑到其产品的复杂性和交互性,这可能几乎是不可能的,尤其是对于枢轴和对接之类的东西。尽管他们修复问题的速度非常快,但等待然后升级到新版本却发现其他回归总是很痛苦。话虽这么说,我公司的 GUI 应用程序已经发布了多个版本,没有出现重大问题。
我主要使用了他们的许多有些独立的组件,如日期选择器、气球提示、状态栏、多页对话框等,以及他们最复杂的两个产品:数据透视表和对接。 (抱歉,没有 JDAF。)
它们之所以复杂,是有充分理由的。 OLAP 本身就是一个行业,对接是所有现代 IDE 的基础。这就是为什么我没有称此部分为“糟糕的部分”。枢轴和对接很难使用,不是因为它们的质量,而是因为它们的复杂性。
例如,JIDE 对接管理器有超过 70 个原始 bean 属性(截至 2.9.5)。有些是相互依赖的,需要一段时间才能弄清楚如何根据您的特定需求进行设置。
总而言之,我毫无保留地推荐JIDE。如果你因为它的专有性而无法使用它,那将是一个巨大的遗憾,在这种情况下,甚至不要看它的演示,否则你会发现其他一切都缺乏。
I have lived and breathed JIDE for close to 2 years. As the main developer of my company's Swing GUI app, JIDE has made my life both easier and harder.
First, the good part.
The breadth and depth of its components are incredible. Their lastest demo has 171 items, and most are for different components. It's what Swing should've been. The company is indeed small, but you can't possibly say they have only "one product" (re @Stephen C). You're not gonna find any other component suite that has everything from date chooser and popup alert, to searchable and filterable list and table, to pivot table and docking.
Their support is surreal. It's true (per @Carlos) that the only medium is the forum, but the turn-around time and quality of their responses are truly amazing (I'm the 3rd top poster there, so I do know). Many of my posts are new feature and API change (e.g. private -> protected) requests, and they fulfill the vast majority of them within one release or two (which means a few weeks to a month at most).
You can buy source code license for full source code and unobfuscated debug jars. I'd strongly suggest that you do (I wish I could get sales commission from them) if you plan to use their more complicated products like pivot and docking.
Once you have their source code, you can do a lot of customization if you need to, as the code is very open and nicely structured for extension. Sometimes it's risky to extend undocumented classes/methods, but they've kept their code very steady.
And I have to say that their code quality is top notch. It's not squeaky clean (it's as big as Swing itself), but I've never been forced to scratch my head and wonder WTF.
They have very solid developer guide(scroll down the page) for each product group. javadoc is excellent. The full demo itself is a great way to explore the components and features. Documentation was the main reason why I picked JIDE docking over FlexDock (and later I found JIDE docking also has a lot more features).
Now the difficult part.
As @Carlos mentioned, they do introduce regressions with each release. It doesn't seem like they have totally comprehensive and fully automated regression tests, but that's probably next to impossible given the complexity and interactive nature of their products, especially for things like pivot and docking. Even though they fix things very fast, it's always a pain having to wait and then upgrade to a new version, only to find other regressions. That being said, my company's GUI app has shipped several versions without major issues.
I've mainly used many of their somewhat standalone components like date chooser, balloon tip, status bar, multi-page dialog, etc., and two of their most complicated products: pivot table and docking. (Sorry, no JDAF.)
They are complicated for good reasons. OLAP is an industry of its own, and docking is the underpinning of all modern IDEs. That's why I didn't call this section "the bad part". Pivot and docking are difficult to use not because of their quality but due to their complexity.
For example, JIDE docking manager has over 70 primitive bean properties (as of 2.9.5). Some are interdependent, and it takes a while to figure out how to set them for your particular needs.
All in all, I would recommend JIDE without any reservation. It'd be a huge pity if you can't use it due to its propriety, in which case don't even look at its demo, otherwise you will find everything else out there lacking.
我已经使用 JIDE 2.5 年了。就我而言,它是最好的 Swing 组件库(因为数量不多)。如果您想从这里获取一个组件,从那里获取另一个组件,则某些功能可以被其他替代方案替换,但有些功能似乎是独一无二的。当然,采用一种完整的解决方案比单独的组件和框架更容易。尽管我应该指出,我主要使用了库中的单独组件以及 Docking 框架,但没有使用 JDAF,所以我无法对此发表评论。
大多数部分的质量都很好,尽管在某些时候感觉每个版本都会引入新的错误。但每个 Swing 版本都是如此,所以不能真正责怪他们。总体而言,响应时间和客户服务都很好,因此您并不孤单遇到问题。他们似乎也愿意根据客户的需求调整他们的产品。
然而,在某些方面他们的操作似乎有点业余。例如,我上次检查时,他们的论坛仍然被用作错误数据库。他们还发布了大量新产品,其中一些似乎永远停留在测试阶段。
我建议您联系他们了解部署费用,以了解总成本,评估产品,然后考虑采用 JIDE 的风险和成本与其他替代方案的风险和成本相比。开源也并非没有风险。被困在一个死的商业产品上可能比被困在一个死的开源产品上更糟糕,但我也不喜欢。
I've been using JIDE for 2,5 years now. As far as I'm concerned, it's the best Swing component library there is (as there aren't many). Some of the functionality can be replaced by other alternatives if you want to take a component from here and another from there but some seem to be unique. And of course it is easier to adopt one complete solution instead of separate components and frameworks. Though I should point out, that I've mainly used separate components from the library as well as the Docking framework, but not JDAF so I can't comment on that.
Quality has been good for the most parts although at some point it felt as every release introduced a new bug. But so does every Swing release, so can't really blame them. Response times and customer service in general has been good so you're not alone with your problems. They also seem willing to adapt their products for customers needs.
However, on some parts their operation seems a bit amateurish. For example, the last time I checked, their forum was still used as a bug database. They also have released a large number of new products, some of which seem to be stuck in the beta stage forever.
I'd recommend that you contact them about the deployment fee to get an idea of the total costs, evaluate the product and then consider the risks and costs of adopting JIDE compared to the risks and costs of other alternatives. Open source is not risk free either. Being stuck on a dead commercial product may be worse than being stuck on a dead open source product, but I wouldn't enjoy either.
我对此产品持谨慎态度:
如果您想分发给客户或进行大规模内部部署,您似乎将被收取“可协商”的部署费。
JIDE Software 似乎是一家小型产品公司。对于任何这样的公司,都存在很大的风险,即它会倒闭或被收购,让客户因产品失效而陷入困境。
使用 JIDE 将会成为使您的应用程序开源的障碍……如果您未来的计划中有这一步的话。
更新 (2022)
另一件需要警惕的事情是 JIDE Software 似乎没有计划正确支持较新版本的 Java。例如,似乎对 JDK 内部 API 的依赖关系正在逐渐关闭……从 Java 9 开始。
I'd be wary of this product:
It appears that you will be charged a "negotiable" deployment fee if you want to distribute to customers or do a mass in-house deployment.
JIDE Software seems to be a small one product company. With any company like this, there is a significant risk that it will go out of business or be bought out, leaving customers in the lurch with a dead product.
Using JIDE would be an impediment to making your application open source ... if that step is in your future plans.
UPDATE (2022)
Another thing to be wary of is that JIDE Software don't seem to have plans for supporting newer releases of Java properly. For example, there appear to be dependencies on JDK internal APIs which are being progressively closed off ... starting in Java 9.