ASPNET 20入门经典1.doc_第1页
ASPNET 20入门经典1.doc_第2页
ASPNET 20入门经典1.doc_第3页
ASPNET 20入门经典1.doc_第4页
ASPNET 20入门经典1.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ASP.NET 2.0入门经典(第4版)20世纪后期计算机领域发生了空前的变化。对于那些以前只在卧室打转的人或终日不见阳光的瘾君子而言,Internet的急速发展给他们带来了前所未有的乐趣。在20世纪90年代之前,承认自己用计算机处理工作几乎是一件令人尴尬的事情,然而突然之间人人都希望能拥有一台计算机。每种业务都争先恐后地和Internet扯上关系,而且很多家庭都希望拥有自己的Web站点。如果一定要为Internet的急速发展寻找一个技术代名词,那么这项技术非Web浏览器莫属。但是,如果没有可以查看的内容,浏览器就变得一点实用价值都没有了。用户需要信息,而Web站点就像雨后春笋一样蓬勃发展,其主题丰富多彩,包罗万象。20世纪90年代末期,世界充满剧变。一些商业帝国的根基就是一个最简单的想法 搜索引擎(Google)或者在线书店(Amazon)。人人都想知道怎样给自己建一个Web站点。HTML(HyperText Markup Language,超文本标记语言)可以实现人们的这个愿望,但很快人们就发现它的功能太简单了。开发人员可以显示图片和文本,但如果您想要的不止这些,那么应该怎么办?如果希望站点具有反应能力,也就是说能从用户接收信息并自动进行更新而不需要开发人员每次都编写新的页面,应该怎么办?如果希望将某个数据库连接到Internet上,或者希望显示一个股票目录,或者希望向每个访问站点的用户提供个性化的设置,或者只是希望向每个访问站点的家人或朋友提供漂亮的外观,又该怎么办?这方面的竞争一直在继续,人们已经开发出好几种技术,包括CGI、PHP和Java。Microsoft参与这项竞争的技术是ASP,它最引人注目的特点是比其他同类技术简单,容易入门。但是它也有很多让人激动的功能 当用户在Web站点内的页面之间浏览时可以保存用户的详细信息以及Calendar和Rotator等控件,可以把这些控件直接放置到页面中,就像使用HTML标记一样。ASP获得了巨大的成功。Microsoft做了进一步的开发;它创建了.NET Framework,而ASP.NET则成为ASP技术的“升级”版本,使用的是其成熟的编程语言VB.NET和C#。这个变化在功能方面是一个很大的进步,但是Microsoft在一定程度上迷失了一个很重要的目标 简单性。Web站点的开发突然之间需要高昂的咨询费用,同时需要顶尖的美工人员。对于那些一开始缔造站点繁荣的人而言,它已变得高不可攀。ASP.NET 2.0在这个方面向正确的方向回退了一大步。Microsoft意识到,人们在开发Web站点的时候不喜欢做的一件事就是编写代码。代码很枯燥且令人讨厌。然而,Microsoft也意识到有相当一部分人仍然靠编写代码为生。而且,这些编程人员不得不开发同样的功能,并一再重复。登录机制、菜单系统、购物车、用于站点中所有页面的站点标题 这些是很多Web站点都需要的功能。此时两个指导原则要发挥作用:简化它们对新手的使用难度,并减少开发人员必须重复的工作量。ASP.NET 2.0声称可以“减少70%的代码”;ASP.NET 2.0还带有很多控件,这些控件使得开发人员在数分钟之内就可以创建登录系统和菜单。2003年下半年的时候,我们已经看到过名为ASP.NET 2.0的新版Active Server Pages。每个人都知道这些声明决不是刻意夸大,开发人员创建Web应用程序的方法将从根本上发生变化。Microsoft扩充了ASP以前版本的强大功能,同时在很大程度上减少了实现这些功能所需的工作。实现的简化意味着开发复杂站点的费用将缩减。或者,换一种说法,现在能够开发复杂站点的开发人员将大大增加。另外,ASP.NET 2.0还附带了一个新的、不算昂贵的开发工具用于创建Web站点:Visual Web Developer Express。Microsoft以前开发的用于辅助创建Web站点的工具要么已经销声匿迹(Front Page),要么从来没有得以普及(Visual Interdev),但这次开发的工具找准了方向。Visual Web Developer将成为Visual Studio.NET套件的一部分,但名为Visual Web Developer Express受限版本的售价并不昂贵。利用它您可以在数分钟之内通过拖放控件创建一个站点,开发人员也能立刻识别出来,并简化页面的创建和管理。本书将逐步引导您使用ASP.NET 2.0创建动态的、数据驱动的、复杂的Web站点。在本章结束时,我们将解释一些基本的想法并介绍一个完整的示例站点。然后将学习怎样使用Visual Web Developer Express(VWD)构建ASP.NET 2.0站点。具体地说,本章包含以下5个主题: 简单介绍ASP.NET 2.0 回顾ASP.NET 2.0解决的Internet编程问题 解释ASP.NET 2.0是怎样适应其他技术的 浏览一个由ASP.NET 2.0构建的站点的动态功能 理解创建ASP.NET 2.0页面(ASPX)将要使用的工具 Visual Web Developer Express(VWD)在以前的书籍中,如果在学习本章之后您能够创建简单的页面,那么我们的目的就算达到了,但ASP.NET 2.0鼓励学习更多的内容,在第2章结束的时候,您将知道一个正在运行的Web站点的结构和架构。本书的主要练习是为一个名为Wrox United的足球队创建Web站点,显示他们的新闻和比赛结果、出售他们的产品、拍摄他们的记录片,并根据登录的用户是客户还是管理员来显示不同的页面。作为惯例,我们将提供一些练习帮助复习本章中讨论的概念。1.1 将要创建的站点打开查看一下站点(主页如图1-1所示)。这个站点完全使用ASP.NET 2.0创建,也是在本书中将要创建的站点。同时,它也是在本章和第2章中将要学习创建的一个微型工作模型。图 1-1 在主页上可以看到一个菜单系统、一个登录控件和一些新闻条目 如果使用旧版的ASP或ASP.NET,创建这些功能都将耗费开发人员大量的时间并编写很多代码。以登录机制为例,开发人员必须考虑接受用户ID和口令、根据一组已经存在的用户和口令进行核对、确保口令不会以任何方式弄错并确保口令的传送安全可靠。因此,开发人员需要进行很多相对而言不那么重要的工作,没有一两个小时是不能完成这个功能的。现在,这只需要几秒钟的时间。单击View Page Source链接 现在不理解这些代码并不要紧 用户将看到少于10行的ASP.NET 2.0代码:Welcome to the Wrox United Web site.Were a great football team. No really, we are. Dont take any noticeof our past performance. Were just unlucky.逐个单击菜单中的不同链接,看看比赛成绩表和固定列表是怎样工作的,同时看代码只有廖廖数行。请注意站点的主题和样式是如何保持一致的,但是现在无法知道这一点是如何实现的。欢迎来到ASP.NET 2.0的世界。从现在开始,它将彻底改变您创建Web站点的方式。稍后您将更详细地了解到隐藏在Wrox United应用程序后面的功能,但首先介绍ASP.NET 2.0提供了哪些功能。Internet上的World Wide Web(WWW)提供了广阔的互联性。实际上每个使用计算机的人都能够访问网络。但这种随处可见的连接却少有标准可遵循。信息以ASCII字符的形式传递,没有内置的机制实现到机器层代码转换的功能。客户的需求非常少 事实上Internet本身并没有任何标准规定浏览器该怎样工作,因此计算机领域同时存在着为不同的操作系统和平台编写的多种浏览器。在2005年,我们很容易忘记Internet是设计用于传递带有图片和链接的静态文本页面的。近15年来Internet编程的发展可以说是这样的一个过程:在不违反设计页面时追求最大简单性的WWW原则的同时,努力向用户提供高级的、复杂的功能。用户希望使用页面的感觉就像使用文字处理和数据库访问等桌面应用程序那样。但这样的复杂程度在最小化配置的情况下要在Web上实现是很困难的。ASP.NET 2.0从根本上减少了开发复杂Web站点的困难。Microsoft的ASP.NET开发小组考察了大量的页面、站点和场景,并在此基础上创建了一组站点所有者的常见目标。这个列表中包含了大约20个目标,包括读取数据、统一的登录和身份验证过程、一致的站点外观以及不同浏览器平台的页面定制。开发小组于是着手编写代码以正确的方法实现这些目标,从而最大限度地减少开发人员的工作量并由Microsoft对代码进行广泛的测试。这些功能包含在ASP.NET 2.0的类(封装好的可供使用的代码集)中。结果非常简单 开发人员只需将Microsoft在ASP.NET 2.0中开发的组件装配到一起,就可以非常迅速地组合出(而且很容易地维护)一个复杂的站点。开发人员现在只需简单地将一个控件拖放到页面上并在向导中回答一些问题就可以了,而不需要编写数十行的代码(就像在旧版的ASP中所做的那样)。这个控件将为页面产生一些代码,服务器将使用这些代码创建页面的HTML代码,并随后将这些代码发送到浏览器。由于发送到浏览器的是HTML代码,因此除了能显示HTML和执行一些简单的JavaScript脚本之外,并不要求浏览器有什么特殊的功能。任何可以显示HTML代码的浏览器都可以显示ASP.NET 2.0页面。这不仅包括桌面浏览器,还包括PDA、手机和其他设备。因为在浏览器获取页面之前这些控件的所有代码都运行在服务器上,所以把这些控件称为服务器端控件。本书后面将讨论某些服务器端控件的功能。Microsoft对使用旧版的ASP创建的站点进行调查,并据此提出了一组由站点程序员实现的常见目标。有些目标实现起来很容易,但是很耗费时间,而其他目标除了对最高级的开发人员以外都过于复杂。总体而言,程序员的解决方案有的非常出色,有的根本就不正确。调查到的有些解决方案不仅非常糟糕,而且开发它们还浪费了大量的时间,因为成百上千的程序员都耗费大量的时间计划、编写和测试完成同样功能的代码。本节将介绍11个目标,ASP.NET 2.0针对这些目标都提供了内置的解决方案。在第3章和其他章节将看到,这些解决方案都是以服务器端控件的形式提供的,这些控件包含了执行各种设置和操作的相应代码。只需把某个控件放置到页面上,设计人员就可以获得以前必须手工编写代码才能获得的功能。1.3.1 一致性和个性化Web设计人员倾向于设计两种相互矛盾的特性。一方面他们希望整个站点具有统一的外观。但与此同时,他们又希望在色彩、字体大小和其他特性上对用户提供定制站点的服务。ASP.NET 2.0提供了MasterPage控件,该控件使得一个站点在标题、菜单和链接的布局上保持一致。在这种一致性的范围内,设计人员可以添加一个控件,让用户选择一种用于所有页面的主题风格。1.3.2 导航每个站点都需要导航工具,通常有三种形式。用户需要菜单。他们还需要看到自己在站点中的当前位置。最后,他们希望能够容易地向上或向下导航一个层次结构。ASP.NET 2.0支持一个名为SiteMap的XML文件。ASP.NET 2.0的控件可以根据站点地图和当前页面的名称显示菜单和其他导航信息。1.3.3 登录、安全和角色很多站点都需要登录系统,该系统根据一个列表检查用户的ID和口令,然后决定允许或拒绝用户登录。虽然基本的实现不复杂,但只有很少一部分程序员能够成功地开发一个符合安全要求的登录系统。ASP.NET 2.0提供了一些控件,这些控件可以创建和实现一个比我们当中的大多数人手工编程实现要好的登录系统。除了简单的站点准入功能以外,该系统还提供口令提示功能以及一个创建新用户的系统。另外,可以为用户指定角色,这个角色决定了当该用户查看信息的时候可以获得哪些页面和功能。例如,所有用户都可以查看员工电话薄页面,但只有角色为Manager的用户可以查看修改员工信息的页面。1.3.4 连接数据虽然绝大多数动态Web站点都与数据相连,但只有少数设计人员能够成功地实现用户需要的所有功能。在以旧版的ASP创建的站点中,Microsoft注意到在效率和安全方面存在很多问题。而且,即使是最简单的目标也需要编写数行的代码。ASP.NET 2.0通过两组处理数据的控件提供了丰富的数据功能。数据源(Data Source)控件提供连接到数据源的操作。数据绑定(Data-bound)控件获取这些信息并显示为HTML。很多数据源控件都可以连接到几乎所有的数据源,而数据绑定控件则提供用户表格、列表、树和其他表示形式。两组控件相互配合,可以使得用户以按页的方式显示数据,并对数据进行排序和编辑。1.3.5 代码几乎每个Web站点都需要用户定制的代码,因为ASP或其他Web站点技术不可能预料到所有业务的不同需求。ASP.NET 2.0支持20多种不同的语言。不论程序员使用的是何种编程语言,代码在执行之前都会被转换为一种单一的中间语言。ASP.NET 2.0控件在服务器上执行,但程序员仍然可以编写在客户端执行的代码(例如Java或其他客户端脚本)。1.3.6 组件化如果可以互不依赖地创建Web站点的不同部分,那么站点的开发和维护将会变得更简单。传统的ASP依赖于大型的页面,这些页面包含内容、HTML、ASP控件和脚本代码。ASP.NET 2.0为把站点分解成多个逻辑部分提供了更加有效的模型和结构。例如,代码通常保存在独立于显示层(文本和HTML标记)的文件中。而且,Visual Web Developer提供向导以简化创建提供数据资源的对象。1.3.7 Web服务企业在它们自己的站点上提供信息和服务。例如,福特公司可以在其全球总部通过www.F站点向用户提供关于色彩和价格的信息。但是在几年前,我们看到其他站点也需要这样的服务。例如,一个本地的Ford经销商也许希望在www.YourLoacalFordD站点上提供色彩和价格的列表。Web服务允许客户站点(本地经销商)从提供商站点(福特公司总部)那里获取信息。本地经销商使用Web服务可以显示由福特公司站点提供的实时数据,但仍然让用户位于本地站点。ASP.NET 2.0提供一个符合SOAP标准(Simple Object Access Protocol,简单对象访问协议,一种从Web服务请求数据的方式)的完整Web服务解决方案和XML(Extensible Markup Language,可扩展标记语言,一种数据格式)。1.3.8 性能和缓存设计人员在开发机器上编写好一个页面后,将把该页面编译成一种称为Microsoft Intermediate Language(MISL,微软中间语言)的.NET 2.0统一语言。然后把它复制到部署机器上。第一次复制时,需要对页面进行更进一步的编译,将其编译成Common Language Runtime(CLR,公共语言运行时),这将针对即将运行该页面的机器硬件对页面进行优化。这个分步编译过程实现了软件的一致性和针对硬件优化的双重目标。两个编译步骤都经受过.NET 2.0小组的严格性能分析。对开发新手而言,最大的好处在于这个编译过程是自动完成的。ASP.NET 2.0可以很容易地缓存页面,这样就能更迅速地响应后续的请求。缓存的页面将保存在服务器的RAM中,这样在有请求发生时就可以将页面直接发送出去,而不用让服务器重新编译页面。而且,设计人员可以指定只有页面的一部分可以缓存,人们将这个过程称作碎片缓存(fragment caching)。碎片缓存可以加速页面中静态部分的响应速度,同时仍然允许页面中的动态部分根据用户的具体需求产生。如果使用Microsoft SQL Server 7或者更高的版本,还可以选择为页面中与数据相关但很少变化的部分(可能是一个员工列表或零售商列表)使用数据无效缓存(data invalidation caching)。数据无效缓存将把页面保存在缓存中直到从SQL Server收到数据已被更改的消息。ASP.NET 2.0可以缓存一组数据,直到从SQL收到数据已发生改变的消息。SQL Server将通知.NET数据已发生改变,这将触发ASP.NET 2.0重新读取数据。1.3.9 错误和异常处理任何Web站点,实际上所有的系统,都需要对错误进行响应。ASP.NET 2.0提供了一个响应错误的系统。响应可以放置在代码中,也可以重定位到一个错误页面。可以为每个错误提供一个错误页面,也可以只为整个站点提供一个错误页面。.NET 2.0 Framework还允许在多个层次上对错误进行处理。如果错误发生在读取数据时,则可以在数据源层处理错误。如果没有进行处理,错误将向上传递一个层次并在那里进行处理。未处理的错误将不断地上传,从而允许设计人员选择在最有效的层次上进行处理。1.3.10 部署在以前,部署为Windows和Linux开发的站点需要一系列的设置步骤,这些步骤主要是在主机上注册和配置站点。ASP.NET 2.0小组为XCOPY部署设置了一个目标,其名称来源于一个DOS命令,这个命令将复制一个文件夹和它的所有子文件夹。一个简单的XCOPY命令将把站点从开发机部署到部署主机上。所有的注册操作和机器层的定制都将在第一个请求到达站点时自动发生。1.3.11 部署工具虽然编译ASP页面的工具不是ASP.NET 2.0的一部分,但是Microsoft还是花费了相当多的精力改进这些工具,也就是Visual Studio、Visual Web Developer和Visual Web Developer Express。这些IDE(Integrated Development Environments,集成开发环境)允许通过拖放控件的方式创建页面。大多数常见的操作要么是自动完成,要么由向导引导完成。如果需要输入代码,则IDE将为大多数步骤提供智能提示。本书使用可以免费下载的VWD Express工具。很多人都存有这样的疑问,ASP.NET 2.0和其他与Web相关的术语(通常是术语的首字母缩写)是怎样相互融合的。现在我们将解释清楚这个问题 ASP.NET 2.0在哪些方面和运行在服务器上的其他软件相互融合?它是什么角色,其他技术又是什么角色?ASP.NET 2.0是.NET 2.0 Framework的一部分。.NET Framework是Microsoft的商标,该商标包含一组使用Web服务和XML进行Internet互联的软件标准。很多Microsoft的产品都符合.NET标准,包括各种各样的服务器软件、数据管理系统和桌面应用程序。ASP.NET 2.0是.NET 2.0的一个子集,这个子集提供创建动态Web站点的软件。该软件以一组类的形式发布,这些类包含各种在Web服务器上执行操作的控件。在页面的日常设计工作中,我们将用到这些服务器端控件。由于ASP.NET 2.0是.NET 2.0 Framework的一个子集,因此本书中我们有时使用ASP.NET 2.0的功能,有时使用.NET 2.0 Framework的功能。各种功能之间是完全无缝的。作为Microsoft的产品,ASP.NET 2.0运行在Windows上。进行开发时,它必须安装在Windows 2000或者更新版本(包括XP Home和XP Pro)的系统上。进行部署时,常用的OS是Windows Server 2003或其他针对更高负载设计的Windows OS版本。在Windows中,ASP.NET 2.0和Internet Information Server相互配合从硬盘上读取页面并将其发送给请求者。或者,在用于开发的桌面机器上,可以使用一个轻量级的Web服务器Cassini测试ASP.NET 2.0,这个服务器是和VWD这类开发工具一起发布的。当设计人员使用ASP.NET 2.0控件连接数据时,至少会发生两次交互。数据控件使用一种称为ActiveX Data Objects(ADO.NET)的技术,但幸运的是ADO.NET运行在底层。接下来,这些ADO.NET对象将和数据源交互。数据源可以是Microsoft SQL Server(本书所用的就是这个数据源),或者几乎其他任何包含关系数据库的数据源,例如Oracle或MySQL,以及非关系数据源,例如XML或文本文件。Microsoft为多个层次的开发人员提供了创建ASP.NET 2.0Web站点的工具。覆盖范围最广的产品是Visual Studio 2005,这是为专业开发人员提供的工具。一个价格很低,而且只是功能稍弱一点的版本是Visual Web Developer Express。Front Page仍然可用,但是它的主要功能是编辑静态HTML页面,并且缺少用于简化设计动态的、数据密集的ASP.NET 2.0页面的工具集。在Notepad中创建页面长久以来一直是ASP开发人员的首选方法,而且理论上仍然可以继续使用它;然而,对Web站点和Web页面进行必要的管理使得它成为一个不切实际的、费力的、而且更容易导致错误的工具。理论上已经介绍得够多了;让我们实际考察一下ASP.NET 2.0。在学习本书的过程中,您将为一个运气欠佳的足球队创建一个完整的网页,这个球队的名称是Wrox United。可以在找到已完成的示例,本书后面将介绍这个站点以解释ASP.NET 2.0提供的功能范围。接着在本书的剩余部分,您将在自己的台式机上开发一个同样的站点。对于这个练习,不需要在机器上安装软件。然而,本书的后续部分需要根据附录B介绍的步骤安装好开发机。本节介绍由作者创建的站点,其地址是,您也将创建这个站点。启动浏览器并打开该站点。 MasterPage和Site Map(站点地图)(在第2章讨论):单击多个页面以观察页面的顶部和左边的统一布局。这种设计的一致性由一个易于实现的功能完成,该功能的名称是MasterPage。其次,请注意在每个页面右下方的红褐色方框,该方框中的内容指示当前页面和该页面的父页面,以及父页面的父页面,直到主页面。这个功能由ASP.NET 2.0的Site Map和Navigation控件实现。 服务器端控件(在第3章讨论):浏览Players页面。所有数据都来自两个服务器端控件 一个连接到数据库的数据源控件和一个显示信息的数据绑定控件。ASP.NET 2.0页面的大多数行为都封装在服务器端控件中。这包括像左下位置的购物车链接、诸如左上方球队标志的图片,以及左下方登录区的文本框等。 登录和安全系统(在第4章讨论):在主页上,使用用户名Lou和口令lou123登录。然后退出。创建身份验证系统可能需要耗费大量的时间和精力,而且即使如此也会经常出现安全漏洞。ASP.NET 2.0提供一个基于多个服务器端控件的简单系统,该系统包括登录和口令验证方案,以及通过电子邮件给出口令提示。 事件(在第6章讨论):浏览Shop页面,单击一个商品并将其添加到购物车中(当然,这不是真正的购物站点,只是演示而已)。在单击Add to Cart按钮时将触发一个事件,该事件由客户代码处理,主要是创建一个订单并将相应的商品添加到订单中。 数据读取(在第7章讨论):浏览Players页面,该页面中的姓名和加入日期都是从SQL Server Express数据库中读取的。这个站点上的很多信息都保存在存储数据的文件中,并由ASP.NET 2.0服务器端控件读取。返回主页并观察菜单。就连这些菜单选项都是从一个XML文件中读取的,这个文件包含了站点的地图。 写数据(在第8章讨论):浏览Shop页面,单击轿车滞销品并单击Add to Cart。这个操作向数据库写入了一条数据。将订单写入数据库的行为是由两个ASP.NET 2.0服务器端控件完成的。站点的设计人员不需要编写任何客户代码。 隐藏在控件之后的代码(在第9章讨论):从主页单击页面左下方的Shopping Cart链接。我们已经编写了客户代码,这些代码将在页面加载时检查购物车中是否有商品,并根据商品的内容显示正确的数据:要么是空列表,要么是商品列表。虽然ASP.NET 2.0服务器端控件的功能非常强大,但是它们并不能覆盖所有可能的情况。设计人员可以在ASP.NET 2.0站点中的很多地方添加客户代码。 组件(在第10章讨论):浏览Fixtures页面。虽然数据存储在SQL Server数据库中,但是ASP.NET 2.0页面并不直接读取数据。有一个组件负责读取数据并将数据发送给ASP.NET 2.0页面。这个组件可以在其他Web站点或运行在本地网络上的Windows应用程序中重用。 角色(在第11章讨论):如果拥有管理权限,则可以登录并看到不同的页面。在本地开发机上安装本站点后,将在第4章实验这个特性。ASP.NET 2.0允许以访客以外的身份登录。不同的用户可以拥有不同的角色,不同的角色拥有不同的权限。这个公共站点只允许几位作者以管理员的身份登录,所以现在不需要查看这个功能。 电子商务(在第13章讨论):通过菜单浏览Shop页面,单击一些商品,将它们加入购物车。现在单击菜单底部的Shopping Cart并查看其中的内容。这个站点最复杂的部分就是购物车。ASP.NET 2.0没有提供电子商务的解决方案,但是因为ASP.NET 2.0控件包含了非常丰富的行为,所以设计诸如电子商务这样的复杂系统比以前要快捷得多。 性能(在第14章讨论) 错误和异常处理(在第15章讨论) 部署(在第16章讨论):目前我们并不讨论具体的部署。然而,应该记住ASP.NET 2.0站点的部署只需几个步骤。首先将数据库复制到数据服务器上,然后将站点的文件夹及其子文件夹从开发机上复制到新的服务器上。本节概要地介绍了在阅读本书的过程中将要学习创建的内容。大多数要研究的功能都只需编写非常少量的代码就可以实现。具体的行为由一组服务器端控件执行,这些控件是ASP.NET 2.0的组件,Microsoft把代码隐藏在这些控件中。只需将这些控件放置到页面上并设置各种属性即可。在观察过公开发布的完整站点之后,现在可以开始在开发机上创建自己的站点了。如果还没有安装Visual Web Developer Express、SQL Express、示例数据库和示例站点(参考附录B)的话,现在请安装它们。仔细阅读附录B中的介绍,然后按照步骤开始进行安装。可以在每个小节的后面执行检查以保证安装成功。本章和第2章将在学习怎样使用VWD和为站点设置一些设计参数的时候,搭建出本站点的基本架构。因为VWD对大多数任务都提供拖放的解决方案,所以您将以最少的输入创建这个站点。如果必须进行输入,则可以从在下载的文本文件中剪切并复制相应的内容。在下载得到的文件中,所有页面都已完成,但我们坚信,与简单地复制我们给出的参考中的整个页面相比,更好的学习方法是自己创建ASPX页面。人类与动物的一个基本差别在于使用工具的能力。在编写代码的早期,编程工具都很简陋。今天,我们可以享受到高级软件开发工具带来的益处。工程师几乎已经研究了人类所有的弱点(基本上都与记忆能力和人类大脑与世界的接口相关)并创造工具弥补这些弱点。这些工具组合到一起形成一种称为Integrated Development Environment(IDE,集成开发环境)的软件。本书所使用的IDE是Visual Web Developer Express(VWD)。VWD包含了很多开发工具。首先是一个编辑器,开发人员将在这个编辑器中创建页面。这个编辑器带有IntelliSense功能,这是一个完成命令输入并为开发人员提供恰当选择的工具。另外,有一个包含图标的工具条,可以将这些图标拖放到编辑器中,这个操作将在编辑器中自动添加一个代码块。另一种向页面自动添加代码的方法是使用处理比较复杂的任务时系统提供的向导。另外,VWD包含了一个最小化的File Manager,用于组织ASPX和相关的文件以及文件夹。类似地,可以使用Data Explorer浏览Web站点的数据源。VWD还包含了一组排查问题的工具。最后,VWD发布时附带了一个用于测试的Web服务器,名称为Cassini,下一节将对其进行介绍。阅读其他相关书籍时,可以发现其他用于处理更为复杂情况的工具,包括在开发小组的成员之间管理代码版本的工具。1.7.1 CassiniCassini是一个VWD附带的轻量级的Web服务器。Cassini和IIS(包含在.NET Framework中)都可以作为ASPX以及相关页面的服务器,所以在部署时不需要对站点进行修改。但两者之间存在诸多差别。这两个服务器使用不同的安全模式。IIS是一个服务,而Windows中的每个服务都需要一个用户。IIS的特定用户是ASPNET。Cassini作为应用程序运行,使用当前已登录Windows的用户账户。这使得Cassini更易于安装,因为不需要在Windows中创建ASPNET这个特殊的账户。事实上,Cassini在安装VWD时就已透明地安装在开发机上了。Cassini有3个弱点。首先,它是开发人员在开发机上测试页面的工具,因此只能有一个用户。其次,由于针对用户模式进行了简化,因此Cassini无法支持可靠的安全模式。Cassini只能在一个封闭的环境中运行,或者能够获得防火墙的保护。再次,在Cassini中运行一个页面时,这个页面在VWD中会被锁定。为了对页面解锁,必须关闭浏览器,这在多次修改和测试站点时是非常不方便的。因此,很多开发人员即使是在开发机上也使用IIS,以免在VWD中修改页面之前必须关闭浏览器。这样做的缺点是必须配置开发机以提供IIS、设置正确的权限、建立安全控制、并创建一个虚拟的根目录。附录B中给出了进行这些设置的步骤。若不想设置IIS,仍然可以使用Cassini,只是在修改之间要关闭浏览器。1.7.2 VWD的Solution ExplorerASP.NET 2.0 Web站点以文件簇的形式保存在硬盘上。开发人员必须能够组织这些文件,包括查看这些文件的名称和它们之间的关系、复制、创建以及删除这些文件。可以在Windows Explorer中查看和操作这些文件。但是在VWD和Windows Explorer之间切换很不方便,所以VWD包含了一个类似资源管理器的工具,称为Solution Explorer(解决方案资源管理器),如图1-2所示。Solution Explorer默认情况下显示在窗口的右边,或者可以通过按下Ctrl+Alt+L重现该工具。可以将其看作是Windows Explorer,其最上层的目录就是Web的根目录。注意,Toolbox可能会位于Solution Explorer的后面,图1-2显示了这种情况。图 1-2 任何使用过Windows Explorer的用户对Solution Explorer的布局都会很熟悉。单击加号或减号可以展开或折叠文件夹。工具条上的图标,从左边开始第一个用于在Solution Explorer和属性列表(本章稍后将进行更多讨论)之间进行切换。带有两个水平箭头的图标执行刷新功能。双文件图标将自动隐藏或展开嵌套的子文件。接下来的两个图标用于打开选中的文件并显示其用户界面或代码。双浏览器图标用于将整个站点复制到部署机上。最右边带有一个锤子的图标将打开Web Administrator工具,该工具管理站点的功能。在Solution Explorer的底部可能有一个小任务栏,用于显示Solution Explorer、Toolbox、Data Explorer和/或Properties窗口。为了让窗口保留足够的空间显示页面的内容,这几个窗口通常会叠放在一起,而选项卡可以让用户进行快速切换。例如,在图1-2中,Toolbox也是打开的(虽然是隐藏在Solution Explorer窗口的后面),单击Toolbox选项卡将隐藏Solution Explorer窗口并显示工具箱窗口。这些窗口严格地说并不是Solution Explorer的一部分,而是属于装载4个叠放在一起的工具的面板。在Solution Explorer的窗口中有一个构成站点的文件列表。最顶层是根目录,通常位于C:websitesMyWebSiteName。对于WroxUnited站点我们使用了C:BegASPNET2WroxUnited目录。文件包含在子文件夹中。开发人员可以像在Windows Explorer中那样展开和折叠文件夹、在文件夹之间剪切、复制和粘贴。Solution Explorer能够识别.ASPX文件和.ASPX.VB或.ASPX.CS文件之间的隐式链接(第6章和第9章中将更详细地介绍)。如果复制.ASPX文件,相应的代码文件会一起移动。可以右击文件夹并选择Add Existing Item。系统弹出的对话框允许开发人员导航到计算机或网络中的任意位置(包括FTP站点)获取文件。例如,在创建自己的项目时,有时候需要使用从站点下载的图片或文本文件。开发人员可以使用Solution Explorer将该图片或文件从下载文件夹中添加到自己的Web站点中。ASP.NET 2.0没有包含在部署期间注册文件的系统。所有文件,包括ASPX页面、代码文件、数据文件和图片都存放在一个普通的Windows文件夹及其子文件夹中。如果没有打开VWD,也可以在Windows Explorer中直接剪切、复制和粘贴站点的文件。与后续小节将要介绍的Toolbar、Data Explorer和Properties窗口一样,Solution Explorer在VWD中有两种显示模式:浮动模式和停靠模式。浮动模式允许该窗口停放在屏幕上的任意位置,类似于一个基本大小(即未最大化)的普通窗口。停靠模式意味着该窗口将自动停放在屏幕上的以下5个位置之一:顶部、底部、左边、右边或与其他窗口叠放在一起。选中某个窗口,单击菜单Window-Floating或Dockable将改变该窗口的显示模式。在停靠模式下,如果拖放窗口的标题栏,开发人员将看到几个透明的箭头(如图1-3所示)。将标题栏拖向某个箭头,该窗口将自动调节大小并停靠在正确的位置上。在学习了如何使用VWD Express IDE之后,就可以继续学习创建站点和页面的技术了。图 1-3 1.7.3 使用VWD创建、打开和使用Web站点及页面要创建新站点,只需打开VWD并单击File-New Site菜单。在弹出的向导中,选择ASP.NET Web Site。假设将为开发创建一个本地副本,在File System中设定位置并浏览到该目录。通常设置为C:WebsitesMyWebsiteName(我们实际使用的目录是C:BegASPNET2WroxUnited,从而与本书以前的版本兼容)。可以任意选择Visual Basic或C#两种编程语言。Visual Basic是VWD的默认语言,同时也是本书中所有示例所用的语言。VWD将自动创建一个文件夹、一个默认页面,以及一个存放数据的子文件夹。ASP.NET 2.0引入了一个非常简单的模型,用于组织Web站点的文件和注册代码。在这种模型下,站点的所有文件都存放在一个文件夹及其子文件夹中。在部署时,整个文件夹将从开发机器复制到主机。因此,开发人员不需要像在以前的ASP版本中那样创建一个虚拟根目录。VWD进一步简化了部署:如果选择菜单Website-Copy Website,VWD将打开一个FTP窗口,通过这个窗口,开发人员可以将新文件发送到主机,或者更新主机上的文件。要编辑一个已经存在的站点,请选择菜单File-Open Web Site。如果是在本机上工作,那么可以浏览到存放站点的文件夹。在屏幕的左边,VWD提供一个菜单让开发人员选择通过FTP或通过安装本地IIS,从而直接修改页面。在创建了Web站点之后就可以添加页面。我们通常会首先添加一些文件夹以便组织页面。右击一个已经存在的文件夹并单击添加文件夹的选项。特殊的ASP.NET文件夹,例如Code、Themes和Web References,都有自己的菜单项。要添加一个页面,请右击某个文件夹并选择Add New Item。弹出的向导中提供很多选项。到目前为止,只需创建一个Web Form,但可以看一看其他选项,感受一下VWD和ASP.NET 2.0的强大功能。为新页面命名并选择使用的语言。后续章节将讨论这两个复选框。在介绍了怎样创建Web站点和页面之后,后面的“试一试”部分将运用这些知识,创建Wrox United站点和一些实际的页面。1.7.4 示例代码目录为了便于学习,每一章都有自己的代码,而且每一章有两个文件夹,分别保存在两个上层目录中。其中一个目录是Begin目录,包含让您开始练习的示例 这些示例没有任何改动。另一个目录是End目录,包含着“试一试”部分完成之后的示例,因此在练习的时候可以将这些文件作为参考,或者根据练习中的步骤从这些文件中剪切并粘贴代码。这些Begin和End文件夹都包含在一个名为Chapters的文件夹中,每章都有自己的目录。所以,本章中让您开始练习的示例位于ChaptersBeginChapter01,而完成之后的代码位于ChaptersEndChapter01。有些章节以WroxUnited应用程序作为示例,因此这些章节有自己的WroxUnited目录,而其他章节使用WroxUnited以外的应用程序作为示例。这样做的原因是有些技术在较小且易于理解的示例中比在一个功能完整的应用程序中更能让人理解清楚。但是所有这些技术都在主应用程序中得以应用。将目录以这种方式安排并不意味着示例会变得非常大,但这样做的好处是将每一章和其他章节分隔开,以便在阅读本书的时候不至于将各章的代码相互混淆。其中有几个目录包含了完整的WroxUnited站点副本。除了每一章的代码外,还有一个包含最终示例的WroxUnited应用程序。这个应用程序可能与其他示例有些出入,但差别只是它显示的数据可能更完整一些,同时某些页面看起来更美观一些。(1) 打开VWD。选择菜单File-New Web Site。选择ASP.NET Web Site并在File System中定位到C:BegASPNET2ChaptersBegin;可以使用Browse按钮导航到这个目录,然后在该目录的后面输入Chapter01,因此新的Web站点就位于C:BegASPNET2ChaptersBeginChapter01。确认Language列表中选择的是Visual Basic。单击OK。应该能够在屏幕右边的Solution Explorer中看到自己的文件夹。如果没有看到该窗口,请选择View-Solution Explorer。注意VWD将自动创建3个项目:App_Data文件夹、Default.aspx页面和(如果展开Default.aspx)Default.aspx.vb文件,该文件包含默认页面的代码。(2) 在VWD的中间是一块用于编辑页面的空间,Default.aspx页面已经在这里打开。注意在屏幕的左下方有Design和Source两个选择。依次单击可以查看代码和代码运行的结果。在Design视图中,单击页面并输入文本Home Page。按下Ctrl+S保存页面。(3) 创建一个文件夹,用于保存图片。在Solution Explorer中,右击根文件夹(该文件夹可能显示为C:Chapter01,Solution Explorer隐藏了部分路径)并选择Add Folder。将这个新文件夹命名为Images。(4) 可以在VWD之外操作站点的文件和文件夹。打开Windows Explorer并导航到C:BegASPNET2ChaptersBeginChapter01目录,可以在这里看到VWD的Solution Explorer中显示的文件夹和文件。(5) 返回到VWD,右击新增加的Images文件夹并单击Add an Existing Item。找到保存本书下载代码的文件夹,可能是C: BegASPNET2WroxUnited。打开Images文件夹并选择所有的图片。单击Add按钮将这些图片从下载文件夹中添加到所创建站点的Images文件夹中。(6) 现在创建第一个页面,该页面显示Wrox United的历史。右击站点的根目录(Solution Explorer顶部的C:Chapter01)并从弹出的菜单中选择Add New Item。选择Web Form模板并将其命名为History。接受其他默认设置。单击Add,切换到Design视图。除了在页面上输入文本之外,也可以从下载示例的文件中复制球队的一小段历史。切换到Windows Explorer并打开C:BegASPNET2ChaptersBeginChapter01目录。找到名为History.txt的文件,打开该文件并复制几段文本。切换回VWD并将这些文本粘贴到页面中。单击工具栏上的磁盘图标保存该页面。(7) 按第(6)步的方法创建Mishap

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论