微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我是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真正开始
    使发展更多
    更好?以什么方式?

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

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

Generally,the Tide approach is to minimize the amount of code needed to make things work between the client and the server. Its principles are very similar to the ones of JBoss Seam,which is the main reason why the first integration of Tide has been done with this framework. Integrations with Spring and EJB 3 are also available but are a little more limited.

但我认为Granite的数据管理方法livecycle有了很大改进,因为它们确实完全不同.来自花岗岩文档:

All client/server interactions are done exclusively by method calls on services exposed by the server,and thus respect transaction boundaries and security defined by the remote services.

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


应用场景 C端用户提交工单、工单创建完成之后、会发布一条工单创建完成的消息事件(异步消息)、MQ消费者收到消息之后、会通知各处理器处理该消息、各处理器处理完后都会发布一条将该工单写入搜索引擎的消息、最终该工单出现在搜索引擎、被工单处理人检索和处理。 事故异常体现 1、异常体现 从工单的流转记录发现、
线程类,设置有一个公共资源 package cn.org.chris.concurrent; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * @Descrip
Java中的数字(带有0前缀和字符串)
在Java 9中使用JLink的目的是什么?
Java Stream API Filter(过滤器)
在Java中找到正数和负数数组元素的数量
Java 9中JShell中的不同启动脚本是什么?
使用Java的位填充错误检测技术
java中string是什么
如何使用Java中的JSON-lib API将Map转换为JSON对象?