ASP.NET夜话(含DVD光盘1张)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-22 13:38:59

点击下载

作者:周金桥

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

ASP.NET夜话(含DVD光盘1张)

ASP.NET夜话(含DVD光盘1张)试读:

前言

缘起算算从事软件开发已经有好几个年头了,在这些年开发了多少个网站我自己也记不清了。每次在开发中遇到问题解决以后我总喜欢把解决过程记录下来放在网上,以备自己随时查阅,直到有一天有一个朋友跟我说他在开发过程中每次遇到问题总能发现我也曾遇到过类似的问题,向我致谢的同时还建议我将这些问题整理成一个系统的知识系统,我当时接受了这个建议。2008年9月,我整理出第一篇文章放在我的博客上,我以为没有人会在意,没有想到当天就有大量的朋友在我的博客上给我好评,鼓励我继续整理下去,正是有这样一群朋友热情的鼓励,给了我无穷的动力,所以尽管每天回家都已经很晚很累了,但是我仍会打开笔记本继续奋斗,力争早一日让大家看到我的成果。我清楚地记得第一篇文章是从晚上9点开始写,到凌晨才结束的,因为我打算将它写成一个系列文章,冥思苦想之后我把这个系列文章起名为《ASP.NET 夜话》。之所以叫夜话,是因为我每天白天都在上班,写这个系列文章的时候都是夜晚甚至凌晨。我喜欢品茶,在写本书的过程中我都是一边品茶一边写作,每每没有思路的时候品茶总能给我灵感,让我继续写下去。正因为写作的时候我在品茶,所以我是以一种写散文的形式来写作本书,写完本章之后下一章写什么都是由当时的灵感来决定,而不是事先预计好的,也正是因为这样,所以本书在大多数章节中都会着重讲解一些知识点,然后对相关的知识点做一个延伸和拓展,这样就不会拘泥于每一个细节之中。当然,既然决定把本书当做散文来做,要做到形散而神不散,在写作过程中我还是有所侧重的,那就是一切都基于企业开发所用到的知识点,整本书讲解的就是企业开发的方方面面。我相信读者在阅读本书时也会有这种体会。本书有些什么既然在写作过程中我是抱着写散文的心态去写的,那么书中的章节大多数并没有严格意义上的先后顺序,所以读者朋友可以从任何一个感兴趣的章节去读。不过,在这里笔者要告诉读者,本书不是一本介绍ASP.NET API的书,书中列出了不少类、方法及控件,这些都是笔者在开发中经常用到的,所以书中把它们单独列出来讲解。按照写作时的安排,我将整本书分作三个部分:基础知识、进阶知识和高级知识。基本知识点主要偏重 ASP.NET 开发的基础知识,初学者和初级开发人员应力求掌握这一部分;进阶知识基于基础知识进行拓展和延伸,中级开发人员应着重掌握这部分内容;高级知识讲解了开发高性能 ASP.NET 应用程序涉及的问题,并以一个综合实例来讲述知识点在实际项目中的应用。基础知识部分:第1章 ASP.NET介绍第2章 ASP.NET基础第3章 表单和控件第4章Visual Studio 2008介绍第5章 Page类和回调技术第6章 ASP.NET基本控件第7章 ADO.NET介绍第8章 数据绑定控件第9章 验证控件第10章 复合控件和母板页进阶知识部分:第11章 web.config详解第12章 ASP.NET底层探秘第13章 ASP.NET中的AJAX开发第14章 分布式开发第15章 ASP.NET中的三层架构第16章 单元测试第17章 ASP.NET中的GDI+技术高级知识部分:第18章 ASP.NET报表技术第19章 .NET的文件IO体系和静态页面生成技术第20章 数据安全技术第21章 ASP.NET网站的性能优化第22章 综合实例阅读前的准备本书中的代码基于Visual Studio 2008和SQL Server 2005,因为经常需要访问数据,所以在阅读本书时要安装上这个两个软件;然后将配书光盘中的数据库附加到SQL Server 2005中,再按照本机的实际情况在web.config中配置数据库连接字符串。此外,在书中还提到了不少的第三方软件,请读者到网上下载这些软件并安装。如何阅读本书散文一样的写作方式决定了在阅读本书时完全不必按照本书的章节顺序来阅读本书,可以从任何一个感兴趣的章节开始阅读。不过,如果想扎实地掌握 ASP.NET 开发技巧,我建议你不管以什么顺序来阅读,但是一定要阅读本书的每一个章节。致谢在本书的写作过程中得到了多方的支持,本书能够出版绝非我一个人的力量所能完成的。首先要感谢唐军平、孙利花、柴林甫、员战强、张洋、巩静荣、李文娟、张燕及薛婷和杜垚等人,他们为本书的写作提供了不少的建议和帮助;感谢博文视点的孙学瑛老师和葛娜老师,在本书的写作过程中得到了她们大力支持;此外还要感谢在我的博客上给我热情留言鼓励的读者,以及山西.NET俱乐部主席桂素伟和副主席张剑,你们的支持和建议才使本书得以顺利出版。当然在我写作本书时一直陪伴到深夜而毫无怨言的一位朋友,那就是摆放在墙角的电热壶,正是因为它在我文思枯竭时提供了清茶,才使得我文思如泉涌继续写作。我想借这个机会感谢我的家人,是您们生我养我供我读书,在我生活和工作中遇到重大挫折时总会第一时间在遥远的湖北黄冈给我加油打气。“要看关心一个人的程度,只要看他是否关心另一个人那里的天气就知道了。”这些年来因为工作忙碌的原因,我几乎不看电视,不管我走到那里,亲爱的妈妈总会留意那个城市的天气预报,以便在冷暖天气变化之前通知远方的儿子,惭愧的是这么多年来我一直没有机会留在父母身边尽孝道,这一直是我心头的遗憾。感谢父母给了我一个温暖的家,我希望能将本书献给我亲爱的爸爸妈妈!2009年5月基 础 知 识● 第1章ASP.NET介绍● 第2章ASP.NET基础● 第3章表单和控件● 第4章VisualStudio2008介绍● 第5章Page类和回调技术● 第6章ASP.NET基本控件● 第7章ADO.NET介绍● 第8章数据绑定控件● 第9章验证控件● 第10章复合控件和母板页01ASP.NET介绍在本章中主要介绍ASP.NET的相关知识,如XHTML语言、静态动态网页的概念、IIS的安装和配置及ASP.NET的运行原理等。主要介绍的知识点如下:● XHTML语言● 静态网页● 动态网页● IIS的安装和配置A● SP.NET开发的预备知识1.1 XHTML语言在网页开发的早期,基本上都是使用HTML语言开发的,因为它的语法要求比较松散,虽然对开发者来说比较方便,但是机器处理起来比较困难,所以在HTML的基础上增加了XML的要求,这就形成了XHTML语言。XHTML 其实就是符合 XML 标准的 HTML 语言,它对开发人员的要求比较严格,当前的 Macromedia Dreamweaver和Microsoft Visual Studio2005及以后版本都支持XHTML开发。如图1-1所示就是使用Dreamweaver 8中文版创建的空HTML页面,它符合XHTML规范。如图1-2所示是使用Microsoft Visual Studio2008创建的空白aspx页面,它也符合XHTML规范。注意图1-2中用红线标出的部分,表示我们创建的是符合XHTML标准的页面。之所以要提到这些,是因为经常遇到一些初学者写出的页面不符合XHTML标准,所以在Microsoft Visual Studio2008中会看到警告信息或者无法查看页面的设计效果。图1-1 使用Dreamweaver 8中文版创建的空HTML页面页面图1-2使用Microsoft Visual Studio2008创建的空白aspx1.2 静态网页早期的网页使用的都是静态网页,所谓的静态网页就是在网页中不包含有需要在服务器端执行的代码。比如,一个含有JavaScript特效的HTML网页或一个含有Flash的HTML网页,它们虽然在网页中呈现的效果会“动”,甚至还有运行代码,但是因为都是在客户端执行的代码,所以算不上动态网页。静态网页的优点是服务器只需要简单地将网页HTML传送给浏览器就行了,浏览速度快。静态网页的缺点是维护起来困难,不能使用数据库带来的好处。1.3 动态网页动态网页是指网页中包含有需要在Web服务器上执行的代码。当我们向Web服务器请求一个动态网页时,Web服务器需要在服务器上执行动态代码,然后将最终的结果连同HTML代码一起发送给客户端浏览器。因为浏览器不能识别和显示动态代码,所以不论以何种语言编写的动态网页,到达浏览器时都是HTML代码。当然不同的编程语言编写的动态网页,Web 服务器会以不同的方式运行这些代码。更专业一点的说法是,Web服务器会交给不同的程序去执行这些代码,这些执行代码的程序被称为脚本引擎,Web服务器将这些脚本引擎的执行结果发送给浏览器。目前常见的动态网页后缀有.jsp、.asp、.php及.aspx等。1.4 IIS的安装和配置Web 服务器是用来接收客户浏览器请求的,根据客户端浏览器请求决定如何向客户端传送网页。当我们打开一个网页或者其他文件时,Web 服务器会决定如何将该文件的内容交给客户端,比如显示当前网页或者重定向等。目前比较流行的Web服务器有IIS(Internet Information Server)和Apache。前者是微软开发的,具有微软一贯的使用简单的特点,它运行在Windows操作系统上;而Apache是一个开源软件,有Windows和Linux等系统下版本。我们做ASP.NET开发主要是使用IIS。打开“控制面板”,找到“添加/删除 Windows组件”,打开“Windows 组件向导”窗口,如图1-3所示。选中“Internet 信息服务(IIS)”选项,单击“下一步”按钮就可以安装了。注意:在安装过程中可能会要求放入系统安装盘。图1-3 “Windows组件向导”窗口1.5 ASP.NET开发的预备知识1.5.1 ASP.NET简介ASP.NET并不是一门编程语言,而是一个统一的Web开发模型,它支持以可视化的方式创建企业级网站。ASP.NET是.NET Framework的一部分,在ASP.NET中可以利用.NET Framework中的类进行编程。在ASP.NET中可以用VB.NET、C#、J#和JScript .NET等编程语言来开发Web应用程序。1.5.2 在IIS上配置ASP.NET在服务器上部署ASP.NET网站时,需要.NET的运行环境.NET Framework。.NET Framework类似于Java的JDK,包含有.NET程序运行环境和命令行编译工具。如果服务器上没有安装.NET Framework,这就需要从微软网站下载,下载网址是:http://msdn2.microsoft.com/zh-cn/default.aspx还需要注意的是,如果先安装.NET Framework再安装IIS的话,需要运行一个命令向IIS注册.NET Framework,这个命令可以在系统分区中找。假如操作系统安装在C盘并且安装的.NET Framework的版本为2.0或更高版本,那么这个文件的路径就是:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe在“运行”窗口输入:“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe–i”,如图1-4所示。单击“确定”按钮即可完成注册。我们不妨再对服务器进行深入一点的探索,运行IIS软件,打开如图1-5所示的“Internet信息服务”窗口。图1-4运行向IIS注册.NET Framework的命令图1-5 “Internet信息服务”窗口在“默认网站”节点上单击右键,在弹出的快捷菜单中选择“属性”,会打开如图1-6所示的“默认网站 属性”窗口。我们会看到共有 8 个选项卡,分别是“网站”、“ISAPI 筛选器”、“主目录”、“文档”、“目录安全性”、“HTTP头”、“自定义错误”和“ASP.NET”选项卡。这里介绍几个常用来进行配置的选项卡。(1)“网站”选项卡:用来配置一些常规属性,比如网站使用的端口号、IP地址等信息。Web服务器的默认端口号是80,如果不熟悉IIS,则不建议修改默认端口号。(2)“主目录”选项卡:用来设置网站或者虚拟目录的物理路径和执行权限等,如图1-7所示。图1-6 “默认网站 属性”窗口图1-7 “主目录”选项卡在“主目录”选项卡中还可以设置应用程序映射。单击“配置”按钮,会打开如图 1-8 所示的“应用程序配置”窗口。从图1-8中可以看到,当我们正确安装了IIS和.NET Framework之后,以.aspx为后缀的动态页面就能交给指定的脚本引擎执行了。选中.aspx文件并单击“编辑”按钮,会弹出一个新窗口,如图1-9所示。从图1-9中可以看出,.aspx页面都是交由aspnet_isapi.dll执行的。如果有自定义的文件类型需要交由服务器进行处理,则可以在这里配置。图1-8 “应用程序配置”窗口图1-9 “添加/编辑应用程序扩展名映射”窗口(3)“文档”选项卡:用于设置网站起始页和调整网站起始页之间的优先级,如图1-10所示。所谓起始页,就是当我们打开一个网站或者虚拟目录时,如果没有特别指定访问哪个网页,Web 服务器会默认打开的一个页面。比如,我们在浏览器地址栏里输入 www.163.com,虽然我们并没有指定要访问服务器上的哪个页面,但是服务器会采用一种默认的顺序来打开 Web 上的某个特定页面,这个页面就称之为起始页。在IIS中可以配置多个页面作为起始页,在如图1-10所示的窗口中,我们设置了多个页面作为起始页,在运行时 IIS 会按照从上到下的顺序检查我们的网站或者虚拟目录有没有相应的页面,如果找到了符合条件的网页,就停止查找,如果是静态网页,就直接把静态网页的内容传输到客户端;如果是动态网页,就找到相关的脚本引擎执行当前页面的服务器端代码,并把最终结果传输到客户端。(4)“ASP.NET”选项卡:在一台机器上允许安装多种版本的.NET Framework并且互不干扰。如果在一台机器上安装了多种版本的.NET Framework,就需要让Internet信息服务(IIS)知道用哪个ASP.NET ISAPI (aspnet_isapi.dll)版本处理ASP.NET应用程序中的页。如果当前机器上安装了多个.NET Framework版本,就需要正确地设置每个网站或者虚拟目录所使用的ASP.NET版本,这个需要与开发时所使用的.NET Framework版本一致,如图1-11所示。图1-10 “文档”选项卡图1-11 选择ASP.NET应用程序运行的ASP.NET版本1.5.3Visual Studio版本与.NET Framework版本及ASP.NET版本之间的关系自从Visual Studio2008出现以后,使得.NET Framework的版本突然增加到了5个,分别是.NET Framework 1.0、.NET Framework 1.1、.NET Framework 2.0、.NET Framework 3.0、.NET Framework 3.5。在.NET Framework 1.0升级到.NET Framework 2.0的过程中,在编程语法上体现了很多变化,比如在.NET Framework 2.0中新增了范型和局部类等。但是从.NET Framework 2.0升级到.NET Framework 3.5的过程中,比较明显的是提供了更多框架,如Windows Communication Foundation(WCF)、Windows Workflow Foundation(WF)及Windows Presentation Foundation(WPF),当然也提供了LINQ(Language-Integrated Query,通用标准查询运算符)技术。使用Visual Studio2002开发的ASP.NET网站需要.NET Framework 1.0支持,所使用的ASP.NET版本是1.0;使用Visual Studio2003开发的ASP.NET网站需要.NET Framework 1.1支持,所使用的ASP.NET版本是1.1;使用Visual Studio2005开发的网站需要.NET Framework 2.0支持,所使用的ASP.NET版本是2.0;使用Visual Studio2008开发的网站可以支持.NET Framework 2.0、.NET Framework 3.0和.NET Framework 3.5,所使用的ASP.NET版本统一是2.0,在IIS中部署ASP.NET应用程序时一定要注意这个问题。1.5.4 ASP.NET运行内幕在安装了.NET Framework的机器上会有一个特殊的文件夹,它位于系统分区下,如图1-12所示。因为笔者的系统分区是C盘,并且IIS使用了.NET Framework 2.0,所以这个文件夹是C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files,这个文件夹是用来存放ASP.NET应用程序的临时文件的。我们可以用Dreamweaver创建一个简单的ASP.NET网页Test.aspx页面。①打开Dreamweaver,选择“新建”,并且依次选择“动态页”“ASP.NET C#”,如图1-13所示。图1-12 ASP.NET临时文件夹图1-13 使用Dreamweaver创建ASP.NET网页② 单击“创建”按钮,就可以创建一个新的ASP.NET页面,在这个新建的ASP.NET页面中无须输入任何代码,只需将这个文件保存在系统分区下的Inetpub\wwwroot目录中即可(因为笔者的系统分区为C盘,所以是C:\Inetpub\wwwroot,这个目录就是IIS默认网站的根目录),文件名为Test.aspx。然后在浏览器中输入http://localhost/test.aspx,将会看到一个空白页面,这个空白页面不是我们所要关心的结果,我们关心的是在 ASP.NET 临时文件夹中会有些什么变化。打开C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files这个文件夹,我们会发现此时多了一个子文件夹root,如图1-14所示。再继续打开这个文件夹,到最后会发现如图 1-15 所示的结果。图1-14 ASP.NET临时文件夹下的情况通过上面的演示可以得出如下结论:对于我们刚刚创建的那个空白的 Test.aspx页面,经过客户端浏览器请求之后,会在相应的.NET Framework运行版本下的ASP.NET临时文件夹下生成对应的DLL文件。利用.NET Framework自带的ILDASM工具打开那个DLL文件,可以看到这个DLL文件的中间代码信息(注:ILDASM.exe文件是随着.NET Framework一同发布的、用于给用户查看.NET代码编译后生成的IL中间代码的工具。例如,安装.NETFramework2.0之后可以通过“开始”“所有程序”“Microsoft.NETFrameworkSDKv2.0”“SDK命令提示”运行SDK命令窗口,在窗口中输入ILDASM即可运行这个程序),如图1-16所示。图1-15 root文件夹下的文件图1-16 利用ILDASM查看生成的DLL文件的效果从图1-16中可以看见这个DLL文件中包含有ASP.test_aspx类,并且这个类是继承自System.Web.UI.Page类的。其实在我们第一次向IIS请求ASP.NET网页时,相应的网页就会被编译成DLL文件,然后JIT来运行这个DLL文件,并将运行结果发送给客户端。一旦这个文件再次编辑这个ASP.NET页面后,下次再请求这个网页时又会重新被编译成DLL文件,再由JIT来运行。为了防止发生生成的文件重名的情况,生成的DLL文件采用了随机命名。当向服务器发送一个ASP.NET网页的请求时,在内部执行的流程如下:① 检查在服务器内存中是否存在这个网页对应的本地机器代码。② 如果存在,则执行本地机器代码,将运行结果发送到客户端。③ 如果不存在本地机器代码,则检查是否存在这个网页编译后的中间代码(以 DLL 的形式存在),如果存在,则将中间代码编译成本地机器代码,再执行本地机器代码将结果返回给客户端,并将本地机器代码缓存到内存中。④ 如果不存在对应的中间代码,则将这个网页编译成中间代码,然后将中间代码编译成本地机器代码,将本地机器代码的执行结果发送给客户端,再将本地机器代码缓存到内存中。如图1-17所示的是ASP.NET运行时流程图。图1-17 ASP.NET运行时流程图从图 1-17 中可以看出,如果在服务器没有清理掉内存中缓存的本地机器代码而再次访问同一个页面时,服务器就会直接执行缓存中的本地机器代码,本地机器代码的运行速度是相当快的。即使本地机器代码在内存中由于某些原因被清理掉了(比如服务器重启或者服务器内存不够用时被释放),也仅仅是将中间代码编译成本地机器代码,再次运行本地机器代码将运行结果发送给客户端,然后缓存本地机器代码即可,将中间代码编译成本地机器代码的速度也是很快的。这也就是ASP.NET网页不同于ASP或者PHP网页的地方:ASP.NET页面在第一次请求时会被编译成DLL文件,再由JIT编译成本地机器代码执行,并且将本地机器代码缓存,如果在缓存没有清空之前再次调用,则会直接执行缓存中的机器代码,即使内存中缓存的机器代码被清空也会再次将中间代码编译成本地机器代码运行并缓存;而ASP和PHP网页每次运行时都会被解释成本地机器代码再运行,所以ASP.NET网站的总体运行速度要比ASP和PHP快。不过,aspx页面第一次被打开时比较慢,因为存在着先生成中间代码再编译成本地机器代码执行的过程;以后执行时就会比较快了。因为以后执行时要么是直接运行本地机器代码,要么是将中间代码编译成本地机器代码再运行,除非修改了代码;否则就没有必要重新生成中间代码了,并且对于第一次运行时比较慢的情况也可以通过预编译来解决。1.6 结论本章主要介绍了网页的相关知识、IIS 的安装和配置,以及 ASP.NET 的相关知识,这些知识对于理解ASP.NET和部署ASP.NET应用程序是极其有用的,希望读者朋友好好理解和掌握。02ASP.NET基础本章主要讲述ASP.NET中常用的一些基础知识,比如,保存控件状态的ViewState和用户保存用户会话状态数据的对象,以及在处理客户端请求和响应客户端请求的对象等,这些知识都是学习ASP.NET的基础知识,只有好好掌握了这些基础知识才能够在今后的开发中灵活运用这些对象。本章主要介绍的知识点如下:● Request对象● Response对象● Server对象● Session对象● Cookie对象● Application对象● ViewState对象● 表达式● 表达式● 目录运算符在JSP里把request、response等当作JSP的内置对象,但是在ASP.NET中并没有内置对象这一说,不过在ASP.NET中有很多与JSP的内置对象相对应的对象。上面提到的很多都是在做ASP.NET开发时无须new 就能使用的对象,在 ASP.NET 中类似的对象还有很多。在 ASP.NET 中所有的网页都是派生自System.Web.UI.Page这个类,上面提到的大多是Page类的属性。在Web中处于中心的是Web服务器,用来处理客户端的HTTP请求。由于HTTP是一种无状态的连接协议,也就是它并不记得上一次谁请求过它,不会主动去询问客户端,只有当客户端主动请求之后,服务器才会响应。一个客户端请求是使用Request对象来表示的,而服务器响应会以Response对象来表示。2.1 Request对象Request封装了客户端请求信息,它是HttpRequest类的实例。Request对象的常用属性如表2-1所示。表2-1 Request对象的常用属性

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载