PrimeFaces 是个面向 JSF2 的开源组件库,提供了大量的 Ajax 控件。它提供了应用开发者所需的常规组件,如数据表、树、可折叠窗格、自动完成与页签等。此外,它还提供了其他一些特别以及有趣的组件,这些组件是其竞争者所没有的,如:
除了上述这些组件外,PrimeFaces 还提供了图片比较、标签云生成、甚至是 OS X 风格栈的实现。根据 Prime Teknoloji (PrimeFaces 背后的公司)所述,之所以存在这种多样性,原因之一在于该公司并非软件厂商。它实际上是个咨询公司,帮助其客户更好地使用PrimeFaces。
这正是PrimeFaces 区别于其竞争者的一个主要特质,因为Prime Teknoloji 既是库的生产者,同时当其代表其客户时,它又成为了库的使用者。这对于核心开发有着非常重要的影响,因为重要的Bug 需要尽快修复才行。保持库的轻量级与可使用性也是PrimeFaces 的一个主要目标,因为任何偏差都会被Prime Teknoloji 的客户立刻察觉到。
PrimeFaces 还提供了 PrimeFaces Mobile ,这是面向 iPhone/Android 的一个版本(基于 jQuery Mobile )。
InfoQ 有幸采访到了项目领导?a?atay ?ivici 以深入了解此次发布的相关信息:
InfoQ:Primefaces 3.x 有哪些新特性?
PrimeFaces 3 的开发持续了近一年时间,与 2.x 相比,3 提供了各种新组件、重新实现了之前的一些组件、对内部进行了增强以提升性能、优化了资源加载、提供了更加灵活的 Ajax 行为回调等。总而言之,你可以将 PrimeFaces 2.x 看作是 PrimeFaces 1.x(针对 JSF 1.2)针对 JSF 2.0 的移植。
InfoQ:该版本与 Primefaces 2.x 之间的兼容性如何?迁移很方便么?你们是否还会支持 Primefaces 2.x 并修复其 Bug 呢?
迁移不难,但也没那么容易,这主要是因为我们通过 Ajax 的行为事件来实现的组件回调。对于我们来说,PrimeFaces 3.x 是个重要的里程碑。这正是为何其开发时间持续了近一年的一个原因,因为这是进行重要变更的一个机会。从 PrimeFaces 3 开始,框架将会更加稳定。
InfoQ:Primefaces 能与其他 JSF 库混合使用么(比如说 IceFace 与 Richfaces )?
我们从来没有将 PrimeFaces 与其他库混合使用过,但我们的用户这么做过。PrimeFaces 与 RichFaces 都使用了 jQuery ,因此在每个页面上只要通过二者之一包含进 jQuery,那么就可以同时使用他们了。至于 IceFaces,我们不清楚是否有用户同时使用过他们,这可能是由于 IceFaces D2D 方式的本质所决定的。
InfoQ:HTML5 对于你们来说有多重要?添加 HTML5 支持会很方便么?
HTML5 对于我们来说是非常重要的,因为它为我们提供了一个开发环境以使用上 PrimeFaces 中的富特性。我们通过优雅降级的方式将 HTML5 集成到了 PrimeFaces 中,比如说 fileUpload 组件支持 Ajax 上传、多文件选择、从文件系统中拖拽文件上传,但在不支持 HTML5 的浏览器中,它使用了 iframe 进行传输。此外,图表组件使用了 HTML5 canvas 元素。我们还大量使用了 data-* 特性。对于 PrimeFaces Push 来说,它是通过 WebSockets 实现的。
InfoQ:当前的开发目标是什么?PrimeFaces 4 有哪些值得期待的特性呢?
目前还没有 PrimeFaces 4 的计划,我们还会继续在 PrimeFaces 3.x 上花一些时间。目前, PrimeFaces 3.1 的发布中有 7 个新组件、很多组件都增加了不少新特性,同时还进行了大量的维护工作。我们的路线图是交付用户最希望得到的特性、交付我们自己的想法,当然了,还有对库的质量的改进。在我们决定开发 PrimeFaces 4 时,一定是有某些特别的缘由的。
InfoQ:对于大小版本的发布计划是怎样的?
从 PrimeFaces 3.x 开始,我们计划每月发布,因此我们打算每个月都发布一个新的 PrimeFaces 3.x 迭代版。
Java artifacts 目前还不在Maven Central 中,只在 PrimeFaces Repository (Prime Teknoloji 目前正在解决这个问题)中。要想了解更多信息,请参阅参考文档、论坛与 Wiki 。其源代码托管于 Google code 上。
查看英文原文: PrimeFaces 3.0 Released: Ajax, Mobile and IE 9 Components for JSF2
评论