ASP.NET开发简明手册

asp.net

asp.net作为visual studio.net的一个组成部分,是从asp发展过来的,但并不是asp的简单升级,而是microsoft推出的新一代active server pages。

asp.net是微软的.net框架的重要组成部分,它使用vb.net、c#和jscript.net程序设计语言来实现动态网页编程,这使得它的编程非常灵活和高效。同时asp.net是基于组件技术和面向对象的开发系统,程序员可以使用系统的丰富组件,如文件上传、e-mail发送、文件操作、广告组件等。不但如此,程序员还可以开发自己的组件,扩展asp.net的功能。

asp.net直接支持组件和code-behind技术,可以更好地实现程序代码和html代码的分离。asp.net采用了新的叫做ado.net的数据库访问技术,可以大大地提高数据访问的效率,也可以很容易地开发数据库应用系统。

一、asp.net的运行、开发环境
1.asp.net的运行环境

(1)硬件要求

cpu: intel pentium ii 300 mhz (最好intel pentium iii 600 mhz)

内存: 96 mb (最好128 mb)

磁盘空间: 250 mb(完全安装) 155 mb(快速安装)

显示: 800×600, 256色

cd-rom:倍速光驱

(2)软件要求

windows 2000 professional、windows 2000 server、windows 2000 advanced server、ie 5.5、ngws。

asp.net目前能支持c#、vb、jscrip等三种语言。

二、asp.net的安装
1.安装asp.net

可以从这里下载asp.net的安装程序:http://download.microsoft.com/download/platformsdk/trial/1812.10full/nt5/en-us/setup.exe。asp.net的安装过程很简单,只需按照简单提示安装即可完成。但是,如果你的计算机安装了office 2000,建议安装asp.net之前先备份\microsoft office\office\mso9.dll文件,因为安装完asp.net后,office会提示你注册,否则的话office 2000会出现使用50次的限制。此时将备份的mso9.dll文件覆盖掉原来的文件即可。

2.ngws

asp.net实际上是一个崭新的运行结构的一部分,这个结构提供对所有windows应用程序的支持。这个结构是microsoft's next generation web services (ngws)关键部分。当你安装了这个结构,你也就同时获得了asp.net。这个结构同样支持所有其他服务器程序技术。

ngws 结构通过对可升级分布式应用添加(新的和增强的服务)来扩展com的结构,此种结构常用做编写可重复调用的可共同使用的软件组件,这些新的和增强的服务有:

一套统一的丰富的程序库; 一个支持多语言的运行引擎;简单地应用建立、调试以及维护;对分布式应用加强了可升级性;保护现已存在的软件和投资。

三、asp.net概念解析
1.web form

表单,英文单词是form。在.net架构里,form是一个经常使用到的词汇。web form代表了一个一个的web页面。总的看来,form就像是一个容纳各种控件的容器,各种控件都必须直接或者间接地与它发生依存关系。“表单”这个词,在web程序员看来,总是和html里面的“form”相混淆。“web表单”似乎翻译成“web页面”更加妥当一些。

大家还记得vb里面的form实际上就是一个对象吧,它可以有自己的属性、方法、事件等等。web表单,或者说web页面,实际上是一个“对象” (object)。.net架构里面一个比较重要的概念就是“对象”,所有的控件都是对象,甚至数据类型都成了对象;每种数据类型都有自己特有的属性和方法。我们在后面的编程中将体会到。

web form的后缀名是aspx。当一个浏览器第一次请求一个aspx文件时,web form页面将被clr(common language runtime)编译器编译。此后,当再有用户访问此页面时,由于aspx页面已经被编译过,所以,clr会直接执行编译过的代码,这和asp的情况完全不同。asp只支持vbscript和javascript这样的解释性的脚本语言。所以asp页面是解释执行的。当用户发出请求后,无论是第一次,还是第一千次,asp的页面都将被动态解释执行。而asp.net支持可编译的语言,包括vb.net、c#、jscript.net等。所以,asp.net是一次编译多次执行。

为了简化程序员的工作,aspx页面不需要手工编译,而是在页面被调用的时候,由clr自行决定是否编译。一般来说,下面两种情况下,aspx会被重新编译:

(1)aspx页面第一次被浏览器请求;

(2)aspx被改写。

由于aspx页面可以被编译,所以aspx页面具有组件一样的性能。这就使得aspx页面至少比同样功能的asp页面快250%!

