Web开发的贵族:ASP.NET 3.5+SQL Server 2008
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第1章 ASP.NET 3.5快速入门

1.1 初识ASP.NET 3.5和SQL Server

对于熟悉Web技术的人们来说,ASP.NET都不是陌生的名词。有人说,ASP.NET 3.5是继ASP、ASP.NET 1.x、ASP.NET 2.0之后出现的新技术,是ASP.NET的升级版,它使得动态网站的制作变得更加便捷。也有人说,ASP.NET 3.5是与ASP.NET完全不同的一个新概念。那么,ASP.NET 3.5究竟是什么呢?本章即解答此问题,并介绍ASP.NET 3.5的开发环境、开发软件等。如图1-1所示为ASP.NET网站的主页界面。该网站为微软开发的网站,主要提供介绍.NET技术方面的文章、提供相关链接等服务,并提供有偿的.NET 3.5空间服务。如图1-2所示为该网站“Get Started”界面;如图1-3所示为该网站的论坛界面。

图1-1 ASP.NET界面图

图1-2 ASP.NET的Get Started界面

图1-3 ASP.NET中的论坛界面

1.1.1 ASP.NET 3.5概述

提到ASP.NET 3.5,就不得不提起ASP与ASP.NET 1.x、ASP.NET 2.0。

1. ASP(Active Server Pages)

ASP(Active Server Pages)是Microsfot公司于1996年11月推出的Web应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不需使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站点服务器的应用程序,是一种简单、方便的编程工具。

运用ASP可将VBScript、JAVAScript等脚本语言嵌入到HTML中,可快速完成网站的应用程序,无需编译,可在服务器端直接执行。ASP文件容易编写,使用普通的文本编辑器就能编写,如记事本就可以完成。由于脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务器端上运行,用户端的浏览器不需要提供任何别的支持,这样便大大提高了用户与服务器之间的交互的速度。

但是,ASP也有一些无法克服的弱点。如在语言上,ASP代码逻辑混乱,难于管理;代码的可重用性差,有可能页面原型修改一点,整个程序都需要修改;出错几率高。功能上也存在问题,一些底层操作只能通过组件来完成,而且缺乏完善的纠错/调试功能。

2. ASP.NET

ASP.NET(又称为ASP+)是微软提出的.NET框架的一部分,是一种全新一代的以.NET框架为基础开发网上应用程序的全新模式,而不是ASP的简单升级。ASP.NET是微软开发的新体系结构.NET的一部分,是ASP和.NET技术的结合。

ASP.NET是一个编程框架,如图1-4所示,主要由以下3个部分组成。

图1-4 .NET框架示意图

公共语言运行库(Common Language Runtime,CLR)

基础类库(Base ClassLibrary)

ASP.NET、VB.NET、C#等语言运行库

(1) 公共语言运行库

公共语言运行库是.NET框架的运行环境,它负责运行和维护大家编写的任何程序代码,包括内存管理、线程执行、代码执行、代码安全验证、编译及其他系统服务等。换句话说,不管是哪种编程语言编写的应用程序,都由它负责运行。

(2) 基础类库

.NET框架面向所有的.NET程序语言提供了一个公共的基础类库,该基础类库提供了上百个面向对象的类来提供数学计算→字符串操作→数据库操作等各种功能。利用这些类,大家就可以快速搭建各种应用程序。

3. ASP.NET 2.0

ASP.NET的出现,颠覆了传统的Web开发模式。ASP.NET技术从1.0版本升级到1.1变化不是很大,然而,从ASP.NET 1.x升级到2.0,却是一个极大的飞跃。ASP.NET 2.0是.NET Framework 2.0的一个组成部分,是其主要发布内容。

在ASP.NET 1.x时代,有很多开发人员对其中的内置服务器控件提出批评。例如ASP.NET 1.x提供的控件数量太少,难以满足日益增长的开发需求,无法更快更好地开发应用程序。为了弥补ASP.NET 1.x的不足,ASP.NET 2.0新增了数十个服务器控件。根据控件功能,可以分为站点导航控件、数据控件(包括数据源控件和数据绑定控件)、登录系列控件、Web部件和其他服务器控件等。

ASP.NET 2.0预示了一轮新的开发浪潮的开始,这轮新浪潮将扫除采用编写Web应用程序的新方式的所有障碍。

4. ASP.NET 3.5

