首页>参考读物>计算机科学与技术>综合

Flex企业应用开发实战
作者 : 兰天 曲鹏东 孙高飞 姜建卫 著
出版日期 : 2010-05-13
ISBN : 978-7-111-30378-7
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 332
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书共分为10章,介绍Flex on Java企业应用开发的方方面面。本书讲解全面,图文并茂,结构清晰,为读者呈现的是作者在企业应用开发实践中的思考和体验,目的在于探究实践中的问题的根源,并给出解决方法。

图书特色

深入探讨Flex企业级应用的架构思想和实现方法
7大社区鼎力推荐!

在企业级应用开发领域,Java及其相关技术是当之无愧的王者,已经成为IT行业里事实上的标准。然而,再强大的技术也有其不足,Java技术阵营对创建易于交互的、美观的、具有良好用户体验的用户界面的努力就从未停止过,因为Java EE的Web展现层框架不尽如人意,开发Web页面的效率低下,人机界面的交互性不强,不适合企业级应用功能点多、操作复杂多变的特点。

如果你在思考下面这些问题,也许本书就是你想要的!

如果你在思考下面这些问题,也许本书就是你想要的!
为什么Flex+Java被誉为最完美的企业级应用开发技术组合?这一技术选型究竟有哪些优势?
Flash Player的帧执行模型和渲染模型的工作机理分别是什么?Flash中的事件机制有哪些?
如何在MXML文件中用MXML语言表示ActionScript对象?查看由MXML翻译成的ActionScript临时文件
有哪些好处?
为什么RIA应用中有状态的客户端所面临的最大挑战就是“保持客户端状态与服务器端状态的一致性”?
如何在Flex企业级应用开发中实现客户端MVC模式?Flex使用何种机制实现视图与模型之间的数据关联?
Flex实现数据绑定的方法是什么?数据绑定的用途有哪些?数据绑定应该何时发生?什么样的属性可以
用于数据绑定?
Flex组件化编程的最大特点是什么?Flex如何实现组件的“失效机制”?
如何理解Flex中的域和实现跨域访问?
在Flex中如何创建模块和对模块进行编辑与编译?如何加载模块文件以及实现主应用和模块的交互?
Flex客户端和Java服务器端之间的通信机制是什么?如何保持二者之间的数据一致性?
使用Flex BlazeDS时应该注意哪些问题?BlazeDS的工作原理是什么?
在众多的Web打印方案中,为何要使用Flex来打印?如何实现Printjob打印?它的工作机理是什么?有哪
些注意事项?
Flex的内存垃圾回收机制是什么?可以采取哪些方法回收垃圾内存?如何强制执行垃圾回收?
Flex开发中有哪些情况会导致内存泄露?如何通过工具来发现内存泄露?
Flex如何与网页进行交互?在Flex中如何使用Flash CS所开发的控件?Flex如何与.NET平台进行交互?

图书前言