网络表单把基于vb表单的高效率的优点带到了网络应用程序的开发中来。网络表单支持传统的将html内容与脚本代码混合的asp语法,但是它提出了一种将应用程序代码和用户接口内容分离的更加结构化的方法。引入的网络表单控件用于为封装通用用户接口元素提供了一种机制。这些新的特点使得开发工具在支持vb应用程序的同时,也支持设计时模块,使得wysiwyg(所见即所得)工具支持网页布局。

网络表单控件负责生成用户接口,典型情况是在html表单中。asp.net提供了一套映射传统的html用户接口小部件(包括列表框,文本框和按钮)的网络表单控件和一套附加的更加复杂的网络控件(如日历和广告板)。这些控件的一个重要特点是,它们可以被编写以适应客户端的能力;同一网页把大范围的客户端平台和表单因素作为目标。换句话说,网络表单控件能“探测”到正在查找表单的客户,然后返回合适的可能是适合低级浏览器的html 3.2或是适于ie 5.0的动态html。

考虑到网络是一种无状态的联接模型,网络应用程序开发人员所面临的一个很复杂的问题是,他们要对用户与基于网络接口的交互作用作出反应。网络利用asp.net的体系架构提供了一套丰富的服务,以帮助开发人员建立交互式网页。这些服务的作用是使基于组件的、事件驱动的可编程模块,对开发人员来说,非常象客户端的表单程序设计。用户与网页交互作用的状态管理的复杂性被asp.net网络表单和网络表单控件隐藏起来了。对开发人员来说,提供的丰富数据绑定服务使得显示通过数据访问服务得到的数据变得非常容易。

代码与内容的分离使asp.net网页能动态地编译到受控类中,用以提高性能。每个引入的http请求都被传递到一个新的网页实例,因此开发人员不需要关心代码中的线程安全性。

2.namespace(名字空间)

对象一直是windows开发环境中,程序开发的中心。不论在vb、vba、vc++、vbscript等都是如此,不同的开发环境有不同的对象,这些对象均是各个语法所提供“资源”,程序开发人员可以利用这些资源,来编写所需的系统。

在过去的asp中,仅有server、request、response……等七个对象。而在asp.net的对象库中却分得很细。

例如在asp.net网页中要通过sql语句获得数据库中的数据,必须使用“system.data.sql”,这是namespace(名字空间)名称。在system.data.sql下,又有很多类(class)。每个类可视为一个对象,因为类下有属性、方法和事件等

所以,最上层的namespace看作是同类型对象的集合,一个namespace之下可拥有多个类。它们之间的关系如图: (图)

3.文件类型

asp 的文件类型只有一种,其扩展名是.asp文件。但在asp.net有很多的文件类型:

(图)

四、asp.net的控件应用
asp.net提供四种类型的控件,即服务器端控件、验证控件、html控件和自定义控件,充分利用这些控件提供的功能,可以加快完成任务的速度。

1. 服务器端控件

在asp.net中,一切都是对象,web页面本身也是一个对象。或者说,web页面就是一个对象的容器。服务器端控件,英文是server control,就是放在这个容器里面。

什么是control?简单地说,control就是一个可重用的组件或者对象,这个组件不但有自己的外观,还有自己的数据和方法,大部分组件还可以响应事件。通过微软的集成开发环境(visual studio.net),你可以简单地把一个control拖放到一个form中。

那为什么叫“server control”?这是因为这些control是在服务器端存在的。服务器端控件也有自己的外观,在客户端浏览器中,server control的外观由html代码来表现。server control会在初始化时,根据客户的浏览器版本,自动生成适合浏览器的html代码。主要的服务器端控件及其用途如下表所示:

(图)

例1:服务器控件

id="txtlogin"

text="文字编辑"

font_face="arial" font_size="3"

backcolor="lightblue"

textmode="multiline"

heigth=10

ontextchanged="txtlogin_changed()"

/>

text="checkbox 1"

autopostback="true"

/>

repeatlayout="flow"

>

item 1

item 2

item 3

item 4

item 5

item 6

2. 验证控件

这是用以验证web页面中用户输入信息是否有效的非常重要的一种方法。在asp.net的web from框架中提供了一套验证控件,它们提供了强大易用的方式来检查错误,如果需要的话可以显示提示信息给用户。这些控件可以分为如下表所述的几种类型:(图)