随着ASP.NET技术的发展,微软继ASP.NET 2.0之后,又推出了ASP.NET 3.5技术。ASP.NET 3.5基于.NET Framework 3.5,并集成了ASP.NET AJAX技术,增加了数据库实体类、LINQ、ListView等新技术或控件,使得开发人员更加容易地开发ASP.NET Web应用程序。

1.1.2 ASP.NET 3.5新特性

1. .NET Compact Framework

.NET Compact Framework 3.5版通过包含Windows Communication Foundation(WCF)技术扩展了对分布式移动应用程序的支持。它还添加了新的语言功能(如LINQ)和基于社区反馈的新API,并使用更新的诊断工具和功能来改进调试。

2. ASP.NET

.NET Framework 3.5改进了对支持AJAX的网站的开发支持。ASP.NET支持使用一组新的服务器控件和API进行以服务器为中心的AJAX开发。通过添加ScriptManager控件和UpdatePanel控件,可以让现有ASP.NET 2.0页面支持AJAX功能,这样更新页面时将无需整页刷新。ASP.NET还支持使用名为Microsoft AJAX Library的新客户端库进行以客户端为中心的AJAX开发。

3. 外接程序和扩展性

(1) .NET Framework 3.5中的System.AddIn.dll程序集引入了新的结构和模型,可帮助开发人员完成向应用程序添加扩展性的初始工作,并确保开发人员的扩展在宿主应用程序发生更改时仍可继续工作。

(2) I/O和管道。管道提供在同一台计算机上或网络中任意其他Windows计算机上运行的任何进程之间的进程间通信。.NET Framework提供对两种类型的管道的访问:匿名管道和命名管道。

(3) 垃圾回收。GCSettings类具有一个新的LatencyMode属性,可用来调整垃圾回收器侵入应用程序的时间。可以将此属性设置为新的[System.Runtime.GCLatencyMode]枚举值之一。GC类具有一个新的Collect(Int32, GCCollectionMode)方法重载,可用来调整强制垃圾回收的行为。例如,可以使用此重载来指定垃圾回收器确定当前时间是否为回收对象的最佳时间。此重载采用新的GCCollectionMode枚举中的值。

(4) 部分信任环境中的反射和反射发出。在部分信任下运行的程序集可以发出并执行代码。已发出的只调用公共类型和方法的代码不需要超出所访问的类型和方法要求的权限。对于反射,授予RestrictedMemberAccess的宿主同样允许受限制地使用用来访问私有属性、调用私有方法等的方法,但仅对具有等于或小于信任级别的程序集适用。

(5) 更好的读取器/编写器锁。新的ReaderWriterLockSlim类明显优于ReaderWriterLock的性能,可与lock语句相当(在Visual Basic中为SyncLock)。锁定状态之间的转换已得到简化,从而使编程更容易并减小发生死锁的几率。新类支持递归,可简化从lock和ReaderWriterLock的迁移。

(6) ThreadPool性能增强。显著提高了在托管线程池中调度工作项和I/O任务的吞吐量。调度可在托管代码中进行处理,而无需转换到非托管代码,并且具有较少的锁。

(7)时区改进。两种新的类型DateTimeOffset和TimeZoneInfo改进了对时区的支持,可以更容易地开发使用不同时区中的日期和时间的应用程序。

4. 网络

(1)对等网络。对等网络是一种无服务器网络技术,允许若干个网络设备相互之间共享资源和直接通信。System.Net.PeerToPeer命名空间提供了一组支持对等名称解析协议(PNRP)的类,此协议允许通过在对等群中注册的PeerName对象发现其他的对等节点。PNRP可以将对等名称解析为IPv6或IPv4地址。

(2) 使用对等网络的协作。System.Net.PeerToPeer.Collaboration命名空间提供了一组支持使用对等网络基础结构的协作的类。

套接字性能增强。Socket类得到了增强,以供使用异步网络I/O来获得最高性能的应用程序使用。一系列新类已经作为增强功能集的一部分添加到了Socket命名空间中。这些类提供了可由专用的高性能套接字应用程序使用的可选异步模式。

5. WCF和WF集成——工作流服务

.NET Framework 3.5统一了Windows Workflow Foundation(WF)和Windows Communication Foundation(WCF)框架,以便可以使用WF作为一种创作WCF服务的方式或将现有WF工作流作为服务公开。这样就可以创建具有以下特点的服务:可以保持,可以轻松地向工作流传入或传出数据,并且可以强制实施应用程序级协议。

