我是否应该投资GraniteDS for Flex+;Java开发?

我是否应该投资GraniteDS for Flex+;Java开发?,java,apache-flex,blazeds,livecycle,graniteds,Java,Apache Flex,Blazeds,Livecycle,Graniteds,我是Flex开发和RIA的新手。我有一个CRUD风格的Java+Spring+Hibernate服务,我正在上面编写一个FlexUI。目前我正在使用BlazeDS。这是在本地网络上运行的内部应用程序 很明显,RIA的工作方式更类似于桌面应用程序而不是web应用程序,因为我们加载整个模型并直接在客户机上使用它(或者至少是我们感兴趣的部分)。这与BlazeDS不太匹配,因为它只支持远程处理而不支持数据管理,因此要确保客户端同步并避免重新加载可能很大的模型(特别是因为不可能延迟加载) 因此,我感觉剩下

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

很明显,RIA的工作方式更类似于桌面应用程序而不是web应用程序,因为我们加载整个模型并直接在客户机上使用它(或者至少是我们感兴趣的部分)。这与BlazeDS不太匹配,因为它只支持远程处理而不支持数据管理,因此要确保客户端同步并避免重新加载可能很大的模型(特别是因为不可能延迟加载)

因此,我感觉剩下的情况是,我必须将我的Flex应用程序更像是一个常规的旧web应用程序,在这个应用程序中,我进行了大量细粒度的数据加载

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

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

因此,我向StackOverflow听众提出的问题是:

1)您推荐GraniteDS吗, 特别是如果我当前的Java堆栈 春天+冬眠吗?

2)你觉得什么时候开始下雨 还清就是说,在什么水平上? 您觉得应用程序的复杂性如何 使用GraniteDS确实开始了 让发展变得如此重要
更好?在哪些方面?

如果您致力于Spring,并且不想引入Seam,那么我认为Granite DS不会给您带来比Blaze DS更多的东西。有一个有用的实用工具,可以确保在任何时候客户端中只存在任何一个实体的单个实例,但实际上,通过几个具有弱引用的Dictionary实例和一些应用于服务器调用的后处理,可以很容易地做到这一点。许多其他功能都是Seam特有的,如文档中所述:

通常,Tide方法是最小化使客户端和服务器之间的工作正常所需的代码量。它的原理与JBossSeam的原理非常相似,这就是为什么Tide第一次与这个框架集成的主要原因。与Spring和EJB3的集成也可用,但有一些限制

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

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


这与Livecycle DS使用“托管集合”的方式不同,在“托管集合”中,您调用fill()来获取大量数据,然后调用commit()方法来大量保存更改。这就像对待原始数据访问API一样对待后端,当您有细粒度的安全需求时,后端开始变得复杂(或者完全崩溃)。因此,我认为Granite的方法更可行。

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

您看过集成项目吗?

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

实际上,WebORB for Java的免费版本做数据管理。我最近发布了一篇比较WeborbforJava、LiveCycle DS、BlazeDS和GraniteDS的文章。你可以在这里查看这个比较表:我对你的评论和反馈感兴趣,因为我们希望这是网络上最全面的功能比较

干杯,
Kathleen

您是否知道生命周期数据服务有免费版本?许可证是非常严格的…一个CPU。我正面临着完全相同的问题-这到底是在哪里结束的?@HDAve-不幸的是,我放弃了整个想法,坚持使用常规的web应用程序。这些“真正的替代品”项目对我来说不值得这么麻烦/冒险。你说的常规web应用程序是指“html/javascript/ajax”而不是Flex吗?您是否仍在使用Flex…但使用常规的RemoteObject(或SOAP或REST)web方法?如果是这样的话,那就是我倾向于…自己处理数据,而不是使用花哨的数据管理模块。不过,我仍然使用Flex/Blaze…因为我认为它还有很多其他好处。数据管理是我最感兴趣的功能。从文档中我不清楚-这是一个只适用于Seam的功能吗?当然,我正在使用它。我的问题是关于GraniteDS的,因为它可能会填补BlazeDS缺少的一些功能(例如数据管理)。