4

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

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

所以感觉我剩下的就是我必须将我的 Flex 应用程序更像是一个常规的旧 Web 应用程序,在其中我执行大量细粒度的数据加载。

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

输入花岗岩DS。据我所知,它是唯一具有 LiveCycle 的许多数据管理功能的免费解决方案。我已经开始浏览它的文档,突然觉得它是另一个框架的泥潭,我必须学习它才能让应用程序运行。

所以我对 StackOverflow 观众的问题是:

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

2)在什么时候你觉得它开始得到回报?也就是说,您觉得使用 GraniteDS 真正开始让开发变得更好的应用程序复杂度是多少?以什么方式?

4

5 回答 5

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 的方法更可行。

于 2009-06-15T05:06:02.433 回答
1

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

于 2009-07-06T08:38:43.953 回答
1

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

干杯,凯瑟琳

于 2010-05-16T18:19:23.537 回答
0

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

于 2009-08-15T09:09:45.503 回答
0

你看过spring-blazeDS集成项目吗?

于 2009-08-11T18:16:10.813 回答