我应该投资GraniteDS进行Flex + Java开发吗?

时间:2009-06-12 17:24:41

标签: java flex blazeds livecycle graniteds

我是Flex开发和RIA的新手。我有一个CRUD风格的Java + Spring + Hibernate服务,我正在编写一个Flex UI。目前我正在使用BlazeDS。这是在本地网络上运行的内部应用程序。

我很清楚,RIA的工作方式与桌面应用程序更相似,而不是Web应用程序,因为我们加载整个模型并直接在客户端上使用它(或者至少是我们的部分)有兴趣)。这对BlazeDS来说并不是很好,因为它实际上只支持远程处理而不支持数据管理,因此它可以成为许多额外的工作来确保客户端同步并避免重新加载可能很大的模型(特别是从延迟加载是不可能的。)

所以感觉就像我留下的情况是,我必须将我的Flex应用程序更像是一个常规的旧Web应用程序,在那里我做了很多细粒度的数据加载。

LiveCycle太贵了。 WebOrb for Java的免费版本实际上只进行远程处理。

输入GraniteDS。据我所知,它是唯一具有LiveCycle数据管理功能的免费解决方案。我已经开始仔细阅读它的文档了,突然觉得这是另一个框架的泥潭,我必须学习才能让应用程序运行。

所以我向StackOverflow观众提出的问题是:

1)您是否推荐GraniteDS,     特别是如果我当前的Java堆栈     是Spring还是Hibernate?

2)你觉得它在什么时候开始     清偿?也就是说,在什么水平上     您觉得应用程序的复杂性     使用GraniteDS真正开始     使发展更多     更好?以什么方式?

5 个答案:

答案 0 :(得分:2)

如果你致力于Spring并且不想引入Seam那么我认为Granite DS不会给你带来超越Blaze DS的东西。有一个有用的实用程序可确保任何时候客户端中只存在任何一个实体的单个实例,但实际上很容易使用带有弱引用的Dictionary实例和应用于服务器调用的一些后处理。许多其他功能都是特定于Seam的,如文档中所提到的那样:

http://www.graniteds.org/confluence/display/DOC/6.+Tide+Data+Framework

  

通常,Tide方法是最小化在客户端和服务器之间工作所需的代码量。它的原理与JBoss Seam的原理非常相似,这是Tide第一次集成这个框架的主要原因。与Spring和EJB 3的集成也可用,但有一点限制。

然而,我确实认为Granite的数据管理方法比Livecycle的方法有了很大改进,因为它们确实非常不同。来自花岗岩文档:

  

所有客户端/服务器交互都是通过服务器公开的服务上的方法调用完成的,因此尊重远程服务定义的事务边界和安全性。

这与Livecycle DS如何使用“托管集合”不同,在托管集合中,您调用fill()来获取大量数据,然后调用commit()方法来持续保持更改。这会将后端视为原始数据访问API,并在您具有细粒度的安全要求时开始变得复杂(或完全崩溃)。因此,我认为Granite的方法更加可行。

答案 1 :(得分:1)

所有数据管理功能(JPA分离实体的序列化,客户端实体缓存,数据分页......)都适用于Spring。 GraniteDS不强制要求任何东西,如果你想在服务器上使用Seam,你只需要Seam。

答案 2 :(得分:1)

实际上,免费版的WebORB for Java确实可以进行数据管理。我最近在WebORB for Java,LiveCycle DS,BlazeDS和GraniteDS之间进行了比较。您可以在此处查看此比较图表:http://bit.ly/d7RVnJ我对您的评论和反馈感兴趣,因为我们希望这是网络上最全面的功能比较。

干杯, 凯瑟琳

答案 3 :(得分:0)

您是否查看了spring-blazeDS集成项目?

答案 4 :(得分:0)

带有Seam Framework的GraniteDS,Hibernate和MySql是一个非常好的组合。我所做的是创建数据库,使用seamgen生成hibernate实体,然后从那里开始工作。