使用Grails构建富Internet应用程序,第1部分:使用Grails和Flex构建Web应用程序

简介:富 Internet 应用程序(Rich Internet Applications,RIA)通过浏览器保证桌面应用程序 的动态性和功能。RIA 的主要特征之一就是将表示层移动到客户机,并使用服务器上健壮的 RESTful 服 务层支持它。这种想法借助 SOUI(Service Oriented User Interface)和 SOFEA(Service Oriented Front End Architecture)之类的热门词汇得到传播。

关于本系列

这个系列探索一些应 用程序架构,它们在后端使用由 Grails 框架实现的面向服务架构(SOA)。了解 Grails 如何大大简化 了 Web 应用程序的创建,尤其是 Web 服务的创建。这种后端可以轻松连接到任意纯客户端应用程序。 在第 1 部分中,您将使用 Adobe Flex 创建一个可以使用 Flash Player 的应用程序。在第 2 部分中 ,您将通过 Google Web Toolkit 用纯 JavaScript 创建前端。

先决条件

在这篇文章中 ,您将使用 Grails 和 Flex 构建 Web 应用程序。Grails 框架基于 Groovy 编程语言,这是针对 Java 平台的动态语言。熟悉 Groovy 会更好,但不是必要的。了解 Java 或其他动态语言(比 如 Ruby 或 Python)会有很大帮助。本文使用 Grails 1.0.3。 Grails 可用于许多数据库或应用服务 器,但本文不需要提供它们,因为它们已经随 Grails 附带。前端使用 Flex 构建。Flex 是一个使用 ActionScript 编程语言的应用程序框架,它在 Flash Player 上运行。再声明一下,不熟悉 Flex 和 ActionScript 没有关系。熟悉 Java 和 JavaScript 有利于学习 Flex。需要 Flex SDK 3.2 或更高版 本来编译本文的代码。要运行本文构建的应用程序,必须具有 Flash Player 10.0 或更高版本。

架构

许多企业都争相采用 Service Oriented Architecture (SOA)。SOA 让架构更加敏捷,方便业务的快 速发展。当然,您的企业可能有另一个紧迫的计划:将用户界面实现为现代的富 Internet 应用程序。 SOA 和 RIA 这两种流行的技术并不容易结合在一起。但事实证明,它们可以很好地协同工作。您可以使 用 SOA 设计将服务部署到应用服务器。也可以将所有表示逻辑移动到客户机,并利用强大的前端技术( 比如 Flex)创建 RIA。这正是您在本系列中需要完成的事情,现在从使用 Grails 创建一个 Web 服务 开始。

Web 服务

当许多开发人员听见术语 Web 服务 时,他们就会想到 SOAP(Simple Object Access Protocol)。 SOAP 在很多开发人员脑中具有消极的意义,因为他们认为 SOAP 是一种大型的复杂技术。不过 Web 服 务不是这样的。REST(Representational State Transfer)式的 Web 服务受到普遍欢迎,因为它们的 语义很简单。它们的创建和使用都很容易。它们可以像 SOAP 一样使用 XML,但使用的是 Plain Old XML(POX),不像 SOAP 那样带有奇特的包装器和报头。Grails 框架使得创建这种 Web 服务非常简单 ,所以我们现在从 Grails 领域模型开始。

Grails 域模型

Grails 是通用的 Web 开发框架。许多 Web 应用程序都使用关系数据库存储和获取在某个应用程序 中使用的数据,因此 Grails 采用了强大的 Object Relational Modeling (ORM) 技术,即 GORM。通过 GORM,您可以轻松地对域对象进行建模,并将它们持久化到任意关系数据库中,但不再需要处理 SQL。 GORM 使用流行的 Hibernate 库生成特定于数据库的经过优化的 SQL,以及管理域对象的生命周期。在 使用 GORM 之前,我们先快速讨论一下将要创建的应用程序,以及需要使用 GORM 进行建模的东西。

在示例应用程序中,您将创建一个模仿流行站点 Digg 的功能的 Web 应用程序。在 Digg 上,用户 可以提交新闻链接(Web 页面)。然后其他用户可以阅读这些新闻,并投票支持或反对它们。您的应用 程序将具有这些基本功能。它允许人们匿名地提交新闻并对其进行投票,因此不需要对用户进行建模, 对新闻建模即可。下面是针对示例应用程序中的新闻的 GORM 模型,如清单 1 所示。

清单 1. 新闻模型

class Story {
   String link
   String title
   String description
   String tags
   String category
   int votesFor
   int votesAgainst
}

这就是对域对象进行建模所需的所有代码。您要声明它的属性和这些属性的类型。这将允许 Grails 为您创建表,并且为从该表读写数据动态创建方法。这是 Grails 提供的主要好处之一。您仅需将数据 建模代码放在某个地方,而不需要为简单的读写编写任何模板代码。现在已经准备好域模型,您可以创 建一些使用该域模型的业务服务了。

时间: 2024-09-17 19:18:09

使用Grails构建富Internet应用程序,第1部分:使用Grails和Flex构建Web应用程序的相关文章

使用Grails构建富Internet应用程序,第2部分

