第1章ASP.NET4.0概述ASP.NET是Microsoft.NETFramework中重要的组成部分,是基于.NET的Web开发程序类库。它提供了大量基础实现,用于建立和部署企业级Web应用程序,实现服务器与客户机的交互。同时,ASP.NET能够面向任何Web浏览器或设备提供更加安全、更富有可扩展性且更稳定的编程模型和基础架构。本章以最新的.NETFramework4.0版本为基础,介绍.NETFramework基本架构、新增功能、组件、Web开发技术以及ASP.NET开发环境,并实地操作,部署一个基本的ASP.NET开发环境。本章学习目标:了解.NETFramework技术了解ASP.NET4.0新特性了解Web前端开发的基本技术掌握配置ASP.NET4.0服务器的方法熟悉VisualStudio2010开发环境掌握配置ASP.NET开发的技术了解IIS服务器系统1.1.NETFramework基础.NETFramework技术是微软公司提供的一种致力于快速应用开发的通用编程框架,为开发者提供一种类似虚拟机技术的平台,允许开发者以通用的代码实现多种硬件架构和操作系统的应用程序,降低软件开发的成本,提高工作效率。1.1.1Microsoft.NET简介Microsoft.NET框架是微软公司面向下一代移动互联网、服务器应用和桌面应用的基础开发平台,是微软为开发者提供的基本开发工具,其中包含许多有助于互联网应用迅捷开发的新技术,如图1-1所示。1.Microsoft.NET的产生在传统的软件开发工作中,开发者需要面对的是多种服务器和终端系统,包括用于个人计算机的Windows操作系统、用于服务器的Windows服务器系统、非Windows系统(如FreeBSD、Linux和BSD)、用于平面设计的MacOSX操作系统,以及各种移动终端系统(如WindowsMobile、iOS、Android)等。2ASP.NET(C#)4.0程序开发基础教程与实验指导图1-1Microsoft.NET开发平台在开发基于以上这些系统的软件时,开发者需要针对不同的硬件和操作系统,编写大量实现兼容性的代码,并使用不同的方式对代码进行编译。这一系列的问题,都给软件设计和开发带来很多困难。以Windows操作系统为例,目前主要使用的Windows操作系统内核包括Win9X、NT4、NT5.0/5.1、NT6.0/6.1、WindowsCE、WindowsMobile6.X和WindowsPhoneOS等。在这些操作系统下进行软件开发,可使用的技术包括以下几种:用于图形图像开发的GDI、DirectX、OpenGL等技术。用于数据库操作的ADO、DAO、RDO、ODBC等技术。用于Web应用开发的ASP、JSP、PHP等技术。用于移动终端的XNA、HTML5等技术。以上这些技术都有各自的标准和接口,相互不兼容。有些软件开发者必须学习和使用相同的技术才能实现协作;而企业在实施开发项目时,也需要聘用指定技术的开发人员,才能实现最终的产品。基于以上问题,微软公司在21世纪初开发出一种致力于敏捷而快速的软件开发框架,其更加注重平台无关化和网络透明化,以CLR(CommonLanguageRuntime,通用语言运行时)为基础,支持多种编程语言,这就是Microsoft.NET框架。2.Microsoft.NET的特点Microsoft.NET框架是一个灵活、稳定的运行服务器端程序、富互联网应用、移动终端程序和Windows桌面程序的软件解析工具(类似虚拟机程序),也是软件开发的基础资源包,具有以下特点。统一应用层接口.NET框架将Windows操作系统底层的API(ApplicationProgrammingInterface,应第1章3ASP.NET4.0概述用程序接口)进行封装,为各种Windows操作系统提供统一的应用层接口,而消除了不同Windows操作系统带来的不一致性。用户只需直接调用API进行开发,无需考虑平台。面向对象的开发.NET框架使用面向对象的设计思想,更加强调代码和组件的重用性,提供了大量的类库。每个类库都是一个独立的模块,供用户调用。同时,开发者也可以自行开发类库给其他开发者使用。支持多种语言.NET框架支持多种开发语言,允许用户使用符合CLR规范的多种编程语言开发程序,包括C#、VB.NET、J#、C++等,然后再将代码转换为中间语言存储到可执行程序中。在执行程序时,通过.NET组件对中间语言进行编译执行。3.Microsoft.NET的版本Microsoft.NET框架与Windows操作系统和MicrosoftVisualStudio集成开发环境保持着紧密的联系,发布的版本也与这两者紧密相关,如表1-1所示。表1-1Microsoft.NET框架版本发布日期版本对应Windows版本对应VisualStudio版本2002年2月13日1.0WindowsXPVisualStudio.NET2003年4月24日1.1WindowsServer2003VisualStudio.NET20032005年11月7日2.0VisualStudio20052006年11月6日3.0WindowsVista/WindowsServer20082007年11月19日3.5Windows7/WindowsServer2008R2VisualStudio20082010年4月12日4.0VisualStudio2010目前最新版本的.NET框架Microsoft.NETFramework4.0具有以下特性。图表控件在开发.NETFramework4.0的应用程序时,开发者可以直接从VisualStudio2010中调用之前必须从Technet下载的图表控件,创建更具可视化效果的数据图表。托管扩展框架托管扩展性框架(MEF)是.NETFramework4.0中的一个新库,可以帮助开发者创建可扩展和组合的应用程序,允许开发者指定应用程序中的扩展点,为其他应用程序服务。并行计算针对越来越多支持多线程技术的处理器,.NETFramework4.0引入了一种新的编程模式,简化了应用程序和库开发者的编程。此模式可以帮助开发者在不使用线程或线程池时编写高效、具有可扩展性的并行计算程序。垃圾收集.NETFramework4.0改进之前版本的并行垃圾收集机制,支持从后台进行垃圾收集,而提供更好的系统性能。4.Microsoft.NET的应用在微软公司发布.NET框架之初,该技术仅仅是一种面向WindowsXP和Windows4ASP.NET(C#)4.0程序开发基础教程与实验指导Server2003桌面应用的实现方式。随着富互联网应用和移动计算技术的发展,.NET框架不断得到增强,目前已经可以作为一种综合的开发平台,应用到多种领域。桌面应用桌面应用是.NET框架最基本的应用,使用Microsoft.NET框架,开发者可以开发基于Windows2000/NT5以上版本桌面操作系统和服务器操作系统的桌面应用程序,并通过用户计算机的.NET组件实现本地文档和数据的操作。使用.NET框架开发桌面程序,开发者只需要将精力专注于程序算法和架构的本身,不需再考虑这些桌面操作系统之间的差异。因此可以从繁杂的程序调试和兼容性测试工作中解放出来,极大地提高工作效率。服务器应用服务器应用也是.NET框架的重要应用之一,使用.NET框架开发出的服务器应用程序名为ASP.NET程序。相比传统的ASP程序,.NET框架将网页分成前台页面和后台系统两个模块,将页面开发层和应用逻辑层完全隔离,提高网页开发的效率和代码的重用性,增强服务器应用程序的稳定性和安全性。Office增强功能作为微软公司提供的开发工具,Microsoft.NET框架可以与微软公司开发的Office系列办公软件紧密地结合,开发应用于该软件的宏、加载项等,增强Office系列办公软件的功能,提高办公效率。富互联网应用为抗衡Adobe公司开发的AIR(AdobeIntegratedRuntime,Adobe集成运行时)等富互联网应用技术,微软公司提出了Silverlight计划,通过.NET框架编写基于Web的多媒体应用程序,通过丰富的可视化元素实现用户体验。移动应用Microsoft.NET框架不仅可以应用到个人计算机、工作站等平台上,还可以为一些移动计算设备提供支持,例如使用WindowsCE操作系统的PDA、使用WindowsMobile和WindowsPhone7等操作系统的智能手机等。开发者开发的.NET程序同样可以在这些设备上执行。5.其他平台中的.NET框架除了微软公司开发的桌面、服务器和移动设备操作系统外,.NET框架还可以应用在其他几种操作系统中,通过以下几种技术实现跨平台应用。SSCLI技术SSCLI(MicrosoftSharedSourceCommonLanguageInfrastructure,微软共享源公共语言平台)是由微软公司提供的代码共享实现,可以允许在WindowsXP、FreeBSD、MacOSX等操作系统上执行.NET框架。MonoMono是一个开源的.NET框架运行时与开发库实现,由NovellXimian和开源软件社区负责开发维护。目前已经实现了对ASP.NET和ADO.NET的支持,同时支持部分WindowsForms库,允许在Linux等类Unix系统下开发和执行.NET程序。第1章5ASP.NET4.0概述1.1.2ASP.NET技术ASP.NET技术是.NET技术的一个子集,提供了大量用于开发Web服务端程序的类库,将这些类库封装在System.Web.dll文件中。在编程实现上,这些类库存在于System.Web命名空间内,可以实现Web内容处理、扩展以及HTTP通道的应用程序与通信处理。另外,ASP.NET还能够实现快速的异步数据交互,以及增强的数据库连接功能。1.ASP.NET特点ASP.NET是ASP技术的后继者,提供比传统ASP更加强大、高效而稳定的实现。ASP.NET具有以下特点。高效执行ASP.NET技术可将开发者编写的代码编译为中间语言代码,然后再通过专用的编译器转译为服务器计算机可以用的代码。相比传统的ASP、CGI、PHP等即时解析的语言,其执行效率更高,更加安全和稳定。语言无关性ASP.NET并不是一门编程语言,其本身只是一个类库和程序集。因此,编写ASP.NET代码与编程语言无关,开发者可以使用多种编程语言调用ASP.NET的类库,例如VisualC#、VisualBasic.NET、Jscript.NET、Perl、Python等。强大的适应性ASP.NET与C#程序类似,都是通过.NET编译工具编译为中间语言,然后再交给解释器执行,因此具有强大的适应性,只要可以安装.NETFramework的操作系统都可以执行ASP.NET程序。开发者可以将通用语言的基本库,消息机制,数据接口的处理无缝地整合到ASP.net的Web应用中。简化的部署方式与在Linux等服务器系统中配置复杂的Apache服务不同,部署ASP.NET程序的成本更低,操作更简便。开发者可以直接从Windows操作系统光盘中获取IIS安装程序,并免费下载.NETFramework安装包,直接安装后即可部署ASP.NET程序。便捷的管理ASP.NET使用基于文本格式的分级配置系统,使得应用服务器环境和Web应用程序的设置更加简单和方便。由于这些配置文本都是存储于非编译文档中,并且由服务器即时读取,因此大多数新的设置不需要重启服务器即可得到应用。2.ASP.NET4.0新特性相比之前版本的ASP.NET技术,ASP.NET4.0基于.NETFramework4.0框架,增强以下特性。更多项目模板ASP.NET4.0相比之前的ASP.NET3.5,在开发工具VisualStudio2010中新增了多种6ASP.NET(