传统Web应用的开发是基于B/S模式的,Web应用的表示层建立于HTML页面之上,而HTML只适合于文本,B/S模式的应用已经不能满足用户对更高的、全方位的用户体验(音频、视频等)的要求。C/S模式的应用又不能满足现代用户在数据共享、协同操作等方面的要求。
  在如今这个以用户为中心的时代,用户体验越来越重要,用户不仅要求应用要像C/S模式的应用那样具有良好的交互性,而且要求应用要像B/S模式的应用那样具有部署灵活和跨平台的优势。RIA技术便是在这种需求下应运而生的,它同时具备B/S模式和C/S模式应用的双重优势,很好地满足了现代用户的需求。
  对于企业应用而言,企业可以通过RIA技术继续使用现有的应用程序模型(包括J2EE和.NET),轻松构建更为直观、更易于使用、更迅速而且可以脱机使用的应用程序,无需大规模替换现有的Web应用。同时,RIA还可以帮助企业提供多元化的业务效益,包括提高产品销量、提高品牌忠诚度、延长用户在网站的停留时间、避免较频繁的重复访问、减少带宽成本、减少支持求助以及增强客户关系等。
  近年来,RIA一直是业界巨头竞相角逐的重点领域,因为业界一直流传着这样一句话:“拥抱RIA,拥抱软件开发的未来!”Adobe的Flex在RIA领域有先发优势,而且至今仍然是这个领域的领头羊和佼佼者。Flex出现以后,B/S企业应用在人机交互方面开始发生革命性变化。
  笔者第一次接触Flex时就被它强大的UI渲染能力所震撼,使用Flex开发的B/S企业应用在人机交互方面的能力远远强于传统的C/S技术,很难想象在浏览器中也能够开发出如此酷炫的应用。在随后的使用过程中,笔者发现使用Flex开发B/S应用的效率远远高于传统的JSP、ASP等技术,甚至高于Delphi、VB等传统的快速开发工具。这是因为Flex提供了更加简洁的组件开发机制,使我们能够快速构建新的组件,同时其强大的数据绑定功能也免去了编写大量赋值语句的工作。
  我们都知道,Java以开发稳定的、可跨平台的企业应用而著称。如果能够利用Flex开发易用性好、交互性强、外观炫丽的人机界面,使用Java开发稳定且可跨平台部署的业务逻辑,那将是多么美妙的一件事啊!令人振奋的是,Flex确实可以与Java完美地结合!快速开发出稳定的、易用的、用户体验良好的B/S应用将不再是梦想。
  如今,Flex+Java这一技术组合正在逐渐被业界所接受,在很多行业的大型企业应用(比如SAP、淘宝、中国移动等)中都能看到它们的身影。与很多Flex技术的忠实用户一样,我们坚信Flex+Java技术必定会成为开发企业应用的主流技术之一。
  笔者的团队使用Flex+Java技术组合成功地开发了电力营销管理信息系统和输电GIS系统,并在两个供电企业上线运行,实实在在地感受到了这一组合的威力和给用户带来的震撼体验。因此,笔者特别想与广大同行分享这方面的经验、心得和曾经遇到过的困惑。期望能通过这本书与大家探讨使用Flex+Java技术开发企业应用的技术要领,力求使广大同行不被开发中的技术问题所困扰,从而将更多的精力投入到对业务领域模型的研究中去。
  本书首先阐述了Flex的工作原理,然后循序渐进地讲解了Flex+Java企业应用开发的基础知识、核心知识、架构方法和思想、应用的实现过程和原理,以及性能优化方面的主题。书中对Flex开发的基础知识着墨不多,所有内容都是围绕企业应用开发展开的,侧重于对技术原理和解决问题的思路的讲解,所以书中的内容不太容易随着Flex版本的升级而过时。
  本书适合所有有一定Java开发经验的读者阅读,通过本书你将亲身体会到Flex+Java技术的强大之处。同时,喜欢JavaFX、Silverlight等RIA技术的开发人员也可以从本书中找到相似问题的解决方案。
  写书的过程是艰辛的,它与写代码的感觉完全不同!因此,借本书出版之际,我们要感谢一直在背后默默支持我们的家人,家庭的温暖是我们不断前进的动力!感谢机械工业出版社所有参与过本书出版工作的同志们,他们的专业精神令我们感动。最后,特别感谢“闲云野鹤”网友提供的宝贵资料,感谢他大公无私的分享精神!
  由于我们的水平有限,错误及疏漏之处在所难免,恳请广大读者批评指正。

作者
2010年4月

专家评论

