ASP.NET本质论
上QQ阅读APP看书,第一时间看更新

前言

本书的起源

经常有人问起:应该如何学习ASP.NET开发?为什么开始的时候感觉很容易,但是,遇到问题的时候却感到无从下手?太多的人开始学习的时候,对ASP.NET有着深深的误解,包括我自己。

很多人选择ASP.NET的理由是因为它简单:中文开发环境、简体中文的文档、简单的拖放式开发、类似于WinForm的开发体验等。Visual Studio和.NET Framework为我们提供了一个极其方便的开发环境,很多人因此进入了ASP.NET开发之门,甚至有相当多的ASP.NET程序员都没有了解过HTTP协议的内容,或者HTML的语法,也同样在完成着开发任务。

这究竟是ASP.NET技术的成功,还是失败?

在ASP.NET中,组件技术被用到极致,整个ASP.NET就是一个高级组件,内部又可以分为控件组件、状态管理组件、用户管理组件等。组件技术的使用将ASP.NET程序员分为两大类:开发组件的程序员和使用组件的程序员。

开发组件的程序员需要掌握ASP.NET的运行机制,熟悉ASP.NET处理HTTP请求的整个过程,对通过.NET技术来解决Web请求处理的方法有着深刻的理解,这一切对程序员有着很高的要求。而使用组件的程序员只需要使用开发完成的组件,将组件通过工具箱拖放到窗体上,然后,通过属性窗口设置组件的属性,再加上一些机械的处理,就可以快速开发出应用程序。甚至完全不需要知道组件的背后在发生着什么。在许多ASP.NET技术演示中,好像一次魔术表演,就神奇地完成了开发任务。开发中的这种分工提高了开发的效率。

那么,我们希望成为哪一种程序员呢?

成为使用组件的程序员比较容易,成为开发组件的程序员很难。高内聚、低耦合的组件也造成了很陡峭的技术壁垒,需要辛苦地攀登。那么,在这个组件开发的时代,我们还需要学习组件的知识吗?答案是:需要!一定需要!即使我们不开发组件,也不能不理解组件!组件的使用千变万化,但是万变不离其宗。如果你希望成为自由驰骋在ASP.NET领域的骑手,那就跟随我进行一次穿越ASP.NET的开心之旅吧!

面向的读者

本书面向的读者是准备深入学习ASP.NET的学生和有1~2年ASP.NET工作经验,但是希望进一步提高开发技能,深入掌握ASP.NET高级编程的程序员。通过系统地学习ASP.NET的处理机制,为成为一个高级的ASP.NET软件开发人员打下坚实的基础。

特色

本书不从C#讲起,也不讲解控件的属性及使用,没有设计模式的分析,甚至没有任何数据库的内容。所以,不要希望通过本书来学习一个ASP.NET的购物网站如何完成。

在本书中,有ASP.NET与HTTP关系的详细分析,有事件处理机制在ASP.NET中的应用,有多线程程序在ASP.NET中的应用与分析,有控件与流的关系,有控件与HTML之间关系的详细分析,有各种状态管理机制实现的内幕。总起来说,这里只有ASP.NET的内在运行机制的分析。本书对ASP.NET的组件机制进行了详细的分析,希望能够帮助你理解 ASP.NET应用程序为什么这样写的问题。从前,你可能会使用各种控件,可能还掌握各种开发技巧。通过本书你可以创建自己的组件,发现未知的技巧!看了此书之后,希望你说:原来如此!

如何阅读本书

本书从HTTP请求开始,将会带领你穿越整个ASP.NET的处理过程,以请求的处理过程为主线,对每一步处理所涉及的技术进行深入的剖析,结合开发中常见的问题,分析问题的原因并给出解决方案。包括最新的MVC技术。书中的每一章也独立成篇,你可以根据自己的需要来选择阅读。

从第1章~第4章是ASP.NET的核心部分,重点讨论了ASP.NET中对于请求的处理机制,ASP.NET中对象与HTTP之间的映射关系,应用程序处理管道的处理过程,处理程序的处理机制,以及多线程技术在ASP.NET中的应用。

从第5章~第8章是经典的WebForm部分,重点讨论了控件的原理与页面的生成机制。详细讨论了流与控件的关系,控件与HTML的关系,数据绑定控件与模板的关系,以及ASP.NET中各种状态管理技术。

第9章分析了开发ASP.NET程序的另外一种选择ASP.NET MVC的处理过程,分析了ASP.NET MVC应用程序与经典的ASP.NET程序之间的关系,以及MVC内部的处理过程。并对关键的处理过程进行了详细的讨论。

ASP.NET应用程序不是一个独立的应用程序,需要寄宿于Web服务器之上。第10章讨论了ASP.NET与IIS服务器之间的关系,并针对不同的IIS版本分别分析了其处理过程。

最后一章针对ASP.NET应用程序中的用户问题进行了分析,剖析了在ASP.NET中处理用户问题的各种方案,对处理不同环节中的用户及其转换关系进行了详细的分析。

致谢

首先要感谢的是华章公司的杨福川编辑,没有他的鼓励和帮助,就不会有这本书的诞生。

特别要感谢博客园的帮助和支持,作为专业的.NET技术网站,博客园这个灿若繁星的技术宝库为我提供了成长的土壤,本书中的许多问题和案例来源于博客园。

感谢众多的朋友们在我完成本书的过程中给予我的支持和鼓励,你们的帮助是我完成本书的强大动力。

本书的支持

很荣幸出版社给了我这样一个机会与大家分享这些知识。但是由于作者本人水平所限,虽然进行了多次修改,仍然很难尽如人意,已近完稿,心中更加忐忑不安,只是希望能够给大家在学习ASP.NET的过程中带来一些帮助。如果大家在读完某些章节之后,对以前希望了解又无从查询的问题感觉豁然开朗,我就聊以自慰了。

书中的示例都有相应的源码,可以在我的博客下载,也可以在华章公司的官方网站(www.hzbook.com)上下载。

联系作者

电子邮件:haoguanjun@gmail.com

博客:http://haogj.cnblogs.com

对本书的任何问题请通过电子邮件联系,我会尽快处理和答复,并在博客上发布与更新。

作者

2011年1月