相关文章: 使用Grails构建富Internet应用程序,第1部分:使用Grails和Flex构建Web应用程序 Grails和Google Web Toolkit 简介:在这个共 2 部分的系列的第 2 部分中,将基于您在 第 1 部分 中用 Grails 创建的 Web 服 务创建新的服务.您将创建一个新的搜索页面,但这一次使用 Google Web Toolkit (GWT) 来创建这个 应用程序.此外,您还将使用 Ext GWT 库中的一些更丰富的 UI 小部件. 关于本系列 这个系列

使用jQuery,第3部分:用jQuery和Ajax构建富Internet应用程序

本文配套源码 简介 最近这几个月以来,JQuery 受欢迎的指数迅速攀升,现已成为 Web 开发人员首选的 JavaScript 库.与此同时,人们对富 Internet 应用程序(Rich Internet Application,RIA)的应用和需求也在迅速增长,并期待用基于浏览器的应用程序代替桌面应用程序.无论是电子表格,还是薪水册和电子邮件应用程序,现在都在浏览器中再现了类似于桌面的体验.随着这些应用程序数量的增多和功能的日益复杂,JavaScript 库将会变得越来越重要,因为它是构建

OData的实际应用-通过开放数据协议构建富Internet应用程序

在 PDC09 期间,Microsoft WCF 数据服务团队(以前称为 ADO.NET 数据服务团队)首次推出 OData,即开放数据协议.这一消息是在会议第二天的主题演讲中宣布的,但实际上 OData 早就开始了.自从 Microsoft .NET Framework 3.5 SP1 中提供 ADO.NET 数据服务以来,熟悉 ADO.NET 数据服务的用户已经使用 OData 作为数据传输协议开发基于资源的应用程序.本文将介绍富 Internet 应用程序 (RIA) 的开发人员如何使用

构建富Internet应用程序 :使用OpenLaszlo、Eclipse Laszlo IDE和Web Tools

开始之前 本教程演示如何使用 OpenLaszlo 平台和 Web 服务来开发.打包和 部署一个已编写好的富 Internet 客户机.富客户端利用了后端的服务(这些后端服务是 通过使用 SOAP Web 服务的通用 SOA 方法提供).还将了解如何有效地使用 Eclipse Laszlo IDE 和 Eclipse Web Tools 来使得开发更加容易且富有生产效率. 关于 本教程 由于大多数 Web 应用程序都构建于 HTML 和 HTTP 之上,所以 Web 对于 用户经常使用的应用程序

使用Google Sitebricks构建更好的Web应用程序

使用 Maven.Sitebricks 和 Guice 创建一个样例 Java Web 应用程序 简介 Sitebricks 目前仍然处于测试阶段,它是一种新的 Java Web 应用程序框架.您可能想问:"为什么我还需要另一个 Web 框架?" 通过 Google Sitebricks,您可以快速构建一个可由他人维护或操作的 Web 应用程序.Sitebricks 构建于 Guice 之上.它将许多 Guice 原则扩展到 Web.它像 Guice 一样大量使用注释将配置作为代码的一

为Web应用程序创建测试用例的方法

web|程序|创建 您是否正在寻找一种把自动测试技术应用到 Web 开发中的方法?那么不用再找了!JWebUnit 就是为 Web 应用程序创建测试用例的一个开源框架,它可以容易地插入到大多数 Java IDE 中.通过使用一个示例应用程序,描述了生成简洁测试用例的详细步骤,软件工程师 Amit Tuli 对 JWebUnit 进行了介绍. 自动测试可以节省重复执行相同测试步骤的时间和精力.本文将介绍 jWebUnit,这是一组 Java 类,用于为 Web 应用程序开发测试用例.jWebUni

编写高性能Web应用程序的10个入门技巧

web|程序|技巧|性能 使用 ASP.NET 编写 Web 应用程序的简单程度令人不敢相信.正因为如此简单,所以很多开发人员就不会花时间来设计其应用程序的结构,以获得更好的性能了.在本文中,我将讲述 10 个用于编写高性能 Web 应用程序的技巧.但是我并不会将这些建议仅局限于ASP.NET 应用程序,因为这些应用程序只是 Web 应用程序的一部分.本文不作为对 Web应用程序进行性能调整的权威性指南 - 一整本书恐怕都无法轻松讲清楚这个问题.请将本文视作一个很好的起点. 成为工作狂之前,我原

在 Intranet 环境中保护 .NET Web 应用程序

web|程序 Microsoft Corporation内容简介 基于 Intranet Web 应用程序的安全性并不是不重要,因为它存在于许多控制网络中,并且对一个限制集合中的用户是可以访问的.不同个体和部门可能需要对应用程序提供的功能和数据有不同的访问等级,所以在传输过程中仍然必须保护机密数据的安全性.为了使问题复杂化,应用程序的安全性结构必须补偿任何安全性相关的问题,这些问题源于存在的基础和要配置应用程序的 Intranet 的操作特点. 通过关注某些常用分布式应用程序结构的要求,本章介绍

Delphi开发Web Server程序返回图像的方法

Internet/Intranet在九十年代可能是最流行的计算机术语了,不管是计算机行业内的人士还是计算机外的人士,都会使用Internet/Intranet,有的查资料,有的是宣传自己和公司,甚至有许多以前从没有想到用Internet的东西现在也在用Internet来解决, 比如有的程控数字计算机维护用Internet来解决.在这一切应用之中,基于Web Server的应用程序的开发是基本点,但如何开发Web Server的程序呢? Delphi 3是Borland公司1997年推出的可视化.