(1) WCF Web编程模型。WCF Web编程模型使开发人员可以使用WCF来生成Web风格的服务。Web编程模型包括丰富的URI处理功能、对包括GET在内的所有HTTP谓词的支持,以及一个简单的编程模型。该编程模型可以处理各种消息格式,包括XML、JSON和不透明度二进制流。

(2) Web服务互操作性。在.NET Framework 3.5中,Microsoft遵守了有关互操作性和公共标准的承诺,引入了对新的安全、可靠和事务化Web服务标准的支持。

(3) Windows Presentation Foundation。在.NET Framework 3.5中,Windows Presentation Foundation包含多个方面的更改和改进,其中包括版本控制、应用程序模型、数据绑定、控件、文档、批注和三维UI元素。

6. Windows窗体

ClickOnce改进。这些改进包括从多个位置进行部署和第三方署名。

Mage.exe工具。更新了.NET Framework 3.5的Mage.exe工具,该工具有时与ClickOnce一起使用。

身份验证、角色和设置服务。客户端应用程序服务是.NET Framework 3.5中的新增功能,这些服务使基于Windows的应用程序(包括Windows窗体和Windows Presentation Foundation应用程序)可以方便地访问ASP.NET登录、角色和配置文件服务。通过这些服务,可以对用户进行身份验证,并且可以从共享服务器中检索用户角色和应用程序设置。

(1) WPF支持。可以使用Windows窗体来承载Windows窗体控件以及Windows Presentation Foundation(WPF)控件和内容。

(2) LINQ。语言集成查询(LINQ)将强大的查询功能扩展到C#和Visual Basic的语言语法中,并采用标准的、易于学习的查询模式。可以对此技术进行扩展以支持几乎任何类型的数据存储。.NET Framework 3.5包含LINQ提供程序程序集,这些程序集支持使用LINQ来查询.NET Framework集合、SQL Server数据库、ADO.NET数据集和XML文档。

1.1.3 ASP.NET 3.5的运行环境

这里所说的ASP.NET 3.5的运行环境,是指运行已经开发好的ASP.NET 3.5应用所需要的基本资源条件,它包括硬件资源和软件资源两个方面。因为ASP.NET软件为B/S结构系统,运行时也就分服务器端和客户端。客户端只要是普通的浏览器即可,如Internet Exploer 5.0或更高版本。而服务器端则需要达到相应的环境配置才能正常运行。

考虑到大部分人的实际情况,通常都是先在自己的计算机上编写调试好ASP.NET3.5程序后,然后再移植到专门的服务器上去的。而在编写调试的时候,自己的计算机既是服务器,又是客户端,所以必须同时安装服务器端和客户端必需的软件。

为了获得更好的系统运行性能,在介绍了ASP.NET 3.5的基本运行环境后,再给出一个推荐的运行环境。

1. 基本运行环境

(1) 硬件

处理器:400 MHz Pentium处理器或与之相当的处理器。

内存:96 MB。

硬盘:适当的可用磁盘空间。

显示:800×600,256色。

CD-ROM:可选。

(2) 软件

操作系统:Windows Server 2003、Windows Server 2008、Windows Vista、Windows XP。

Web服务:IIS 5.0(Internet信息服务管理器5.0)以上版本 + Frontpage 2000服务器扩展。

IE版本:6.0以上。

支持平台:Microsoft.NET Framework 3.5(.NET框架)。

数据库访问组件:MDAC2.8(Microsoft数据访问组件2.8)。

数据库服务(可选):MS SQL Server 2000 / MS SQL Server 2005 / MS SQL Server 2008 /OLE DB。

2. 推荐的运行环境

(1) 硬件

处理器:1 GHz Pentium处理器或与之相当的处理器。

内存:256 MB以上。

硬盘:500 MB以上。

显示:1024×768,增强16位彩色。

CD-ROM;可选。

(2) 软件

操作系统:Windows 2003(带SP2)。

Web服务:IIS 5.0以上版本 + Frontpage 2000服务器扩展。

IE版本:6.0以上。

支持平台:Microsoft.NET Framework 3.5。

数据库访问组件:MDAC2.8。

数据库服务(可选):MS SQL Server 2008。

1.1.4 ASP.NET 3.5同脚本语言的关系