Flex和Java已经被实践证明为非常优秀的企业级应用开发技术组合之一。本书阐述了这一组合的基本原理和架构,并结合作者多年的开发经验,给出了企业级应用框架的示例以及设计和性能优化的思路,是一本学习Flex和Java联合开发的优秀书籍。
—段少婷 Adobe开发者社区(http://www.adobe.com/communities/usergroups/)经理
  作为国内第一本以Flex和Java为主题、完全针对企业级应用开发的书,本书可谓不可多得。它在介绍Flex的一些重要基础知识的同时,还深入浅出地将企业应用开发中的一些核心元素和最佳实践呈现在了读者面前。 针对企业应用开发中普遍采用Java技术的现状,这本书将利用Flex和Java开发企业级应用的架构思想、设计方法和实现原理做了全面阐述,同时还讲解了一些非常实用的高级技巧,颇具参考价值,强烈向所有企业级应用开发者推荐。
—李文磊 RIAMeeting(http://www.riameeting.com/)创始人
  以Flash为代表的RIA技术是未来5年内最有潜力的技术之一。如果用Java实现稳健跨平台的业务逻辑,用快速便捷的Flex实现美观的、交互性强的展现层逻辑,二者双剑合璧, 实属开发企业级应用的不二利器。本书作者实战经验丰富,对企业级RIA系统的开发方法和思想进行了详实的讲解,特此推荐!
—黑羽 9RIA天地会(9ria.com/) 创始人
  在JAVA的世界中,创建程序界面的做法一般是使用MVC框架(比如JSF, Struts等),然后通过Ajax在页面中实现用户交互。但在Web
2.0的今天,这种大费周折的实现方式已远无法满足程序设计的需求。Flex的出现弥补了JAVA的不足,FLEX与JAVA的结合结束了传统B/S应用开发的噩梦,《Flex企业级应用开发实战》的出现填补了企业级FLEX图书市场的空白,强烈向所有JAVA开发者推荐。
—谈熠 中国Flash开发者交流会(www.swfsh.com) 创办人
  如果你用Java进行企业级应用开发,强烈建议客户端使用Flex技术,因为这样你能轻松高效地开发出稳定的、跨平台的、用户体验良好的企业级应用。如果你想学习如何用Flex+Java这一技术组合开发企业级应用,强烈建议你阅读本书,因为它完美地阐述了这一技术的使用方法和思想精髓,是目前唯一一本,也是最好的一本,你值得拥有。
—Java开发者社区
  本书的出版弥补了两大空白,其一是Flex企业级应用开发类图书的空白,其二是Flex+Java类图书的空白。它以Flex的底层机制为切入点,系统地讲解了Flex+Java开发企业级应用的思路、方法和技巧,极具参考价值。
—架构师社区

上架指导

计算机\程序设计

封底文字

在企业级应用开发领域,Java及其相关技术是当之无愧的王者,已经成为IT行业里事实上的标准。然而,再强大的技术也有其不足,Java技术阵营对创建易于交互的、美观的、具有良好用户体验的用户界面的努力就从未停止过,因为Java EE的Web展现层框架不尽如人意,开发Web页面的效率低下,人机界面的交互性不强,不适合企业级应用功能点多、操作复杂多变的特点。
幸运的是,这一切问题都因为Flex的诞生迎刃而解。作为RIA技术的领导者,Flex凭借其能够轻松开发出易用性好、交互性强和外观炫丽的人机界面而备受开发者青睐。使用Java技术开发稳定的、可跨平台部署的业务逻辑,用Flex作为展现层框架,快速开发出稳定的、用户体验良好的企业级应用将不再是梦想。
如果你在思考下面这些问题,也许本书就是你想要的!
1. 为什么Flex+Java被誉为最完美的企业级应用开发技术组合?这一技术选型究竟有哪些优势?
2. Flash Player的帧执行模型和渲染模型的工作机理分别是什么?Flash中的事件机制有哪些?
3. 如何在MXML文件中用MXML语言表示ActionScript对象?查看由MXML翻译成的ActionScript临时文件有哪些好处?
4. 为什么RIA应用中有状态的客户端所面临的最大挑战就是“保持客户端状态与服务器端状态的一致性”?
5. 如何在Flex企业级应用开发中实现客户端MVC模式?Flex使用何种机制实现视图与模型之间的数据关联?
6. Flex实现数据绑定的方法是什么?数据绑定的用途有哪些?数据绑定应该何时发生?什么样的属性可以用于数据绑定?
7. Flex组件化编程的最大特点是什么?Flex如何实现组件的“失效机制”?
8. 如何理解Flex中的“域”和实现跨域访问?
9. 在Flex中如何创建模块和对模块进行编辑与编译?如何加载模块文件以及实现主应用和模块的交互?
10. Flex客户端和Java服务器端之间的通讯机制是什么?如何保持二者之间的数据一致性?
11. 使用Flex BlazeDS时应该注意哪些问题?BlazeDS的工作原理是什么?
12. 在众多的Web打印方案中,为何要使用Flex来打印?如何实现Printjob打印?它的工作机理是什么?有哪些注意事项?
13. Flex的内存垃圾回收机制是什么?可以采取哪些方法回收垃圾内存?如何强制执行垃圾回收?
14. Flex开发中有哪些情况会导致内存泄露?如何通过工具来发现内存泄露?
15. Flex如何与网页进行交互?在Flex中如何使用Flash CS所开发的控件?Flex与.NET平台进行交互?

作者简介

兰天 曲鹏东 孙高飞 姜建卫 著:暂无简介

推荐序

作为兰天的朋友和兰天所在论坛的管理员,我有幸在第一时间拿到本书,也很有幸与读者分享我的所见所想。事实上,在拿到书后,我先简单地翻阅了几章,就再也忍不住通宵通读了这本著作。毋庸置疑,对于每一位从事Java开发的人来说,这都是一本必备的参考书,同时也是一本重新认识和学习如何使用Flex on Java构建企业级项目的实践指南。
阅读本书时,让我感触最深的莫过于以下两点。
  一是兰天团队对于Flex on Java设计模式的执着追求。他们更多地不是追求Flex带来的酷炫效果,而是在用心思考用户需求以及项目需求本身。这让我想起平日里时常与身边从事RIA开发的朋友聊到的话题,“如果只是停留在‘炫’这个字上,RIA技术可能永远只是小众的儿戏。”而我们所要做的是告诉大家IT世界本该如此。
  二是本书非常细致地解释和剖析了在Flex项目实践中会遇到的种种问题。我想,他们不仅在向我们介绍如何使用Flex,更是在指引我们思考Flex技术所带来的巨大革新。
  通读本书,你会感觉到兰天在向你述说一段励志般的Flex开发的故事。这些让我想起两年前与兰天初识的一幕。
  记得在2008年的时候,我看到兰天在论坛里发表书中所提到的“电力系统与Flex GIS”的帖子,当时我不禁为之感叹,并邀请兰天加入版主队伍,希望他为网友分享更多的心得。之后,围绕这一话题的点击率超过10 000余次。那时我在想,他一定经历了些什么,或者说,他一定想说点什么。没想到,他不仅逐步完善了项目,更是把自己所经历的这些写成书,与我们分享,其精神可嘉。
  兰天所带来的这些经验和心得是难得可贵的。如果你是一位愿意正视和关注用户体验的开发者或者是架构师、企业领导。在进行了一系列的调查和筛选后,你会发现有这么一项叫做Flex的技术,它就像是一直为你而准备的,助你解决用户的种种问题以及他们提出的各种极富创意的个性化需求。通过部署Flex前端,能让你的产品变得更具有价值、更适应当今市场。而本书则解决了那些在应用了新技术后所带来的种种困惑和疑难。它包含了前期架构上的思考、对Flash平台的详尽解析、Flex on Java项目开发历程、前端与后端的交互,以及专为Flex设计的优化方案。
最后,希望你与我们一样,满怀信心地开始一项新的旅程,带给用户更多的惊喜,并像兰天一样以此为乐。
姬军
艾睿网(Airia)创始人

图书目录

作者简介赞誉
推荐序
前言
第1章  Flex企业应用开发入门 1
1.1  B/S企业应用开发者的噩梦 1
1.2  噩梦结束,新时代来临 2
1.3  Flex概述 6
1.4  Flash Player的工作模型 7
1.4.1  Flash Player的帧执行模型 7
1.4.2  Flash Player渲染模型 9
1.4.3  Flash中的事件机制 12
1.5  小结 20
第2章  Flex企业应用开发基础 21
2.1  MXML语言 21
2.1.1  用MXML表示ActionScript对象 22
2.1.2  查看由MXML文件所翻译的ActionScript代码 24
2.1.3  IMXMLObject接口 25
2.2  客户端保持状态 28
2.3  客户端MVC 30
2.4  数据绑定 34
2.4.1  实现数据绑定的方法 35
2.4.2  数据绑定发生的时机 37
2.4.3  可以用于数据绑定的属性 39
2.4.4  数据绑定的用途 40
2.4.5  使用Bindable元数据标记 40
2.4.6  绑定到函数、对象和数组 43
2.4.7  使用可绑定属性链进行工作 46
2.5  Flex中的组件化编程 46
2.5.1  认识Flex组件和组件容器 47
2.5.2  组件生命周期与布局 51
2.5.3  组件的失效机制 59
2.5.4  使用ActionScript创建自定义组件 62
2.6  异步调用 85
2.6.1  异步调用导致模型数据不一致 85
2.6.2  异步调用导致用户反复(误)操作 86
2.7  小结 87
第3章  Flex企业应用开发中的主要元素 88
3.1  企业应用的特点 88
3.2  Flex Application 89
3.2.1  SystemManager 89
3.2.2  Preloader 90
3.2.3  Application的作用和主要属性 95
3.2.4  通过SWFLoader加载Application 97
3.2.5  域及跨域访问 99
3.3  Flex Module 101
3.3.1  创建模块 102
3.3.2  模块的编辑与编译 104
3.3.3  模块文件的加载 104
3.3.4  主应用和模块的交互 107
3.4  Flex库文件SWC 107
3.5  Flex编译模式、链接模式与RSL 109
3.5.1  使用系统RSL—Framework 110
3.5.2  其他的系统RSL 111
3.5.3  RSL的摘要 112
3.5.4  使用私有RSL 113
3.6  小结 114
第4章  Flex on Java企业应用架构 115
4.1 分布式的异构系统所带来的挑战与解决方案 116
4.1.1  确定Flex客户端系统和Java服务器端通信框架 117
4.1.2  保持客户端系统与服务器端系统的数据一致性 122
4.2  大规模企业应用面临的挑战和应采取的解决方案 133
4.2.1  问题和需求 133
4.2.2  解决方案 134
4.3  Flex客户端工程路径规划 137
4.4  小结 138
第5章  BlazeDS框架详解 139
5.1  BlazeDS介绍 139
5.1.1  什么是BlazeDS 139
5.1.2  使用BlazeDS的原因 140
5.1.3  BlazeDS功能特色 140
5.2  BlazeDS体系结构 141
5.2.1  BlazeDS的组件 143
5.2.2  构建一个简单的BlazeDS应用 148
5.2.3  消息的传输过程 150
5.2.4  BlazeDS的序列化机制 156
5.2.5  FlexClient和FlexSession 161
5.3  BlazeDS的配置 162
5.3.1  配置MessageBrokerServlet 162
5.3.2  services-config.xml 163
5.3.3  Channel和Endpoint 165
5.3.4  Service、Adapter和Destination 166
5.3.5  Logging 167
5.3.6  Security 169
5.3.7  运行期配置 170
5.4  BlazeDS的整合 175
5.5  小结 177
第6章  Flex+BlazeDS应用开发实例 178
6.1  需求分析 178
6.2  数据库设计 179
6.3  用Flash Builder配置企业应用开发环境 180
6.3.1  创建一个Flash Builder工程 180
6.3.2  修改Flex SDK包文件链接类型 184
6.3.3  创建一个Flex Library工程 185
6.4  客户端人机界面设计 186
6.5  服务器端配置 187
6.6  服务器端实现 191
6.7  客户端实现 198
6.7.1  客户端数据模型 199
6.7.2  客户端Proxy及工具类 201
6.7.3  客户端界面及界面逻辑 204
6.7.4  复杂查询实现 220
6.8  小结 227
第7章  将范例应用改进为真正的企业应用 228
7.1  简化Flex RemoteObject的异步调用 228
7.2  如何使用户等待远程调用的结束 243
7.3  加入简单的身份认证功能 251
7.4  使Flex应用脱离开发环境部署到运行环境 260
7.4.1  存在的问题 260
7.4.2  封装BlazeDS及封装后的系统调用方式 260
7.4.3  封装RemoteObject及封装后的调用方式 263
7.5  小结 264
第8章  Flex打印 265
8.1  Web打印方案 265
8.1.1  原生打印 265
8.1.2  宿主打印 265
8.1.3  外部打印 266
8.2  为什么使用Flex来打印 267
8.3  使用PrintJob打印 267
8.4  深入了解PrintJob 268
8.5  实战PrintJob—实现一个票据打印组件 270
8.5.1  组件结构 270
8.5.2  IReceiptPrinter和DefaultReceiptPrinter 271
8.5.3  ReceiptTemplate 273
8.5.4  TemplateDescriptor 274
8.5.5  TemplateLoader 276
8.5.6  为组件编写示例 281
8.6  小结 282
第9章  Flex企业应用性能优化 283
9.1  Flex的内存垃圾回收机理 283
9.1.1  引用计数法 284
9.1.2  标记清除法 285
9.1.3  垃圾回收的时机 286
9.1.4  强制执行垃圾回收的技巧 286
9.2  导致内存泄漏的常见情况 287
9.3  Flash Builder的内存泄漏分析工具 291
9.4  用于性能查看的Flash的系统API 293
9.5  其他有关内存泄漏的问题 293
9.6  有关提高Flex应用性能的技巧 294
9.7  小结 299
第10章  Flex企业应用开发的其他技术 300
10.1  与网页进行交互 300
10.1.1  通过参数接受外部信息 300
10.1.2  使用navigateToURL方法调用JavaScript 302
10.1.3  ExternalInterface API 303
10.2  在Flex中使用Flash CS所开发的控件 306
10.3  Flex访问.Net 308
10.3.1  Fluorine的安装和配置 309
10.3.2  Flex通过Fluorine访问.NET 311
10.4  小结 314
附录  Flex Builder 3中的项目如
何迁移至Flash Builder 4 315

教学资源推荐
作者: 吴跃 主编 李树全 尚明生 陈端兵 参编
作者: 王柯柯 主编 崔英志 黄丽丰 崔贯勋 刘恒洋 编著
作者: 刘国忠 主编 吕勇 马牧燕 那云虓 参编
参考读物推荐