例2:验证控件

controltovalidate="txtlastname"

errormessage="last name is a required field"

forecolor="red">

forecolor="red"

controltovalidate="txtdeparturedate"

controltocompare="txtarrivaldate"

type="datetime"

operator="greaterthanequal"

errormessage="departure date cannot be earlier than arrival date.">

forecolor="red"

controltovalidate="txtage"

valuetocompare=0

type="integer"

operator="greaterthanequal"

errormessage="please enter a whole number zero or greater.">

controltovalidate="text1"

errormessage="you must enter at least 8 characters!"

clientvalidationfunction="validatelength(o, v)" >

zip:

id=txtzip_validation runat="server"

controltovalidate="txtzip"

errormessage="enter a valid us zip code."

validationexpression="[0-9]{6,6}">

3. html服务器控件

html控件在服务器端是可见的,所以我们可以根据它来按照我们的意愿编写。html控件表现为一些可见的控件。

html服务器控件直接对应到html元素,每一个html服务器控件都支持通用控件的属性和方法,它们都可以绑定到数据源上。

(图)

例3:html控件示例:

自定义页面控件

当然我们也可以生成更复杂的自定义控件,在这里就不多说了,有兴趣请参考asp.net的帮助文件用c#、vb.net等来编写功能强大的控件,一般来说,这些控件可以编译成为.dll文件,以供随时使用。

五、 数据库操作
asp.net中主要通过ado.net和dataset来完成对数据库的操作。ado.net和asp中的ado相对应,它是ado的改进版本。dataset是ado.net的中心概念。你可以把dataset想象成内存中的数据库。正是由于dataset,才使得程序员在编程序时可以屏蔽数据库之间的差异,从而获得一致的编程模型。dataset支持多表、表间关系、数据约束等。这些和关系数据库的模型基本一致。过去,数据处理主要依赖于两层结构,并且是基于连接的。连接断开,数据就不能再存取。现在,数据处理被延伸到三层以上的结构,相应地,程序员需要切换到无连接的应用模型。这样,datasetcommand就在ado.net中扮演了极其重要的角色。它可以取回一个dataset,并维护一个数据源和dataset之间的“桥”,以便于数据的访问、修改和保存。datasetcommand自动将数据的各种操作变换到数据源相关的合适的sql语句。

ado.net访问数据库的步骤是:

(1)创建一个数据库链接;

(2)请求一个记录集合;

(3)将记录集合暂存到dataset;

(4)如果需要,返回第2步;(dataset可容纳多个数据集合)

(5)关闭数据库链接;

(6)在dataset上作所需要的操作。

dataset在内部是用xml来描述数据的。由于xml是一种与平台无关、语言无关的数据描述语言,而且可以描述复杂数据关系的数据,比如父子关系的数据,所以dataset实际上可以容纳具有复杂关系的数据,而且不再依赖于数据库链接。

我们以一个非常简短的例子来说明数据库的连接、检索,更多的操作如增加、删除、修改等请参考asp.net文档。

例:数据库连接、检索
asp.net的功能还有很多,这里介绍的只是它的一些基础功能,高级一些的功能如web应用程序、web service、性能优化、xml集成、三层结构和消息队列msmq等需要你去参考相应的专业书籍以作全面了解、掌握。

时间: 2024-10-28 11:14:22

ASP.NET开发简明手册的相关文章

ASP.NET开发中关于Web标准的几点建议

摘要:NET开发新手总会遇到一些ASP.NET开发过程中与Web标准之间的冲突问题,这里向您提供几个建议,使ASP.NET开发过更加符合Web标准. Visual Studio.NET从2003到现在的2008,一路走来慢慢强大--从以前的vs2003能自动改乱你的html代码到现在在vs2008中都能直接对html代码进行w3c标准验证并提示了,非常不易. 论坛中也经常有从事.NET开发的新手朋友问一些ASP.NET开发过程中与Web标准之间的冲突问题,其实说到底就是客户端代码生成的问题.更高

使用ASP.NET开发邮件发送系统

asp.net|发邮件 如今,随着Internet的迅速发展,许多企业都纷纷架构起自己的网站,用来开展企业的电子商务活动,如发布.管理企业自己的供求信息:发展和管理企业的会员等.除了这些以外,还有一点是十分重要的,就是向所有企业注册会员发送电子邮件,及时通知用户企业的最新消息. Microsoft公司推出Visual Studio.NET已有一段时间了,一些以前使用ASP开发WEB应用程序的网友,现在也慢慢地有ASP转向ASP.NET平台.为了能够帮助一些想使用ASP.NET开发邮件发送系统的网

