前言
互联网的发展,就是一个不断上演奇迹的过程。10年前就开始在Internet上流行的Web应用,在见证了一个个奇迹之后,依然作为最主流的应用而雄霸互联网。近几年,一个由国外风靡至囯内的Web应用——SNS,再一次为举国上下的互联网普及大潮推波助澜。或许SNS听起来还有点陌生,但如果你连炙手可热的开心网都没有听过,就太OUT了。本书就是要揭开SNS的神秘面纱,让人人都可以把玩打造开心网的技术。
想开心,Jollow Me!
实现SNS的道路有很多,为使读者能举一反三,真正进入商业级开发的殿堂,本书选择了最具前途的热门组合Ext JS+SSH+Android。它们是目前盛行于全球的Web与移动解决方案。
⊙视觉为王时代的奇葩——Ext JS
王牌组合中首位登场的是Ext JS。这一基于Ajax的Web客户端框架,前身是Yahoo推出旳YUI(Yahoo User Interface),经过不断发展和改进,已经成为非常完善的基于JavaScript的RIA Web框架。Ext JS出身名门,为实现基于Ajax的Web页面提供了极大的便利,而且整个Ext JS框架都采用了事件驱动,用其编写的程序更人性化。也正因如此,本书中开心网系统的客户端部分,就由迅速蹿红的Ext JS技术来完成。
⊙宝刀未老的中坚力——SSH
Ext JS框架是实现客户端页面的最佳选择,但一个完善的开心网系统不能只有漂亮的Web页面,还要具备强大的服务端系统。企业级开发领域的重要角色Java,凭借在处理大吞吐量Web应用方面的巨大优势,成为完成这一任务的不二之选。但本书放弃了在系统规模较大时可能会造成逻辑混乱的JSP和Servlet,启用以Java Web技术为核心的Struts 2,其可将视图层、控制层和模型层(即常说的MVC模式)有效分幵。同时,采用Hibernate来操作数据,采用Spring旳IOC模式来增强系统灵活性。事实上,凭借稳定的应用与清晰的层次,SSH整合业已成为国内企业级Web开发的主流。
⊙书写未来的移动新贵——Android
本书的关注点并未止步于传统互联网,快速发展的移动互联网同样是重点。跟随本书,你将看到移动(手机)版开心网的诞生过程。目前,移动终端操作系统有很多种,出于前瞻性的考虑,我们毅然选择了拥有Google这一强大后盾的开源平台Android。一方面,Android最有可能成为移动领域的Windows,另一方面,其主要开发语言是Java,便于从事过其他Java领域(如Java EE、Java Me、Java SE等)的开发人员快速掌握Android编程技能。
全新体验,潮流之选
本书的主旨为,以开心网为例实现Web版和Android版的SNS应用。
⊙桌面版幵心网的新玩法
SNS大热的一个重要体现就是相关网站的扎堆亮相。但这些网站大多基于传统Web风格,用户难免出现审美疲劳。本书中的Web版开心网另辟蹊径,采用模拟Windows XP桌面风格的Web页面,而且可以将常用的功能放到虚拟桌面上,并可实现任意拖动。同时还可以通过“开始”菜单任意设置桌面显示和图标,或打开相应子功能的页面。除此之外,每个子功能的界面也模拟了Windows XP的风格,可以最大化和最小化窗口。
⊙将开放API进行到底
早期用户只能通过Web页面来访问网站,而最近开放API在SNS中蔚然成风,广大开发人员可利用这些幵放API对网站进行扩展。这样做有两个好处,一是大量开发人员的参与,丰富了SNS的应用,改善了用户体验;二是减少了官方自己开发的成本。为了真实模拟市场需求,本书中的开心网系统也开放了部分API,Android客户端可通过Web Service和HTTP Get/Post方式与月艮务端交互。
全程实录开心网的练成
实战是掌握知识与提升技能的最佳途径,本书更是将这一主旨发挥至极致。围绕技术讲解与开发实践两条线索,作者将一个完整的SNS系统分解成不同的功能模块,在这些模块在的章节中分别采用各自对应的主流技术加以实现,并对相关技术进行细致讲解,力争做到知识点剖析与编程操作旳充分融合。例如,在网络硬盘模块中,本书先着重介绍实现功能所需的Ext JS树型组件,然后趁热打铁,真实呈现其在网络硬盘中的应用。
本书主要内容
本书共分为四篇。其中前三篇主要实现了Web版的开心网系统,重点介绍了Ext JS技术,包括Ext JS的核心组件、对话框、表单组件、布局、数据校验、表格、菜单、树组件等技术。Ext JS部分着重讲解了表格、菜单及树组件,同时结合案例对Struts 2、Spring与Hibernate等Java Web开发核心技术在SNS中的应用进行了详尽描述。
♦ Ext JS的表格组件功能十分强大,本书特意详细说明了按列排序、显示复选框、自动显示行号、表格分页、编辑表格内容、属性表格、表格分组等表格组件的所有特性。
♦树组件是Ext JS中的另一个重要组件,功能也较为复杂。本书介绍了树形组件的基本功能,以及树结点的拖放、过滤和排序等操作。
♦ Ext JS中的菜单也比较丰富,包括简单菜单、下拉菜单、多级菜单,以及多选和单选菜单,并支持向菜单中添加分隔线。
由于开心网涉及Ext JS的大多数功能,因此本书在每讲完一项技术后,就会利用这项技术及之前讲过的技术继续完善开心网系统,使读者对Ext JS技术的掌握水平能快速向实战要求靠拢。
本书的最后一篇实现了Android版的开心网,并介绍了与Android版开心网相关的技术,包括Button、TextView、EditText、ImageView、GridView等Android常用组件。
本书适合的读者
了解传统Web应用程序的开发,希望使用Ext JS开发Web程序的开发人员。
了解基本Ext JS程序的幵发方法,想增加实践经验的开发人员。
对Ext JS感兴趣,想进一步提高Ext JS幵发技能的读者。
对Android感兴趣,想从事Android开发的读者。
想幵发基于Android客户端的C/S程序,但对开发流程不了解的读者。
本书的特色与优势
◎阅读本书不要求读者对Ext JS非常熟悉,只要了解JavaScript编程,就可以跟随本书从零幵始学习Ext JS开发。
◎国内少有的综合讲解使用Java Web、Ext JS及Android开发SNS的书。
◎一个完整的开心网案例贯穿全书,使读者在学习知识的同时,可逐步学会如何开发出一个完整的SNS系统。
◎本书详细介绍了Ext JS 3.0的方方面面,是学习Ext JS技术的首选。
◎本书不仅介绍了开发Web版开心网的方法,也介绍了使用Android开发移动版开心网的方法。
◎读者通过对本书的学习,可以开发出类似Windows桌面效果的程序,而这类程序在企业应用中经常遇到。
随书光盘
本书所有例子的代码均可在光盘中找到,读者可启动Eclipse,单击【File>lmport】菜单项导入代码。在每一章的引言中,对本章实例源代码在光盘中的位置都进行了说明,读者可以对照着说明进行查找。