庖丁解牛:纵向切入ASP.NET 3.5控件和组件开发技术
分類: 图书,计算机/网络,程序设计,ASP,
作者: 郑健 著
出 版 社: 电子工业出版社
出版时间: 2009-4-1字数:版次: 1页数: 646印刷时间:开本: 16开印次:纸张:I S B N : 9787121079795包装: 平装编辑推荐
帮您真正地理解ASP.NET技术,不仅能够掌握控件开发的各个方面的技术,而且也能透彻
理解ASP.NET的工作原理;
控件开发工作的天然好处就是让您拥有更多实战面向对象的机会,从而能更真切地感受到
面向对象;
对控件系统基类源代码的纵向切入能帮您更深入地理解设计模式思想;
它能帮您摒弃许多作为开发人员所固有的陋习——只知其然,不知其所以然,摆脱“傻瓜式”编程的境地,直接深入到底层;
它还是您开发过程当中的良师益友,内容全面,对每每个控件开发技术点均有详尽的阐述,
最适合作为您工作当中的查询手册。
本书的承诺:
从未接触过ASP.NET技术的读者,能使您直接晋升到ASP.NET控件开发的层次;
从未接触过ASPNET控件开发的读者,能使您自如地开发自己想要的控件;
从未接触过ASP.NET控件开发但熟悉ASP.NET技术的读者,能使您的功力直接提升三倍!
内容简介
本书主要介绍ASP.NET的控件开发,书中通过70多个例子讲解了ASP.NET控件开发技术的各个方面,而且剖析了很多控件中系统基类源代码,读者从这些系统源代码可以体会设计模式思想。如果扎实地掌握了ASP.NET控件的运行机制,开发一个页面级的ASP.NET应用程序会变得非常简单。本书宗旨就是让开发人员真正理解ASP.NET技术,帮助开发人员提高ASP.NET开发的技术水平。学完本书后您不仅能够掌握控件开发各个方面的技术,而且深晓ASP.NET的工作原理。对大部分使用ASP.NET技术开发两年左右的开发人员来说,本书75%以上的内容可能没有接触过,本书将通过笔者精心准备的一些生动的例子来阐述这些内容。
本书适合从事ASP.NET技术多年想往深度理解ASP.NET工作机制的开发人员阅读,对于刚刚入门的初级开发人员,本书的前面几章也介绍了几个入门性的应用例子,本书还可以作为在校学生的就业预备教材。针对读者安装的开发环境不同,笔者分别为VS 2005和VS 2008建立了解决方案,即无论您是使用VS 2005还是VS 2008都可以成功打开本书随书光盘的代码,只是使用VS 2005打开的解决方案不包含.NET 3.5对应章节内容的示例代码。
作者简介
姓名:郑健 网名:【夜战鹰】 【ChengKing(zhengJian)】 MSDN中文技术论坛版主;CSDN B log专家、社区专家、荣誉专家;CSDN社区ASP.NET版块版主、ASP.NET控件/组件开发版块版主;2006—2009年多届微软全球最有价值专家;荣获“DevWOW微软博客达人”优胜奖;荣获微软“最有影响力开发者”奖项。具有多年Web开发经验,目前在北京用友软件集团平台技术部门从事ERP产品的底层Ul控件/组件设计工作。 作为一个对技术的痴狂追求者,我很明白分享的重要意义,因为有过许多次当遇到问题从网上寻找到答案的惊喜,所以希望本书也能为钟情于ASP.NET的读者,们带来同样的感受。
目录
第1章 服务器控件概述及开发环境部署
1.1 自定义服务器控件
1.2 服务器控件在软件开发过程中的作用
1.3 在控件开发中提升自己
1.4 可继承控件基类介绍
1.5 运行一个简单的控件
1.5.1 开发一个简单控件
1.5.2 部署和运行
1.6 控件生命周期
1.6.1 概述
1.6.2 用代码跟踪控件生命周期过程
1.7 本章总结
第2章 服务器控件开发中的调试技术
2.1 预置代码示例
2.2 调试页面服务端代码
2.3 服务器控件的调试
2.3.1 运行模式下的调试方法
2.3.2 设计模式下的调试方法
2.4 JavaScript脚本调试方法
2.4.1 调试页面中的JavaScript脚本(方法一)
2.4.2 调试页面中的JavaScript脚本(方法二)
2.4.3 调试非嵌入式JavaScript脚本文件
2.4.4 调试嵌入式JavaScript脚本资源文件
2.4.5 高效率调试的技巧
2.5 Ajax Library对JavaScript调试支持
2.6 本章总结
第3章 从零开始开发服务器控件
3.1 选择基类
3.2 控件呈现顺序
3.3 Render呈现控件的几种方式
3.3.1 使用HTMLTextWriter类输出
3.3.2 直接输出HTML标签
3.3.3 使用服务器控件的RenderControl方法
3.4 AddAttributesToRender方法
3.5 CreateChildControls方法
3.6 INamingContainer接口
3.7 实现复合控件
3.7.1 CreateChildControls方法
3.7.2 ChildControlsCreated属性
3.7.3 EnsureChildControls方法
3.7.4 RecreateChildControls方法
3.7.5 Controls属性
3.7.6 HasControls方法
3.7.7 HasEvents方法
3.7.8 FindControl方法
3.7.9 实现复合控件示例
3.8 常用开发技巧
3.8.1 DesignMode属性
3.8.2 屏蔽基类控件中的属性
3.8.3 Page.Request.Browser属性
3.8.4 设置控件ID规范
3.8.5 增强FindControl功能
3.8.6 映射服务端控件值到客户端
3.8.7 禁止派生自CompositeControl的控件创建子控件
3.8.8 使用CreateChildControls的注意事项
3.8.9 不要误解设计元属性DefaultValue
3.8.10 在Render方法中利用基类资源
3.8.11 条件编译&条件属性
3.9 本章总结
第4章 服务器控件属性
4.1 控件属性的作用
4.1.1 系统属性
4.1.2 自定义属性
4.2 简单属性
4.3 属性的设计时特性
4.4 复杂属性
4.4.1 概述
4.4.2 复杂属性的几种标记形式
4.4.3 深入研究——复杂属性分析器
4.5 深入研究——定制自己的属性编辑器
4.5.1 系统属性编辑器
4.5.2 定制属性编辑器
4.6 类型转换器
4.6.1 系统类型转换器
4.6.2 定制自己的类型转换器
4.7 实现自定义属性
4.8 本章总结
第5章 事件和数据回发机制
5.1 控件事件和数据回发概述
5.1.1 事件及其意义
5.1.2 数据回发机制
5.2 事件和数据回发机制的实现
5.2.1 客户端回传事件接口IPostBackEventHandler
5.2.2 客户端回发/回调揭密
5.2.3 回传数据处理接口IPostBackDataHandler
5.2.4 正确处理继承基类中控件的事件
5.2.5 扩展KingTextBox控件功能(KingTextBoxCanPostEvent控件)
5.3 复合控件的事件处理机制
5.3.1 高效率事件集合对象
5.3.2 定制自己的委托和事件参数类
5.3.3 复合控件的事件处理
5.3.4 自动完成功能控件SearchControlIntelligent
5.4 本章总结
第6章 页面状态机制
6.1 页面状态概述
6.2 视图状态机制
6.2.1 IStateManager接口
6.2.2 控件生命周期中的装载和保存视图阶段
6.2.3 简单类型视图状态应用
6.2.4 实现自定义类型视图状态
6.3 控件状态机制
6.4 视图状态和控件状态的关系
6.4.1 在禁用视图状态的情况下仍然使用ViewState对象
6.4.2 IStateManager接口仍然可以在控件状态中使用
6.4.3 视图状态和控件状态组合使用规则
6.5 加密页面状态
6.6 清除页面状态
6.7 对动态添加控件的视图状态分析
6.8 自定义类型转换器实现高效率序列化
6.9 页面状态性能优化策略
6.9.1 存储位置优化——把视图状态信息保存在服务端而非客户端
6.9.2 体积优化——压缩视图状态数据
6.9.3 分块存储视图状态数据
6.10 视图状态和控件状态的总结
6.11 本章总结
第7章 定制自定义控件主题样式
7.1 控件样式概述
7.2 ASP.NET对样式的支持
7.2.1 Style类的工作原理及使用
7.2.2 WebControl基类对样式的支持功能及其工作原理
7.2.3 HTMLTextWriter类对控件样式的支持
7.2.4 定义控件内部的样式属性规则
7.2.5 两个常用转换方法
7.3 应用示例
7.3.1 复合控件样式及视图状态
7.3.2 控件结构与样式分离方案
7.4 本章总结
第8章 控件客户端编程模型
8.1 ASP.NET服务端控件对客户端的支持
8.2 ClientScriptManager类功能详解
8.2.1 RegisterArrayDeclaration方法
8.2.2 RegisterClientScriptBlock方法
8.2.3 RegisterClientScriptInclude方法
8.2.4 RegisterClientScriptResource方法
8.2.5 RegisterStartupScript方法
8.2.6 RegisterExpandoAttribute方法
8.2.7 RegisterHiddenField方法
8.2.8 GetCallbackEventReference方法
8.2.9 GetPostBackClientHyperlink方法
8.2.10 GetPostBackEventReference方法
8.2.11 GetWebResourceUrl方法
8.2.12 RegisterOnSubmitStatement方法
8.3 客户端回调
8.4 客户端控件应用示例
8.4.1 封装JS客户端对象
8.4.2 封装HTC客户端对象
8.4.3 在线签名控件示例应用
8.5 常用的一些JavaScript框架
8.6 本章总结
第9章 定制用户控件
9.1 用户控件概述
9.1.1 用户控件的作用
9.1.2 了解System.Web.UI.UserControl基类
9.2 用户控件应用示例
9.2.1 简单用户控件
9.2.2 复杂数据绑定用户控件
9.3 用户控件缓存
9.3.1 ASP.NET缓存介绍
9.3.2 用户控件缓存
9.4 本章总结
第10章 开发验证控件
10.1 验证控件的工作原理
10.1.1 内置验证控件简述
10.1.2 验证控件的工作机制解析
10.2 实现自定义验证控件
10.3 本章总结
第11章 在控件中使用嵌入资源
11.1 在控件中嵌入资源的原理
11.2 在控件中应用嵌入资源
11.2.1 在控件中使用嵌入资源
11.2.2 常用嵌入资源类型及用法
11.3 浏览器常用工具
11.3.1 HttpWatch
11.3.2 IE Develper Toolbar
11.3.3 Fiddler
11.4 本章总结
第12章 开发模板数据绑定控件
12.1 ASP.NET模板属性控件机制
12.1.1 模板属性介绍
12.1.2 ASP.NET对模板控件的支持
12.1.3 Repeater控件模板实现机制解析
12.2 自定义控件应用示例
12.2.1 模板控件功能
12.2.2 应用示例
12.3 本章总结
第13章 数据绑定和数据源控件
13.1 数据绑定控件
13.1.1 数据绑定控件概述
13.1.2 ASP.NET对数据绑定控件的支持
13.2 数据绑定控件示例应用
13.2.1 控件实现功能
13.2.2 应用示例
13.3 数据源控件
13.3.1 数据源控件概述
13.3.2 ASP.NET对数据源控件的支持
13.4 数据源控件示例应用
13.4.1 控件实现功能
13.4.2 应用示例
13.5 本章总结
第14章 扩展控件方案——GridView
14.1 扩展控件概述
14.2 任意定制GridView多表头
14.2.1 功能概述
14.2.2 代码实现
14.3 固定GridView表头并增加滚动条支持
14.3.1 功能概述
14.3.2 代码实现
14.4 本章总结
第15章 自定义控件设计模式下编程汇总
15.1 .NET框架对设计时支持
15.2 设计时元数据支持
15.3 复杂属性序列化
15.4 类型转换器
15.5 属性编辑器
15.6 设计模式可用基类介绍
15.7 设计时对控件呈现的支持
15.7.1 概述
15.7.2 应用示例
15.8 自动套用格式
15.8.1 概述
15.8.2 应用示例
15.9 模板UI设计器
15.10 智能操作列表
15.10.1 概述
15.10.2 应用示例
15.11 控件设计器区域
15.11.1 概述
15.11.2 应用示例
15.12 本章总结
第16章 ASP.NET Ajax控件开发——客户端
16.1 ASP.NET Ajax框架概述
16.2 Ajax Library对客户端面向对象功能支持
16.2.1 命名空间及Type和Function类
16.2.2 接口类型
16.2.3 类类型以及面向对象继承特征
16.2.4 枚举类型
16.2.5 反射功能
16.3 Ajax Library中的常用类型
16.3.1 Ajax Library对JavaScript基类型的扩展
16.3.2 Sys.StringBuilder类
16.4 Ajax Library请求服务端和WebServices
16.4.1 Sys.NET命名空间中的类
16.4.2 请求过程解析
16.4.3 WebRequest请求示例
16.4.4 使用代理实现Ajax调用服务端示例
16.5 Ajax Library对控件客户端类开发的支持
16.5.1 客户端控件基成员(类/接口)
16.5.2 ASP.NET Ajax控件客户端生命周期
16.6 客户端控件示例应用
16.7 调试和跟踪
16.8 本章总结
第17章 ASP.NET Ajax控件开发——服务端
17.1 ASP.NET Ajax服务器控件概述
17.2 Ajax服务器控件
17.2.1 Ajax服务器控件
17.2.2 ASP.NET Ajax扩展程序控件
17.3 ASP.NET Ajax对服务器控件支持的基类
17.3.1 Ajax控件支持的基类
17.3.2 Ajax控件应用示例
17.4 本章总结
附录A .NET 3.5技术教程系列——Collection/ASP.NET Ajax/ SilverLight/JQuery
媒体评论
不是诚心想成为杰出ASP.NET程序专家者,请勿浪费时间翻阅本书。 ——胡德民 相信您阅读过此书后,会像庖丁一样,有一种提书而立,为之四顾,为之踌躇满志的感觉。 ——王洪超
书摘插图
第1章 服务器控件概述及开发环境部署
本章内容
1.1 自定义服务器控件
1.2 服务器控件在软件开发过程中的作用
1.3 在控件开发中提升自己
1_4 可继承控件基类介绍
1.5 运行一个简单的控件
1.6 控件生命周期
1.1 自定义服务器控件
什么是服务器控件?一个Button就是一个服务器控件。ASENET提供了很多服务器控件,比如:TextBox,GridView,Login等。
服务器控件是能够完成一定的通用交互功能,编译成程序集,并嵌入到页面(扩展名为.aspx的文件)中的控件。当客户端向服务器请求一个页面时,页面构造器能够使控件与页面一起以被浏览器识别的HTML标记串返回;在客户端跟用户交互后,可以将属性又提交回服务器,以及触发事件等。服务端控件分为HTML服务器控件和Web服务器控件。总之,服务器控件集成了一定的交互功能,具有较强的代码重用性。
自定义服务器控件除了具备上面所说的服务器控件的所有特性外,还可以满足某个自己定制的功能。
1.2 服务器控件在软件开发过程中的作用
服务器控件开发在软件开发应用中是非常必要的。使用自定义服务器控件的情况有以下
几种:
1.需要使用集成了业务功能的控件
一般微软或第三方控件公司提供的控件只具备技术方面的功能通用性,在做一个具体的系统时,会用到很多封装多种业务的控件。如ERP系统中的参照控件,就是一个典型的将业务和技术封装在一块的控件。这样不仅可以做到“代码重用”,也可以做到“业务重用”。
……