选择 Grails 和 Dojo 的原因
随着 web 的广泛应用,web application 的开发项 目越来越多,而大部分的 web 开发归根结底都是对数据库的增删改查。对于一张数据库表的 增删改查,采用基于 MVC(模型 - 视图 - 控制器)设计模式的开发往往需要 Domain class 、 Controller、4 个增删改查的页面、form 输入数据的校验等。这样就免不了大量类似功 能的复制粘贴修改。 如果你想从重复劳动中解放出来,Grails 是一个很好的选择。 使用 Grails 只需要写一个 domain class 就可以自动生成 CRUD 4 个页面和对应的 controller 方法来实现对数据库的增删改查,并实现服务器端的数据校验,从而大大地提高了开发效率 。
类似的 web 快速开发框架还有 Rails、Django 和 TurboGears 等,与它们相比 Grails 有如下优势:
Grails 是一套用于快速 Web 应用开发的开源 框架,它是由 15% 的 Groovy 代码和 85% 的 Java 代码写成,并建立在千锤百炼的经典框 架(Spring,Hibernate,Sitemesh)之上,从而为大家带来一套能实现超高生产力的一站式 框架。
Grails 学习快速,使用容易,如果你熟悉 Hibernate、Spring、SiteMesh 和 JSP ,那么你一个小时之内就能学会 Grails。
Grails 运行于 JVM 之上,生成的 war 包可以 部署在各种成熟的服务器 Tomcat, JBoss,Weblogic,Webspere 等。
性能与 Rails2(100% Ruby) 相比要快很多。
Grails 被 SpringSource 收购,有强大的技术支持。
采用 Grails 的默认模板生成的 CRUD 页面有些简陋,实际项目中往往需要功能更加丰富,外观更 加漂亮,使用更加方便的控件。例如页面布局控件,Tab 控件,树,菜单,日历,编辑器, 进度条等等。现在有很多 JS 框架致力于 web UI, 例如 Dojo, Extjs, Jquery, YUI 等。我 们之所以选择 Dojo, 因为 Dojo 具有以下的优势:
组件丰富,有强 大的 UI(Dijit)。这样一来就可以减轻我们的大量沉重的工作,而且目前的开发非常活跃 。
UI 外的功能也很强大,Full Stack 的框架,扩展了 DHTML 的能力,例如:
支持与 浏览器 Back/Forward 按钮的集成。
Dojo Offline,一个跨平台的离线存储 API。
Chart 组件,可以方便地在浏览器端生成图表。
基于 SVG/VML 的矢量图形库。
Google Maps、Yahoo! Maps 组件,方便开发 Mashup 应用。
Dojox Socket, 基于 WebSocket 或者 XHR 长连接的“服务器推”技术。
Dojo 是一个很好的基础架构,具有面 向对象的设计,统一的命名空间,包管理机制(The Package System and Custom Builds) 可扩展性。Dojo 其实是一个组件模型,类似于 Spring,用来支持大规模的组件化开发。组 件模型的作用就是增强代码的重用,这对于提高开发效率是至关重要的。
Dojo 的背后有 强大的支持 IBM、Oracle 等,这是非常重要的优势。Dojo 现在已经是众多开源框架的选择 ,包括:WebWork、Tapestry、Eclipse ATF、MyFaces。Dojo 的开发团队由 Alex Russell 领军,人数众多,力量非常强大。
开源,使用 BSD 软件许可。
快速搭建 CRUD 的 框架 (MVC)
开发环境配置
首先需要安装 JDK,并设置好 JAVA_HOME。本文使 用的是 JDK 1.6。
Grails 官方网站下载并解压 grails.zip。本文使用的是 Grails1.3.7。
创建一个 GRAILS_HOME 环境变量,将 $GRAILS_HOME/bin 添加到 PATH 中。
习惯用 IDE 的可以选择 Intellij idea,Netbeans 和 Spring STS。本文以免费的 Netbeans7.0.1 为例,配置很简单,只需要在 Tools->Options->Miscellaneous- >Groovy 下设置 Grails Home,就可以进行 Grails 项目的开发了。(见图 1)
图 1. Netbeans 中 Grails 的配置