资源下载址址:http://www.broadview.com.cn/Html/resource/04908.rar
以前我一直觉得技术图书怎么这么贵。现在自己出一本,终于明白了为什么。技术图书不像《人体使用手册》,《论语心得》这样的图书,潜在受众是全国13亿人民,它的潜在读者群局限在一个小小的技术人群中,所以就算这一行每人买一本,它的销量也是有限的,更别说每人买一本,是《毛选》都相去甚远的目标。所以对于出版社来说,出版技术图书的风险也是比较大的。对于作者来说,要以写书来求大利,更是痴心妄想,像谭浩强老先生这样的机会太少了。更别论国内技术作者写得好,要被骂,写得差,也要被骂,为什么写得好要被骂呢,以《Java与模式》和《大道至简》这两本书为例,在我看来,这两本书不论好坏,至少作者是有些思想的,但木秀于林,风必摧之,有些人自己创造不出什么东西来,但发现这样的书,他好像找到了证明自己的绝妙途径,于是完全忘记待人以宽,待已以严的古训,鸡蛋里挑骨头,找出几个问题大加鞭挞,以示作者算个什么鸟,自己比他更高明。扪心自问,这本书面世之后,无论结果如何,我都能坦然待之,博客园的话,我更是相信这里的良好氛围,再次谢谢博客园。
不仅仅是开发控件
作者序
7月,我走进电影院,观看了《变型金刚》电影。在观影的2个小时中,我被一种东西持续感动着,这种东西就是技术的力量。
人类天生就是追求技术的。技术,就是关于方法的知识。
现在的技术人员是幸运的,又不是幸福的。幸运的是,当代技术人员赶上了信息技术产业大革命,技术人员能史无前例的感受技术的强大力量。说当代技术人员又是不幸福的,是因为在产业革命过程中,其技术革命时期,技术是最关键的,所以早些年国内外都涌现了很多的技术英雄;在接下来的商务革命时期,管理水平决定企业的成败,因此这些年,很多优秀技术精英都转型做了管理,做技术反过来好像是比较丢人的事情了;再接下来的平民革命时期,关系管理和模式创新成了成功最关键的要素,MySpace的创业团队用一个月的辛苦创造出年创收2亿美元的网站。所以,在当今“重商轻工”的社会大环境里,技术人员少了几分自信,多了几分迷芒:这碗“青春饭”到底能不能吃一辈子?
特别在最近这几年里,IT从业人员经历了从信息技术产业革命的商务革命时期到平民革命时期转变的阵痛,剧烈而又深刻的社会变革使得大量新的事物一股脑涌现出来。如果你是一个不够努力的技术人员,那么你可能会跟不上时代的脚步,不能理解这场变革的本质,陷入一种迷乱中。比如,你可能不能理解为什么“百万格子”的首页为什么划一万个格子就能卖一百万,而你的网站首页却只能卖一百块,实质上,它是一种创新,而由于这种创新吸引了大家的注意力,所以它就有价值,这是注意力经济原理。你也可能不理解电子商务网站的货物陈列架和传统的超市的货物陈列架之间有什么区别,而这种区别被归纳为流行的“长尾理论”。而维基百科(Wikipedia)利用群体创作的威力迅速打败大名鼎鼎的不列颠百科全书也可能没有给你任何触动。
Web 2.0扑头盖脸的淹过来之后,马上恶补一番Javascript、CSS,做几个AJAX的小实验,就算是站在了技术潮流的浪尖了吗?如果是这样的话,为什么在AJAX相关书籍热销了整整一年之后,周围却仍没有多少真正掌握Web 2.0的技术人员呢?
所以,我们也许应该多思考一下,怎么样才能成为一个顶尖的技术人员?
在我看来,IT技术人员掌握人类最新的技术,代表最先进生产力,我们的机会始终是最多的。我们要做的是,拿起技术这把倚天剑,真正的精通一门技术,合理的运用这门技术,那么成功应该就是顺理成章的事了。
社会并不是不尊重技术,只是技术只有精通了,能创新,能真正为社会创造核心价值,它才能发出耀眼的光芒。
本书为谁而写
坦白的说,我从来没有从事过专门的ASP.NET控件研发工作。但是自从我深入研究了ASP.NET框架及其控件的内部机理后,我才可以说我真正掌握了ASP.NET,从此,我就可以随心所欲的使用ASP.NET,实现一般ASP.NET开发人员不能实现的功能,解决一般ASP.NET开发人员不能解决的疑难问题。应该说,正是ASP.NET控件开发知识,促进了我的ASP.NET技能的快速成长。
由此,在我看来ASP.NET控件开发知识对于理解和真正掌握ASP.NET相当重要,我们不仅可以利用控件开发知识实现各种控件,在提高代码复用率,加强项目组件化的同时,展现自己的创造力与才智。而且控件开发知识在一般的ASP.NET日常开发中,也能协助您解决很多疑难问题,帮助您随心所欲地实现自己的设计,因此我说,本书的用处并不仅仅是开发控件,本书内容对所有使用ASP.NET进行开发的程序员和架构师,都有很大价值。
为什么要学习控件开发
管理学家曾仕强说中国人凡事都讲究合理。只有在有一个好理由驱动的时候,人们才能更主动积极的去做好一件事情。
所以,在做一件事情之前,把做这件事的理由先找出来,也许更有方向,更有动力一些。
那么,我们为什么要花时间来学习ASP.NET服务端控件的开发呢?
复用代码
显而易见,组件与控件技术能更好的复用代码,设计良好的组件与控件能极大的提高程序开发过程的效率。利用控件与组件技术,我们可以把自己在开发实践中积累的灵感和经验沉淀起来,以备后用。同时,持续的积累自己的控件,可以更好的组织和管理自己的知识。此外,如果有好的创意,加上娴熟的控件开发技术,更可以开发和发布优秀的ASP.NET控件,为整个开发社区贡献自己的智慧和力量。深入理解ASP.NET框架
控件开发过程本身不同于我们平时的ASP.NET应用程序开发。我们平时的ASP.NET开发一般停留在技术应用层面,而控件开发过程除了是一个现有技术的应用过程,也是一个研发与创建的过程。控件开发的这一特点,决定你在这个过程中必须去深入探索ASP.NET框架及其相关技术的内部细节和实现原理,而这个探索的过程必将促使你更加深刻的理解ASP.NET框架,更加准确的把握ASP.NET技术。可以说,学习ASP.NET控件与组件开发是学习和理解ASP.NET的一种科学而高效的途径。我能学会控件开发吗
控件开发过程其实是一种科学而高效的ASP.NET学习、研究方法,对于一般的ASP.NET开发人员来说,学习和掌握ASP.NET控件开发的知识和技巧能更大幅度的提升你对ASP.NET的理解,极大的提高你的技术水平。所以我认为学习控件开发,进,可以实现控件,让自己从使用工具的人变成发明工具的人,向整个ASP.NET开发社区展示自己的聪明才智;退,就算不能创造非常优秀的控件出来,也可以因此深入理解ASP.NET的内部原理,提高ASP.NET开发水平。
虽然ASP.NET的控件系统有一个非常庞大而复杂的框架,要一次性完整的把握它是不可能的。但是,我们可以把它化整为零,再逐个消化。本书内容正是按一定的顺序逐个分解控件开发的各个方面,并以详细实用的例子向你展示如何应用这些技术,实实在在的帮助你掌握这些知识和技术。
如何阅读本书
离开ASP.NET这个环境去理解ASP.NET控件是没有意义的,所以本书第1章首先探讨了ASP.NET运行时的生命周期。当然,如果您对ASP.NET非常的了解,您可以直接跳过本章,阅读后面的章节。从第2章到第6章依次介绍了ASP.NET控件最基本的知识,包括呈现内容,属性与持久化,服务端事件与ASP.NET回传,脚本与资源文件的集成以及ASP.NET回调,控件的设计时支持。在这些章节中,还穿插了两个阶段项目,第一个在第4章之后,完整地实现了一个组合控件—CompositeNumbericUpDown,这个阶段项目的实验目的是加深对控件呈现、控件复杂属性的持久化管理、事件冒泡机制的理解。第二个阶段项目在第6章之后,是一个客户端功能非常强大的DateChooser控件,在实现这个控件时,我们不但回顾了如何组织客户端功能,如何提供强大的设计时支持,还探讨了客户端代码的实现与JQuery Javascript框架,我觉得对客户端如何实现进行展开是值得的,因为啃了不少Javascript书本,却仍不知如何去实现一个Javascript应用的朋友并不少见。
从第7章到第11章则分别介绍ASP.NET 2.0中的某一类控件,依次是验证控件,模板控件,数据绑定控件,数据源控件,WebParts。第10章之后同样加入了一个阶段项目—ListView控件,实战ListView控件是为了将前面三章所学的模板、数据绑定、数据源控件知识有机的组合起来。
第12章专门介绍了ASP.NET AJAX框架,并演示如何扩展ASP.NET AJAX框架,实现AJAX控件与行为,以及AJAX Control Toolkit。
第13章补充了控件的本地化、使用许可与保护控件的相关知识。
第14章则尝试实现一个WAP开发框架,将控件开发话题提升到实现一个框架的高度。
本书的一个特点是示例非常多,基本上每一个知识点都有一个精心设计的实例,这些实例有的具有实用价值,有的实用价值不大,但不管怎么样,它们都不是从MSDN或其它地方抄下来的,它们是与章节内容紧密结合的,通常能针对性的说明一个知识点,并演示如何使用这个知识点。所以,我希望您能认真阅读这些示例代码,实际的运行它们,最好是把它们都做一遍。
本书的三个阶段项目是为了阶段性的巩固多个章节所学的知识,并演示如何综合使用这些知识,我建议您从头到尾把阶段项目A实现一遍,把阶段项目B的服务端代码实现一遍,把阶段项目C遗留的功能实现出来,尝试让ListView成为一个可以实际使用的控件。
感谢
几个月前,我为陈黎夫先生的著作《ASP.NET AJAX程序设计:第2卷》写推荐序时,我呼吁大家不要对国内计算机出版业的发展与逐渐成熟熟视无睹,不要固执的认为国产计算机图书就一定比不过引进图书,现在,我觉得我的呼吁是正确的,中国的计算机图书出版社中不泛杰出者,它们的发展与进步是看得见的摸得着的。
之所以这样说,是因为在与博文视点合作的过程中,我实实在在的感觉到他们就是优秀的计算机出版社的一个代表。他们不仅对读者有深刻的理解,而且他们也懂作者,他们可是“相当的”专业的。
感谢本书的主编孙女士和其它为本书如期面世而努力的编辑们,你们的工作与理解,让我的写作过程变成一段愉悦的旅途。
(推序荐感言暂时未定)
勘误
由于时间有限和水平有限,本书可能不够全面,不够深入,不够浅出,甚至可能存在一些错误,如果您发现了书中的错误,您可以到下面网址中指出,我们非常感谢您的帮助:(勘误网址暂时未定)
谭振林
2007年8月于深圳
(本书已于上周定稿,现在进入编辑出版流程,预计9月出版)