脚本(script)是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。脚本通常可以由应用程序临时调用并执行,目前各类脚本被广泛地应用于网页设计中。因为脚本不仅可以减小网页的规模和提高网页浏览速度,而且可以丰富网页的表现,如动画、声音等。举个最常见的例子,当我们单击网页上的E-mail地址时能自动调用Outlook Express或Foxmail这类邮件软件,就是通过脚本功能来实现的。

脚本语言(JavaScript、VBscript等)介于HTML和C、C++、Java、C#等编程语言之间,是一种解释性的语言,可以编译成二进制代码。脚本一般都是以文本形式存在,类似于一种命令,不需要编译,可以直接用,由解释器来负责解释。脚本语言与编程语言有很多相似地方,其函数与编程语言比较相像一些,其也涉及到变量,与编程语言之间最大的区别是编程语言的语法和规则更为严格和复杂一些。

ASP是将JavaScript、VBscript等脚本语言直接嵌入HTML文档中,应用处理与HTML标记混杂在一起,代码不易分辨,性能不易扩充,脚本语言的功能有限。ASP.NET则彻底抛弃了脚本语言,对编程语言没有了限制,你可以采用任何你喜欢的语言来编写,只要这种语言编写的ASP.NET代码能够被编译成MSIL(Microsoft Intermediate Language)语言。常用的编程语言为C#或VB.NET,这为开发者提供了更加强有力的编程资源,允许用服务器控件取代传统的HTML元素,而且代码与界面分开,使得业务逻辑和HTML页面分离。当然,最合适的编程语言还是Microsfot公司为.NET Frmaework专门推出的C#(读c sharp)。它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等,这就解决了以前谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.NET上就可以使业务逻辑和HTML页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度地保护你以前的投入。并且C#和C++、Java一样提供了完善的调试/纠错体系。

1.1.5 ASP.NET 3.5环境配置

1. 安装Internet信息服务(IIS)

IIS是随操作系统一起提供的,如果已经安装过了IIS,那么就可以在“控制面板”的“管理工具”中找到它(在英文的版本中,它的名字是Internet Information Services;在中文的版本中,它的名字是Internet服务管理器)。需要注意的是,IIS并不是系统默认安装的组件,所以,除非在安装系统时采用了自定义方式,并选中了“Internet信息服务(IIS)”选项,否则必须采用添加安装的方式。

2. 安装微软数据库访问组件MDAC

MDAC(Microsoft Data Access Components)是微软数据库访问组件,用于支持数据库。很多用户的操作系统中已经存在了MDAC,有些是操作系统内置的、有些是其他应用程序安装的。查看一下管理工具→数据源(ODBC)→驱动程序的版本,如果为4.00.6200.00就表示已经为2.8版本。如果没有安装,可以从微软官方网站免费下载,最新版本为MDAC 2.8,大小约为5.3 MB,MDAC 2.8的下载地址为:http://www.microsoft.com/downloads/details.aspx? FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c&DisplayLang=zh-cn

下载后,双击安装文件就可以运行安装程序,根据提示一步一步安装即可。

3. 安装Microsoft.NET Framework 3.5

Microsoft .NET Framework是一种Windows组件,可以允许用户构建和运行新一代软件程序和Web服务。它包含Web服务技术和Web程序(ASP.NET),数据访问(ADO.NET),智能设备程序(Windows Forms)等支持。

其中,Windows XP系统集成了Microsoft .NET Framework 1.0版本;Windows Server 2003系统集成了Microsoft .NET Framework 1.1版本;Windows Vista系统则集成Microsoft .NET Framework 3.0版本。开发ASP.NET 3.5程序需要安装的是Microsoft.NET Framework 3.5。

要安装Microsoft.NET Framework 3.5,首先,需要下载安装Microsoft .NET Framework 3.5,然后,下载安装所用的.NET Framework 3.5语言包,这里需要安装的是简体中文版语言包。如果计划开发 .NET Framework 3.5版应用程序,则还应下载安装Microsoft .NET Framework 3.5版软件开发工具包(SDK),其中包括了编写、生成、测试和部署 .NET Framework应用程序所需的工具、文档和示例。

Microsoft.NET Framework 3.5相关组件读者可到微软网站自行下载。下载地址为:http://www.microsoft.com/downloads/details.aspx?familyid=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=zh-cn

所有的组件下载完毕之后,双击安装文件,根据提示一步一步安装即可。

此外,还应下载安装Microsoft .NET Framework 3.5 Service Pack 1,它提供了针对Microsoft .NET Framework 3.5发布之后客户所报告问题的汇总更新。