在Dreamweaver中构建ASP.net开发环境

asp.net|dreamweaver 在开发网站,特别是开发网络数据库之前,首先应该认真构建好 Dreamweaver MX 2004+ASP.NET 开发环境.本例将向读者介绍如何在 Windows XP 操作系统下构建开发环境. 操作步骤 ( 1 )单击[开始]→[控制面板]. ( 2 )在弹出的[控制面板]窗口中双击[添加或删除程序]按钮图标,在弹出的[添加或删除程序]对话框中选择安装 IIS 服务器. ( 3 )安装好 IIS 服务器后,在[控制面板]窗口中单击管理工具,然后在弹出的[

利用ASP技术开发基于WWW的数据库检索程序

程序|数据|数据库  ASP是微软公司推出的用以取代CGI的新技术,是目前公认的建立Windows NT动态站点最好的工具.它与ADO(Active Data Object,一种新的数据访问模型)的充分结合,提供了强大的数据库访问功能,使之成为进行网上数据库管理的重要手段.     一.ASP简介   ASP内含于Internet Information Server(简称IIS3.0)中,扩展名以.asp表示.ASP文件可以用常规的文本编辑器编辑,也可以利用专门的辅助开发工具InterDev进

用ASP.NET开发Web服务的五则技巧

asp.net|web|web服务|技巧 一.禁用HTTP POST/GET协议 除非另外指定,否则,.NET将试图把Web服务绑定到三种协议:HTTP/POST.HTTP/GET和SOAP.之所以说"试图",是因为依赖于服务的参数和返回类型,HTTP/GET协议可能不可用..NET生成的WSDL文件将自动包含绑定这三种协议的指令,客户程序可以自由选择使用哪种协议与服务通信. 只要在Web.config文件中加入下列内容,就可以方便地删除对HTTP/POST和HTTP/GET协议的绑定

令你心动的Asp.net 开发中的MessageBox控件

asp.net|控件 令你心动的Asp.net 开发中的MessageBox控件 相信使用ASP.NET做Web开发的程序员们,都会怀念使用MessageBox.Show( "" )的信息提示方式吧.只可惜在ASPX中并不支持此类功能函数,至多也就是在脚本中使用alert( " " )来达到目的.要是想在服务器端的代码中来控制客户端信息提示窗体的显示,就不能直接进行控制了.以下就是我所设计开发的一个用于在服务器端来控制客户端信息提示窗体显示的Web自定义控件,很好用

ASP.NET开发员工业绩评测中心

asp.net 摘要:本文介绍使用Asp.net开发一个软件公司内部员工业绩评测系统,包括后台所有员工信息管理,部门信息管理,所有部门评测细则信息管理:前台员工每月自我评测和主管对员工的评测.重点介绍数据库设计,以及重要Web服务端和页面控件的使用.笔者相信本文会对读者的数据库设计和使用Asp.net开发页面技术有很好的启发和帮助. 一. 系统体系结构 Visual Studio .NET 是微软公司迄今为止推出的最强大的,完整的开发工具,用于生成 Asp Web 应用程序.XML Web se

asp.net开发微信公众平台之获取用户消息并处理

  这篇文章主要介绍了asp.net开发微信公众平台之获取用户消息并处理的相关资料,需要的朋友可以参考下 获取用户消息 用户发送的消息是在微信服务器发送的一个HTTP POST请求中包含的,获取用户发送的消息要从POST请求的数据流中获取 微信服务器推送消息到服务器的HTTP请求报文示例 POST /cgi-bin/wxpush? msg_signature=477715d11cdb4164915debcba66cb864d751f3e6×tamp=1409659813&nonce=137262

asp.net开发微信公众平台之验证消息的真实性

  这篇文章主要介绍了asp.net开发微信公众平台之验证消息的真实性的相关资料,需要的朋友可以参考下 验证消息的真实性 在MVC Controller所在项目中添加过滤器,在过滤器中重写 public override void OnActionExecuting(ActionExecutingContext filterContext)方法 新建数据模型 注:服务器接收消息时,不再是signature而是msg_signature 微信服务器推送消息到服务器的HTTP请求报文示例 POST