BlazeDS与GraniteDS

时间:2009-01-09 20:31:38

标签: flex blazeds

任何人都有评估BlazeDS和GraniteDS的经验吗?我很好奇哪个更好地与Spring / Hibernate集成。

2 个答案:

答案 0 :(得分:11)

如果你只是在寻找简单的RPC和消息,我会选择Blaze。这些实现更成熟,更经过验证,特别是在消息传递方面。 Granite中的消息传递基于Comet,而且我记忆中的新功能仍然很新。更多细节如下......

Blaze DS基本上是一个包含RPC和HTTP上的一些简单消息传递服务的堆栈。使用FlexFactory的SpringFactory实现可以轻松实现与Spring的集成:只需谷歌类名称,您就可以找到代码。它没有为与Hibernate相关的东西提供任何额外的支持。

Granite DS在功能方面正在快速增长。与Blaze DS相比,它与LCDS竞争更多。它包括解析Hibernate对象图并以干净的方式处理惰性代理的能力。他们还有一个名为“Tide”的工具,可以在Flex客户端中创建Session的模拟,以确保实体的唯一性。他们还明确支持通过Spring,EJB3和Seam公开的服务。 Granite还有一个用于从Java类生成AS3类的实用程序(尽管如果你愿意,这并不难写)。

我大约一年前和Granite一起工作,并且在解析对象图时遇到了一些问题; Flash Player会抛出一些讨厌的低级异常。我的猜测是文档和实现已经成熟,因为这些不再是问题。但是,我仍然有点犹豫推荐它,因为我遇到了问题,切换到Blaze立刻解决了它们没有任何问题。

答案 1 :(得分:1)

关于克里夫的评论的一些附注:

  1. GraniteDS创建于2006年底,距离BlazeDS大约一年。它广泛用于要求苛刻的生产环境,至少可以认为比BlazeDS成熟且经过验证。
  2. GraniteDS消息传递是在1.0版本中引入的(2007年末,也就是第一个BlazeDS版本发布后几周),它现在非常成熟,并且在要求苛刻的生产环境中也得到了证明。
  3. Cliff遇到的Flash播放器异常通常是由于未能在SWF中编译所有生成的AS3类而导致的。只需使用Flex编译器选项强制包含这些缺失的类,这些类是数据图模型的一部分,在反序列化时需要,但未在MXML / AS3代码中明确使用。
  4. 大多数GraniteDS用户来自BlazeDS / LCDS,因为这两个框架无法正确处理复杂的数据模型(没有或错误的延迟加载支持,错误的事务隔离等)。
  5. 所以,恕我直言,除非你正在开发一个带有相当简单的数据模型的小应用程序,你应该去GraniteDS。