天天看点

SmartGwt 项目心得

初识 GWT 还是在09年中,一开始做了 GWT-ext 项目,感觉还行。

后来 Sanjiv jivan 转到 SmartClient ,创建了Smart Gwt。

公司正好要开发一个 CRM ,于是就用 SmartGwt 做了,整合了 Spring 2.5, hibernate 3.2 ,quartz, flex 等。

SmartGwt 目前版本 v2.1

对 SmartGwt 运用不深,稍微说一下:

SmartGwt 是真正的 RIA 应用,其核心是 Client DataSource ,通过 *.ds.xml 配置文件,实现 CIUD 操作。

其中,CIUD 可以设置 customSQL ,实现多表间查询,比如 教师,学生,教室 的三张表 left join 查询。

这都是在 Client 端运行!

当然也可以通过远程服务端查询和返回数据

1)使用 DMI (Direct Method Invoke),个人感觉就像 dwr:客户端调用服务端的某个方法。指定到 *.ds.xml 的 CIUD 一个或多个方法,具体用的不多。

2)使用 GWT RPC ,这个就要在 Client 端继承 RemoteService 接口,在服务端实现方法。只要写过 GWT ,应该都很熟悉了。

我的项目 70%都使用了 SmartGwt Client 端 DataSource 默认CIUD 操作,10% 使用了 DataSource customSQL I操作,剩下20%用了 GWT RPC。

包的结构如下(未整理):

SmartGwt 项目心得

也就是说:整个项目基本在 Client端运行,服务器的压力较小。我也把一部分业务逻辑放在了 Client 端,进一步减少服务器压力。当然这种做法有利有弊。

SmartGwt 是 RIA ,因此当项目编译后的文件较大,用到的数据库表(*.ds.xml)较多,并在网速较低的情况下,很难流畅的运行。

还有就是布局方面,目前没有图形界面编辑开发工具,因此需要反复的 手动写代码 ==> 运行 来确认效果,会比较花时间。当然, 比GWT2.0前的 HostedMode 要快多了。

顺便推荐下 Google  Speed tracer ,非常好用!

继续阅读