版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
•PAGE14•ASP.NET动态网站开发教程•PAGE15•第1章ASP.NET基础知识第1章ASP.NET基础知识ASP.NET是Microsoft公司推出的用于编写动态网页的一项功能强大的新技术,是Microsoft公司的动态服务器页面(ASP)和.NET技术的集合。它与以前的网页开发技术相比有了很大的进步,本章将从网页的基础知识说起,使读者对ASP.NET技术有一个基本认识。1.1什么是ASP.NET1.1.1什么是静态网页当今社会是一个网络的社会,相信读者都浏览过各式各样的网页。在这些网页中,包含有静态网页和动态网页。那什么是静态网页呢?一般来说,静态网页就是在用户访问网页之前,其内容已经由网页的作者完全确定了。这些网页是由一些HTML代码组成的,可以直接通过文本编辑器编写,并保存为.htm或.html格式的文件。对于任何用户来说,静态网页的内容(包括文本、图像、超链接等)和外观总是相同的,并不随着用户、访问时间、如何访问等其他因素的改变而改变。下面给出了一个静态网页的例子,已经编辑好的HTML代码为:<html><head><title>WelcomeToMyWebsite</title></head><body><h1>欢迎来到我的家</h1>这里有你需要的各种<ahref="xinxiliebiao.htm">信息</a><br><br>如果你没有找到你所需要的东西,那么请你<ahref="mailto:webmaster@">联系我</a></body></html>无论哪一个用户在何时访问该网页,都会看到如图1-1所示的网页形式。只要其源代码不变,网页的样子始终不会改变。图1-1静态网页示例1.1.2什么是动态网页这里所说的动态网页并不是指在网页上由于放入了一些如Flash动画等元素,而使网页有比较活泼的内容的网页。“动态”的“动”指的是“交互性”,通俗的说就是网页能不能根据访问者或访问时间的不同而显示出不同的内容。图1-2动态网页界面当用户在“请输入你的名字”文本框中输入一个名字如“赵云”,并单击“提交”按钮之后,将出现如图1-3所示的界面。动态网页可分为客户端动态网页和服务器端动态网页两类,下面简要介绍一下它们各自的工作原理。图1-3提交信息后的界面1.客户端动态网页在客户端模型中,附加到浏览器上的模块(插件)完成创建动态网页的全部工作。HTML代码通常随含有一套指令的文件传送到浏览器,此文件在HTML页中引用,还有一种情况是这些指令与HTML代码混合在一起,当遇到用户请求时,浏览器利用这些指令生成纯HTML。也就是说,用户看到的网页是根据用户的请求动态生成的,然后返回到浏览器上。客户端技术在近年来越来越不受欢迎,因为使用该技术需要下载客户端软件,而且当需要下载其他单独的指令文件时,时间较长。另外,因为每一种浏览器都以不同的方式解释指令,所以不能保证InternetExplorer能理解指令,其他的浏览器如NetscapeNavigator或者Opera也能够理解它们。客户端技术的另外一个缺点是当编写使用服务器资源的客户端代码时会出现问题,因为代码是在客户端被解释的,客户端脚本的所有代码将会完全公开,这不是我们希望的。2.服务器端动态网页在服务器端模型中,HTML源代码与混合在其中的一套指令被传回到Web服务器。当用户请求该页时,这些指令在服务器上被处理,然后再返回浏览器。与客户端模型相比,只有描述最终页的HTML代码才被传到浏览器,并可以保证大多数的浏览器能够显示该页。ASP.NET就属于服务器端模型。1.1.3提供动态网页的技术根据上一节所介绍的内容,本节将介绍一下能够提供动态网页的各种技术,让读者对它们有一个大概的了解。1.能提供动态网页的客户端技术提供动态网页的各项技术都依赖于内置在浏览器中的模块(插件)来处理指令。这里的客户端技术包括脚本语言、各种控件以及各种编程语言。(1)JavaScriptJavaScript是最早的浏览器脚本语言。它用于创建小而高效的应用程序。这些应用程序可以完成重复性的任务,而且还能处理由用户生成的事件。Microsoft公司从InternetExplorer3.0开始推出了它的JavaScript版本,叫做JScript,到目前的IE版本一直支持它。(2)VBScriptVBScript是Microsoft公司从InternetExplorer3.0版本开始推出的脚本语言,它基于VisualBasic语言,在功能上与JavaScript没有太大的区别,但是VBScript的最大不足之处在于只有Microsoft自己的浏览器支持它。现在,Microsoft公司已经在.NETFramework中用VB.NET取代了VBScript。VBScript是Microsoft公司将放弃的一种脚本语言。(3)ActiveX控件ActiveX控件是用诸如C++或VisualBasic这样的语言编写的一个自包含程序(或组件),将ActiveX控件添加到网页的时候,可以提供许多特殊的客户端功能,如条形图、计时器、客户身份验证、数据库存取等。由于ActiveX控件能够处理用户机器上的文件或Windows注册表,所以ActiveX控件被认为是不安全的,它甚至不能通过防火墙。因此,ActiveX控件应用的比较少。2.提供动态网页的服务器端技术每一个提供动态网页的服务器端技术都依赖于添加到Web服务器的模块附件。因此,只有HTML和客户端脚本才由Web服务器传递到浏览器。也就是说,不会将服务器端的代码传送到浏览器。(1)CGICGI即公共网关接口(CommonGatewayInterface),它是添加到Web服务器的模块,它的历史要比ASP长,现在大量以动态方式创建的网页都是通过CGI和一个脚本语言创建的。CGI允许用户调用Web服务器上的另一个程序(如Perl脚本)来创建动态网页,CGI的作用是将用户提供的数据传递给该程序进行处理。(2)ASPASP即动态服务器页面(ActiveServerPages)。它通常依赖于JavaScript或VBScript脚本语言来创建动态网页。它的缺陷在于它的性能低下,仅局限于使用脚本语言,不能实现功能完善的语言所作的一些工作。在ASP.NET中,我们可以看到已经用功能完善的语言替代了脚本语言,这将在以后的章节中详细介绍。(3)JSPJSP指JavaServer页面,是允许用户将标记(HTML或XML)与Java代码相组合而动态生成Web页的一项技术。与只有IIS支持的ASP相比,它有若干Web服务器支持,而且允许用户在IIS4.0/5.x中使用JSP插件。它的优点之一是代码能在不同的服务器之间兼容。它的功能强大,运行速度比ASP快,而且Java程序员很容易掌握它。(4)PHPPHP起源于个人主页(PersonalHomePages),不过现在的PHP指的是PHP超文本预处理程序(HyperTextPerprocessor),它是用于创建动态网页的另外一种脚本语言。PHP是开放源代码和跨平台的,并且可以在WindowsNT和许多Unix版本上运行,而且可以构造成Apache模块和二进制模块。(5)ASP.NETASP.NET也依赖于附加到Web服务器上的模块。然而,ASP.NET模块(名为spnet_isapi.dll的物理文件)本身并不处理所有的工作,它将一些工作传递到.NETFramework中处理。1.1.4ASP.NET与ASP的主要区别ASP.NET也是编译执行的Web服务器端技术,它预先编译成为一个类文件,当用户访问ASP.NET文件的时候,直接执行类文件而不是源文件,在编译前可能将ASP.NET源文件翻译成一个C#或VB的源代码文件。ASP.NET是继Microsoft公司的ASP3.0之后推出的一种全新的动态网站设计技术与程序框架。它不再是ASP的一个升级版本了,它为动态网站设计带来了全新的技术和概念,并且它带给网站开发人员的是性能的提升和开发效率的提高。它与ASP的最大区别在于编程思想上的转变。ASP使用VBScript或JavaScript这样的脚本语言混合HTML来编程,而脚本语言有它的弱点,即它是属于弱类型、面向结构的编程语言,而不是面向对象的。所以使用ASP容易产生代码逻辑混乱、代码的可重用性差、由于弱类型的脚本语言带来的潜在出错几率大等问题。而ASP.NET摆脱了ASP使用脚本语言编程带来的这些问题,在理论上ASP.NET可以使用任何一种编程语言,包括C++、VisualBasic和JavaScript等,而且Microsoft公司专门为ASP.NET推出了C#编程语言。所以,ASP.NET与以前的动态网页开发技术相比,其优点体现在以下几个方面:性能更强大:ASP.NET是运行在服务器端的通用语言运行环境,它会通过即时编译来提高性能。并使用了提前绑定、JIT(Just-In-Time)编译、本地优化、缓存(Cache)等一系列技术来达到提高运行效率的目的。强大的开发工具支持:虽然只要服务器操作和服务器软件支持,就可以运行脚本,而且开发ASP.NET的页面或者应用程序也不需要专门的开发工具,但是ASP.NET与VisualStudio.NET良好的集成可以使开发工作更加快速高效。强大的语言支持:ASP.NET可以使用多种语言进行开发。简易性:ASP.NET使常用的网络开发变得相当方便,从简单的提交窗口和客户端验证制作到设置和整个网站的发布,都可以轻松地完成。可管理性:ASP.NET的管理是基于“无本地管理”思想的,使用纯文本的设置方式,只要设置相应的文本文件就可以完成一系列的站点设置。同时,如果需要发布网站,不必在服务器上使用一些特殊的软件进行设置,只要简单地将制作好的文件复制到服务器上即可。安全可靠性:ASP.NET基于Windows验证机制,它是为每一个应用程序进行配置的方法,所以可以确保用户的应用程序是安全的。当然,ASP.NET在其他方面还有一些功能上的进步,在此不再一一赘述。1.1.5ASP.NET与VB.NET之间的关系ASP.NET与VB.NET之间的关系,可以作如下概述。ASP.NET:用于创建动态网页的服务器端技术,它允许用户使用.NET支持的任何一种编程语言。VB.NET:用于在ASP.NET中编写代码的一种编程语言。本书中的大部分代码都是由VB.NET编写的。1.1.6C#语言概述由于C#是专门为ASP.NET推出的一门语言,在此有必要对C#语言作一下概述。1.什么是C#C#(读作‘csharp’)是由Microsoft公司设计的一种程序设计语言。C#的语法大致是基于C/C++的,并且与Java有着惊人的相似。Microsoft对C#的描述如下:“C#是一种简单、现代化、面向对象并且类型安全的程序设计语言,它从C和C++衍生而来。C#紧密地植根于C和C++的基础之上,因此C和C++程序员可以很快熟悉它。C#的设计意图是要将VisualBasic的高生产率和C++直接访问机器的强大能力结合起来。”2.C#能取代Java吗C#与Java非常相似——在与C++的比较中,这两种语言表现出了类似的优势和不足。例如,这两种语言都有垃圾收集功能,但都没有模板。Microsoft已经停止了VisualJ++的生产,因此很难不把C#看成是Microsoft制造的Java替代品。3.C#可以取代C++吗显然不能,但是我们又很难说C++是新的.NET平台上编写代码的最佳选择。为了使.NET的运行层能完全发挥作用,它要求编程语言遵循某些特定的规则——其中之一就是所有的语言类型必须遵守通用类型系统(CommonTypeSystem,CTS)。不幸的是,许多C++特性不能被CTS支持。例如,模板和类的多重继承。Microsoft对这个问题的答案是给C++提供托管扩展(ManagedExtensions,ME),这可以使C++遵守CTS。通过添加新的关键字来标记C++类有CTS的属性(例如-gc表示垃圾回收)。但是在创建新的工程时很难讲为什么MEC++会比C#更合适。就特性而言它们很相似,但与C++不同的是,C#从一开始就是以.NET为环境设计的。MEC++存在的理由好像是将C++代码移植(port)为.NET环境下的代码。因此,这个问题的答案,很可能是C++作为一个.NET环境之外的语言将依然保留它的重要性;而通过ME将现存的C++代码移植为适合.NET环境;但是C#很可能是C++开发者开发新的.NET应用程序的最好选择。4.一个简单的C#程序classCApplication{publicstaticvoidMain(){System.Console.Write("Hello,new.NETworld.");}}(注意:这里不能将Main()作为全局函数——C#没有全局函数)5.C#是面向对象的C#像Java和C++一样,是一种面向对象的语言。6.C#没有自己的类库就像所有的.NET语言(VB.NET、JScript.Net等)一样,使用C#可以访问.NET类库,而C#没有自己的类库。7.C#的标准类型C#支持的基本类型和C++很相似,包括int、long、float、double、char、string、arrays、structs和classes等。然而,不要假设太多,名字可能很形似,但是一些细节不相同。例如C#中的long数值是64位的,而C++的long取决于平台,32位平台上是32位的,64位的平台上是64位的。class和struct在C++中几乎完全一样,但在C#中并不是这样的。8.是否所有的C#类型都派生于一个公共的基类所有的对象都可以看作是从Object(System.Object)派生而来。但是为了把像int、float这样的值类型实例看作是从Object对象派生的,这个实例必须通过一个装箱(boxing)的操作转化为引用类型。理论上,开发者可以忽略这些底层的转化,但是认识到这点对于系统性能影响很重要。9.C#使用引用替代指针,那么C#的引用和C++的引用一样吗并不完全一样。它们的基本思想是一样的,但是有一个明显的差异:C#的引用可以为null。因此,你不能期望C#的引用始终指向合法的对象。如果尝试使用一个为null的引用,系统就会抛出一个NullReferenceException异常。例如,请看下列方法:voiddisplayStringLength(strings){Console.WriteLine("Stringislength{0}",s.Length);} 如果这样调用它,将产生一个NullReferenceException异常:strings=null;displayStringLength(s);当然,在某些情况下,你可能会认为NullReferenceException是一个完全可以接受的调用结果。但是在这里,最好将这个方法改写为下面这样:voiddisplayStringLength(strings){if(s==null) Console.WriteLine("Stringisnull");else Console.WriteLine("Stringislength{0}",s.Length);} 1.2安装ASP.NET1.2.1安装所需环境在操作系统方面,ASP.NET只能在带有IIS4.0的WindowsNT4.0(或更新版本)上运行,但是Windows2000Server(带IIS5.0)无疑是最合适的操作平台。在数据库方面还应该有SQLServer7.0以上的版本(最好是SQLServer2000或者Access2000),这两者都是Microsoft提供的进行数据库开发的软件,所不同的是SQLServer2000面向的是企业级的大型数据库开发,而Access2000则主要面向桌面数据库。由于ASP的各种版本都是作为IIS的一个组件由相应的操作系统服务包(ServerPack)提供,安装了服务包自然也就安装了ASP的操作平台,不需要对ASP操作平台进行专门的安装。但是,由于目前使用的Windows操作系统版本是Windows2000系列,相应的IIS5.0附带的是ASP3.0版本,所以需要在操在安装.NETFrameworkSDK之前,还应该将IE升级到5.5或更高的版本。推荐的软件配置如下:Windows2000Server+SQLServer2000+IE6.0+.NETFrameworkSDK1.2.2安装IIS5.xWeb服务器安装Web服务器是在安装ASP.NET之前必须要做的事情,但是如果已经安装了IIS5.x,或者已经安装了Windows2000Servr操作系统,那么尽可跳过本节内容。在安装的过程中,Windows2000Professional和WindowsXPProfessional的区别不是很大,这里将放在一起介绍。安装过程如下:(1)打开控制面板(选择“开始”|“设置”|“控制面板”),单击“添加/删除程序”图标,将打开如图1-4所示的界面,显示出目前安装的程序。图1-4选择“添加/删除程序”后的界面(2)在对话框的左侧选中“添加/删除Windows组件”图标,将出现如图1-5所示的“Windows组件向导”对话框。(3)在该对话框中找到“Internet信息服务(IIS)”选项,选中左侧的复选框,如图1-5所示。图1-5“Windows组件向导”对话框(4)单击“下一步”按钮,将会加载IIS5.x。加载过程可能需要几分钟的时间。(5)单击“详细信息”按钮将会出现如图1-6所示的对话框。这里的一些选项是用来安装某些功能的,建议全部选中。图1-6单击“详细信息”后出现的窗口(6)还需要安装一个组件,即“脚本调试器”,如图1-7所示。选中该选项对应的复选框之后,单击“下一步”就可以了。图1-7安装“脚本调试器”1.2.3创建虚拟目录要查看自己开发的网页,必须在IIS上建立一个虚拟目录,本机的虚拟目录起名为myasp。这里介绍一下如何在Windows2000Server操作系统中创建虚拟目录。(1)选择“开始”|“程序”|“管理工具”|“Internet服务管理器”,将打开“Internet信息服务”窗口,如图1-8所示。图1-8“Internet信息服务”窗口(2)右击“默认Web站点”,在打开的快捷菜单中选择“新建”|“虚拟目录”命令,将会出现“虚拟目录创建向导”对话框,单击“下一步”按钮,将出现如图1-9所示的对话框,要求输入虚拟目录别名,此时输入“myasp”。图1-9输入虚拟目录别名(3)单击“下一步”按钮,这时需要在C盘上建立一个实际目录“myasp”,然后单击“浏览”按钮,选中刚刚建立的“C:\myasp”,将会出现如图1-10所示的对话框。图1-10输入包含内容的目录路径(4)然后一直单击“下一步”按钮,选用默认设置,直到最终完成虚拟目录的创建。1.2.4安装ASP.NET和.NETFrameworkSDK这里首先说一下ASP.NET和.NETFrameworkSDK的区别,.NETFrameworkSDK已经包含了ASP.NET,因此不需要同时安装这两个软件。ASP.NET是比较小的,只包含ASP.NET和.NETFramework所需要的基本框架,而不包含附加文档和示例文件。ASP.NET和.NETFrameworkSDK的安装相对来说就比较简单了,打开安装盘,采用默认设置,一路单击“下一步”按钮即可。不过有时计算机的特殊配置可能会影响软件的安装,可能出现的情况很多,但是如果不能正常安装的话,请检查是否有足够的磁盘空间,这是最常见的原因。要尽量保证安装过程不中断,因为当删除已经安装的内容时,安装程序无法保证能够删除所有的内容,而当再次安装时,就有可能出现问题,需要用户重新格式化磁盘,才能使它正常工作。1.2.5验证安装以上的步骤完成以后,检查一下看是否一切正常。读者可以打开一个ASP.NET文件,如果还没有,那么打开文本编辑器,输入如下的代码:<scriptlanguage="vb"runat="server">SubPage_Load()time.text=Hour(Now)&":"&Minute(Now)&":"&Second(Now)EndSub</script><html><head><title>TheTime</title></head><body><h1>欢迎光临</h1>现在的时间是:<asp:Labelid="time"runat="server"/></body></html>将这些代码保存在已创建的物理目录“C:\myasp\”中,取名“Time.aspx”,注意这个文件的扩展名一定要为.aspx,这样Web服务器才能识别出网页中包含ASP.NET代码。现在,打开浏览器,在地址栏中输入http://localhost/myasp/Time.aspx,得到如图1-11所示的结果。图1-11
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年土地使用权出让合同范本
- 2024年国有土地上房屋征收补偿合同
- 2024年不离婚共同生活协议
- 2024年体育赛事合同:赛事组织与推广协议
- 2024年员工劳动合同样本
- 2024年国际车展品牌展示合作合同
- 股份代持协议书法律解读
- 2024年优化版:物联网解决方案合作协议
- 供水管网施工进度管理方案
- 2024年危化品物流配送安全监管合同
- 工程项目建设程序及审批部门
- 融媒体综艺节目制作学习通超星期末考试答案章节答案2024年
- 2024年中国融通集团子公司中层管理人员社会招聘高频难、易错点500题模拟试题附带答案详解
- 七年级数学分层教学实施方案
- 人民医院卫生工作制度(管理规范10篇)
- 奖牌制作施工方案
- 第三单元测试卷(单元测试)-2024-2025学年二年级上册语文统编版
- 房屋整改方案
- 机房网络设备整体搬迁实施项目解决方案
- 军事理论(上海财经大学版)学习通超星期末考试答案章节答案2024年
- TBIA 7-2022 骨科疾病诊疗数据集-机器人辅助全膝关节置换
评论
0/150
提交评论