我正在使用部署到GAE的GWTP(模型视图演示器)开发GWT应用程序。持久化将使用Google Cloud SQL来完成。
我不知道用什么向数据库发送数据(持久性)和请求数据:GWT RequestFactory或GWTP Actions。它们等效吗?在这种情况下,每种方法都有什么好处?
感谢
我不会像现在这样使用请求工厂。即使对于CRUD来说,它对我们来说也比GWTP操作复杂得多。
RF是一个强大的工具,但它有点过于设计,处理复杂的数据可能会非常困难,因为你最终会遇到所有"冻结"状态的问题。真正的问题出现在使用具有嵌套结构的编辑器时。保存第二级代理时会遇到问题,甚至保存第三级代理时也会遇到问题。使用SimpleBeanEditorDriver可以更容易地使用具有嵌套结构的编辑器,因为您不必处理每一级嵌套对象的恶劣冻结状态。
对于一个支持简单CRUD的简单对象图,RF是完美的,但一旦你进入更复杂的结构,请做好准备,它就不容易处理了。一旦你成为RF专家,它就会成为一个非常强大的工具,但要完成同样的事情,它仍然需要比GWTP行动更多的工作。
对于使用RF的服务器端安全,我使用了AoP。另一方面,您可以使用操作处理程序,但即使使用操作处理器,在某些情况下,服务调用上的AoP也更合适。
对于客户端批处理和缓存。。。这是RF很难实现的。文档不清楚,处理缓存中的冻结状态是一场噩梦。通过GWTPAction,您已经可以使用一个简单的缓存实现。
对于面向数据的应用程序(CRUD),您绝对应该使用RF,因为它是为此目的而设计的。现在,如果你的应用程序更注重操作,并且这些操作不涉及太多数据,那么最好使用命令模式。但没有什么能阻止你在应用程序中同时使用这两种功能。
仅限RequestFactory。
你需要的一切都在那里。如果你只想发送一个基本消息,你只需要用你想要的任何参数调用一个方法。
Actions的问题是它们比RF语义要详细得多。。。
RF唯一不具备的是使用ClientHandlers的能力。。。