1.7 VWD Express——一种开发环境
人和多数动物间的根本区别是人会使用工具。在编程早期,用来编写程序的工具是非常简单的。如今我们享受用于开发软件的非常复杂的工具带给我们的好处。工程师几乎掌握了人类弱点的各个方面(主要和记忆能力与大脑和外界的联系有关)并创建了弥补这些弱点的工具。把这些工具合并到一起组成一种称为集成开发环境(IDE)的软件。本文中使用的IDE是Visual Web Developer Express(VWD)。
VWD包含许多开发工具。首先是编辑器,用它可以构建Web页面。此编辑器用IntelliSense进行了增强,IntelliSense是一个能够为开发者完成键入命令和提供适当选项的工具。另外,可以把工具栏上的图标拖动到编辑器,并且能自动把一块代码键入到编辑器。能够使代码自动进入页面的另一种方法是当试图完成更复杂的任务时弹出许多向导。VWD也包含一个小型文件管理器(File Manager),用来组织ASPX以及相关的文件和文件夹。同样地,也有一个Data Explorer,提供对Web站点数据源的导航。另外还包括一组故障解决工具。最后,VWD使用Microsoft的一个Web服务器进行测试,它的名称为ASP.NET Development Server,将在下一节中论述。如果超出本书范围,可以找到用于更复杂情况的工具,包括在开发团队间进行代码版本管理。
1.7.1 ASP.NET Development Server介绍
在前面提到过ASP.NET Development Server,它是随VWD一起提供的轻量级服务器。这是在VWD Beta版时被称为Cassini的轻量级服务器。ASP.NET Development Server和IIS(包含在.NET Framework内)都支持所有的ASPX和相关的页面,因此在部署时不需要更改站点。但是在这两种服务器之间存在很多不同之处。
两种服务器使用不同的安全模型。IIS是一种服务,Windows中的每种服务都要求有一个用户。IIS的特殊用户账号是ASPNET。ASP.NET Development Server作为应用程序运行,它使用当前登录的Windows用户账号。这使安装ASP.NET Development Server更加容易,因为不需要在Windows中创建特殊的ASPNET账号。实际上,如果安装了VWD,ASP.NET Development Server的安装是透明的。
ASP.NET Development Server有3个方面的不利因素。第一,它是设计者在他们的开发机器上测试页面的工具,因此它的用户不能超过一个。第二,由于对用户模型的简化,ASP.NET Development Server不能支持健壮的安全方案。ASP.NET Development Server应该只运行在封闭环境或健壮的防火墙后面。第三,当在ASP.NET Development Server中运行页面时,它锁定了后面VWD中的页面。为了使页面解除锁定,必须要关闭浏览器,当对站点做多次更改并测试时,这很不方便。因此,许多开发者甚至在他们的开发机器上也使用IIS,以便他们在VWD中处理页面前不需要关闭浏览器中的页面。这样做的不利之处是必须配置开发机器以提供IIS,必须设置正确的授权、建立安全控制和创建虚拟根目录。在附录B中学习如何进行这些设置。如果不想学习IIS的设置,您仍旧可以使用ASP.NET Development Server,只是要在两次修改间关闭浏览器。
1.7.2 VWD的Solution Explorer
ASP.NET 2.0 Web站点以一族文件的形式存储。需要组织这些文件,包括查看它们的名称和关系、复制、创建和删除等任务。它们可以在Windows Explorer中查看和操作。但是不便在VWD和Windows Explorer之间切换。VWD包含一个称为Solution Explorer的类似Explorer的工具,如图1-2所示。默认情况下Solution Explorer显示在界面的右侧,或者可以通过按下Ctrl+Alt+L来重新显示它。把它当做Windows Explorer,把Web根目录当做最高一级目录,不需要从VWD切换。注意Toolbox可能放在Solution Explorer的后面,如图1-2所示。
任何使用Windows Explorer的人都能立刻熟悉Solution Explorer的布局。单击加号和减号图标能展开或闭合文件夹。工具栏上从左侧开始的图标带有一个工具,它可以从Solution Explorer切换到一个属性视图(本章后面有关于它的更多论述)。双向水平箭头执行刷新。双层的文件图标自动隐藏或展开成嵌套的子文件。再往后的两个图标能打开选择的文件以显示它们的用户界面(设计)或代码。双层的浏览图标用来把整个站点复制到部署机器。带有锤子图案位于最右侧的图标能打开Web管理员工具,该工具具有管理站点的功能。
在Solution Explorer底部可以出现一个小任务栏,它用来显示Solution Explorer、Toolbox、Data Explorer和/或Properties窗口的标签。为节省重要的显示器资源,这4种工具经常是叠放在一起,标签提供在它们之间的快速切换。例如,在图1-2中,Toolbox也是打开的(虽然隐藏在Solution Explorer后面),单击Toolbox标签将把Solution Explorer隐藏在它后面。严格来说它们并不是Solution Explorer的一部分,而是容纳叠放在一起的4个工具的窗格。
在Solution Explorer的主窗格中是组成站点的文件列表。顶部是根目录,通常位于C:\websites\MyWebSiteName。在WroxUnitedCS例子中使用C:\BegASPNET2\WroxUnitedCS。文件在它们的子文件夹中显示。与在Windows Explorer中使用的方法相同,可以在文件夹中展开、折叠、剪切、复制和粘贴文件。Solution Explorer能识别在.ASPX文件和它的.ASPX.VB或ASPX.CS文件之间隐含的链接(第6章和第9章中有关于这方面的更多论述)。如果复制.ASPX文件,则代码文件也将随它一起移动。
可以右键单击一个文件夹,然后选择Add Existing Item。出现的对话框允许导航到计算机和网络(包括FTP站点)的任何位置以引入文件。例如,当构建项目时,有几次会询问是否使用本书中从www.wrox.com下载的图像或文本文件。可以使用Solution Explorer从下载文件夹向Web站点添加一些项。
在开发期间,ASP.NET 2.0站点不包含特殊的文件注册系统。包括ASPX页面、代码文件、数据文件和图像等的所有文件都包含在一个通常的Windows文件夹和子文件夹结构中。如果没有打开VWD,可以直接从Windows Explorer剪切、复制和粘贴站点文件。
Solution Explorer(诸如下节论述的Toolbar、Data Explorer和Properties窗口)可以以两种模式之一放在页面中:浮动的或可停靠的。浮动的模式允许窗口放在界面的任何地方,与通常基本大小(不是最大化)的窗口相似。可停靠的模式自动把窗口放在下面5个位置之一:顶部、底部、左侧、右侧或叠放在其他窗口上。通过选择一个窗口,然后依次单击菜单中的Window_Floating或dockable更改模式。在可停靠的模式中当拖动窗口的标题栏时,可以看到一些半透明的定位器(如图1-3所示)。把标题栏拖动到一个定位器上,则窗口将自动调整大小并把自己放置在正确的位置。

图1-3
学过如何更改VWD Express IDE后,现在转向学习创建Web站点和页面的方法。
1.7.3 使用VWD创建、打开和使用Web站点
为了创建新站点只需要打开VWD,然后单击Menu_File_New Site。从向导中选择ASP.NET Web Site。假定要创建一个用于开发的本地副本,设置文件系统的位置,然后浏览到该路径。通常情况下这将是C:\BegASPNET2\MyWebsiteName(我们的练习站点允许使用C:\BegASPNET2\WroxUnited使之和以前的书籍向后兼容)。本书在Language列表中使用C#选项。VWD自动创建一个文件夹、一个默认页面和一个子文件夹以保存数据。
ASP.NET 2.0引入了一种非常简单的用于站点的文件组织和代码注册的模型。站点的所有文件存储在一个文件夹及其子文件夹中。在部署时,把完整的一组文件从开发机器复制到主机。因此,不需要像以前版本的ASP那样创建虚拟根目录。通过VWD部署更加简单化:如果选择Menu_Website_
Copy Website,则VWD打开一个FTP窗口,可以通过此窗口向主机发送新的文件或更新主机的文件。
为了对一个已有的站点进行编辑,选择Menu_File_Open Web Site。如果在本地工作,则可以浏览到文件夹。在窗口的左侧,VWD显示一个带有选项的菜单,该菜单通过FTP或本地的IIS安装直接对页面进行操作。
创建站点以后,可以向站点上添加页面。通常开始先添加一些用来组织页面的文件夹。右键单击一个已存在的文件夹,然后单击选项以添加文件夹。选项是普通的文件夹或者是ASP.NET中保留的文件夹名称(包括用于代码、主题和Web引用的文件夹)。
为了添加页面,右键单击文件夹,然后单击Add New Item。向导中提供许多选项。现在,只需要创建Web表单,但是看一下其他选项以了解VWD和ASP.NET 2.0的功能。为新页面取一个名称并设置它的语言。在后面的几章中论述两个复选框。介绍了怎样创建站点和页面之后,下面的实验将应用这些知识,要求创建Wrox United站点和几个页面。
1.7.4 样例代码(下载)目录
为了容易学习,每章有单独的代码,每章有两个目录,包含在两个高一层的目录之一下面。Begin目录包含准备学习的样例——它是没有做任何更改的样例。End目录包含以后所完成的样例,因此可以把这些作为学习示例时的参考,或者当示例中要求剪切和粘贴代码时,可以按着指示去做。
Begin和End目录出现在章目录下,这两个目录下是每一章的目录。所以本章的开始样例在Chapters\Begin\Chapter01目录下,而完成后的代码在Chapters\End\Chapter01目录下。一些章节是关于主WroxUnitedCS应用程序的,因此包含WroxUnitedCS目录的副本,而其他的则没有WroxUnitedCS样例。这样做的原因是一些方法使用小的样例比使用完整的可运行的应用程序作为样例更容易理解。但是所有的方法都在主应用程序中使用。
由于每章具有一个单独的目录,一些目录包含完整的WroxUitedCS的副本,样例非常大。但好处是每章与其他章节保持独立,这可以在完成某一章时不会把哪些代码是哪一章的弄混淆。
除了每一章的代码外,WroxUnitedCS应用程序包含最终的应用程序代码。它可能与样例稍微有些不同,但是数据可能更完整,并且一些页面看起来更美观。
一、实验 创建Wrox United站点和两个练习页面
1.打开VWD。选择Menu_File_New Web Site。选择ASP.NET Web站点模板并在File System中把它定位到C:\Websites\WroxUnitedCS(可以使用Browse按钮导航到此目录)。确保Language选项设置为Visual C#。单击OK。在Solution Explorer中可以看到文件夹位于窗口的右侧。如果没有看到,则选择View_Solution Explorer。注意VWD自动构建了3项:一个名称为App_Data的文件夹,一个名称为Default.aspx的页面和(如果把Default.aspx展开)一个名称为Default.aspx.CS的文件,该文件包含默认页面的代码。
2.在VWD的中间部分,可以看到一块用于编辑页面的区域,在其中已经打开了Default.aspx页面。注意左下角的Design和Source选项。依次单击每个选项将查看代码和代码显示的结果。在Design View时,单击页面并键入简单文本Home Page。按下Ctrl+S保存页面。
3.创建一个存放图像的文件夹,进入Solution Explorer,右键单击站点的根目录(可能显示为C:\...\Chapter01,因为Solution Explorer隐藏了部分路径),然后单击Add Folder of the regular type。把新生成的文件夹命名为Images。
4.可以在VWD外部操作站点的文件和文件夹。打开Windows Explorer并导航到C:\BegASP-
NET2\Chapters\Begin\Chapter01,看一看与在VWD的Solution
Explorer中所看到的一样的文件夹和文件。
5.返回到VWD,右键单击新生成的Images文件夹,然后单击Add an Existing Item。导航到存储本书下载文件的位置,可能为C:\BegASPNET2\WroxUnitedCS。打开Images文件夹并选择所有的图像。单击Add,把这些图像从下载文件夹复制到站点的image文件夹。
6.停留在VWD中,现在创建下一页页面,Wrox United的历史。右键单击站点的根目录(位于Solution Explorer上部的C...\Chapter01),然后从菜单中选择Add New Item。选择Web Form模板并将其命名为History。接受其他的默认设置。单击Add,然后切换到Design View。可以从下载的文件中复制球队的简要历史,而不用在页面中键入文本。切换到Windows Explorer并导航到下载的Chapter01\Begin\Chapter01文件夹。查找名称为History.txt的文件并打开它,然后选择几段。切换回VWD并将文本粘贴到页面中。单击工具栏上的软盘图标以保存页面。
7.对Mishaps页面重复步骤6,该页面的内容来自于Mishaps.txt.文件。
二、工作原理
在此练习中,将创建一个站点和开始的几个页面。使用VWD中的菜单选项创建站点,能自动生成一些标准文件夹和文件。采纳Microsoft的建议把站点存储在C:\Websites目录下。像所看到的Images文件夹一样,可以容易地向根目录添加子文件夹以组织文件。
在VWD中创建页面时,一些模板可供使用。选择Web Form作为标准的无格式的ASP.NET 2.0 Web页面。使用剪切和粘贴从其他文件引入文本也不会有什么问题。
已经了解在VWD中不要求特殊的文件索引和存储机制。文件存放于Windows 在硬盘上组织的文件夹中。但是,最好在VWD中创建和添加文件,这能使Solution Explorer视图和其他的VWD部件随着更改保持最新。
1.7.5 运行页面
创建页面以后,它就可以供用户使用。因为为了创建最终的HTML页面,服务器实际上要在server-side控件中执行代码,这种提供页面的方式也称为运行 页面,好像在运行程序一样。VWD有一个绿色的三角工具图标可用来启动运行,或者可以按下F5键或选择Menu_Debug_Run. VWD,然后执行以下步骤:
1.站点的所有页面编译成Microsoft中间语言(MSIL,Microsoft Intermediate Language),然后把它们和支持文件存储在组合体中。这时开发语言之间的不同(例如VB和C#)消失了,因为结果是MSIL的形式。但是,没有对运行页面的硬件进行优化。
2.组合体被实时编译(JIT)——从MSIL编译成对提供服务的机器优化的本机代码。
3.在页面中放置了锁,可以防止页面在ASP.NET Development Server中打开时在VWD Design View中对页面进行更改。
4.VWD启动ASP.NET Development Server,浏览器打开并向ASP.NET Development Server请求页面。
初学者的一个常见错误是当页面在由ASP.NET Development Server提供服务的浏览器中仍旧打开时,试图在VWD’s Design View中更改页面。
当站点变得更大时,将会发现编译花费的时间更长了。可以按下Ctrl+F5运行页面,同时只编译当前页面。在下面的实验中,练习运行前面的实验中创建的History和Mishaps页面。
一、实验 运行页面
1.在VWD的Solution Explorer中,双击History.aspx文件打开它(如果它还没有打开)。
2.单击工具栏上的Run图标(绿色箭头)。如果出现建议添加带有Debug模式的Web.config的消息,则接受该建议。注意这时浏览器打开并显示History页面。
3.在Windows托盘中,带有齿轮的黄色页面图标表示ASP.NET Development Server在运行。双击它,可以看到它指向您的Web站点。关闭浏览器,ASP.NET Development Server解除对页面的锁定。
4.返回到VWD并打开Mishaps页面。这一次,在开始运行页面时注意观察VWD的左下角。将看到一条已经开始构建的消息和暂时显示一个错误列表框。在浏览器中看到Mishaps页面之后,切换回VWD。注意页面在浏览器中显示时,页面(处于Design View)是锁定的。
二、工作原理
本实验集中于论述从VWD中运行页面。可以通过单击绿色箭头来开始运行。此操作启动ASP.NETDevelopment Server。它也会打开浏览器并向ASP.NET Development Server发送一个页面请求。运行后,可以在Windows的系统托盘中看到服务器图标。
1.7.6 DesignSurface
VWD界面的中央区域由范围很大的Design Surface占用。向ASP.NET 2.0添加内容的大多数工作都是在这个区域完成的。可以在Design View(它像在浏览器中显示的那样把页面显示出来)和Source View(它在文本窗口中显示代码)之间切换(如图1-4所示)。通常,由于Design View支持许多拖放操作功能,因此在Design View完成大多数任务既容易又快速。当需要做较小的更改并超出了VWD的拖放操作界面的能力时,可以切换到Source View。
在Design View中向页面添加控件时,将弹出一个常见任务菜单。此袖珍菜单包含最常用的对控件进行设置的功能。不是所有的控件都具有智能任务面板,但是如果提供任务面板,可以使用选中的控件顶部角上的黑色小三角形(如图1-5所示)打开和关闭它。

图1-4 图1-5
在Design Surface中可以通过打开Tools菜单并选择Options来更改几个默认设置。当页面在VWD中打开而且处于编辑状态时,这些选项能改变页面显示给您(作为程序员)的方式。这些设置不是用来改变显示给Web站点访问者的页面外观。可以选择以Design View或者Source View打开一个页面,也可以选择自动打开智能任务面板。能够修改制表符和缩进空格的个数有助于使项目和公司的Web页面编码规范相一致。
在Design Surface的底部是导航工具,它在大型复杂的文档中有用。可以看看导航标签以找出插入光标当前处于何处。当前的设置将突出显示,如图1-6所描绘的。也可以在Design Surface中单击一个标记,整个标记就会被选中。
在许多方面设计器像是一个文字处理器。但是VWD也提供两种可以选择的显示页面的方式(Design和Source)以及增强了在页面中导航的能力。下一节论述VWD如何向页面添加各种功能部件。
1.7.7 Toolbox
VWD在Toolbox中提供一组ASP.NET server-side控件,可以容易地把它们拖放到页面上。第3章详述各种server-side控件以及如何使用它们;现在只是总体感受一下如何使用Toolbox。通过选择Menu_View_Toolbox或者按下Ctrl+Alt+X能够显示出Toolbox。当显示Toolbox时,通过拖动它的标题栏可以把它移动到界面上新的位置。当把Toolbox拖向不同的区域时,它显示一个指针图标,允许把Toolbox拖动到顶部、底部、左侧、右侧以及其他窗口上。如果试图使Design Surface的大小最大化,可以在界面上同一位置把Solution Explorer和Toolbox叠在另一个之上。
Toolbox组织为几个面板,每个面板上放置一组相似的控件。面板可以展开以显示其上的工具或将其折叠以节省上面的空间。不同的安装版本会有一些不同,但是一组典型的面板包括:
● Standard:大多数ASP.NET 2.0 server-side控件。
● Data:Data source和Data-bound控件。
● Validation:拒绝用户输入允许范围以外值的控件。
● Navigation:菜单和菜单路径。
● Login:验证控件。
● WebParts:用户可以重新排列或隐藏的大型组件。
● HTML:通用(非ASP)标记。
● General:可以自定义的。
图1-7描绘的是在屏幕上显示的Toolbox。
单击加号图标展开一个面板以显示其可用控件的列表。图1-8显示Login和Data面板展开后的情形。

图1-7 图1-8
General面板开始时是空的。在创建了部分页面之后,可以选择该页面并把它拖动到General面板中以创建自己的可重用工具。这在想要将一组带有格式的控件复制到几个页面上时有用。
在Toolbox标题栏的右侧有一个图钉图标,如图1-9所示。当单击该图标时,图钉转变为水平的,这意味着在不使用Toolbox时它将自动隐藏,只显示它的标题栏。
Toolbox的外观在使用时会改变。例如,当面板被选中时它们的标题会改变。
当鼠标移动到Toolbox标题栏上时,Toolbox将展开以供使用,如图1-10所示。

图1-9 图1-10
在此实验中,练习使用VWD的Design View、Source View以及Toolbox的功能。
一、实验 使用View和Toolbox
1.继续在VWD中使用Mishaps页面。
2.切换到Design View。在Toolbox中,展开HTML面板并向下滚动到面板的底部。把一个Horizontal Rule从Toolbox上拖动到页面上(段落之间的任何位置)。
3.下一个目标是向History页面的底部添加一个Calendar。打开Toolbox的Standard面板,找到ASP.NET Calendar控件。把它拖动到页面上。(双击控件执行相同的操作。)通过单击选择Calendar,同时注意右上角的指向右侧的小箭头。单击它以显示智能任务面板。单击Autoformat,选择一种格式,然后单击Apply。看看使用VWD的对话框同时更改许多表现规则是多么容易。
4.在VWD中打开History页面。用Design View方式显示它。把插入光标移动到第一行以<%@ Page...>开始的标记。注意导航指示栏(设计面板的底部)显示您位于<Page>标记的位置。单击<Page>标记。您将看到在设计面板中整个标记被选中。
二、工作原理
正如所见,通过添加简单的HTML Horizontal Rule,Toolbox提供向页面中拖放元素的功能,而不用键入它们的标记。甚至像日历这样的复杂结构也可以通过拖放操作添加到页面中。在页面上时,可以通过智能任务面板修改页面。
1.7.8 属性窗口
对象(例如,Web页面、ListBox server-side控件或到数据源的连接)具有属性。属性是决定对象如何显示和具有哪些行为的设置。在以前版本的ASP中,很多目标需要通过编写冗长和复杂的代码来实现。但是在ASP.NET 2.0中,很多这种代码已经由Microsoft预先编写并封装在server-side控件中。属性决定行为如何表现出来。属性可以非常简单(例如,BackgroundColor),或者非常复杂(例如,EnablePaging)。同样,分配给属性的值可以像BLUE一样简单,也可以像一个多行的SQL语句一样复杂。可以通过直接向Code View中键入值来设置属性值或者使用属性窗口(如图1-11所示)设置属性值。
通过按下F4或者通过选择Menu_View_Properties显示属性窗口。属性组织到面板中,面板可以折叠或展开(与Toolbox相似)。例如,在图1-11中最上面的三个面板是折叠的。在属性窗口的顶部是包含当前打开的页面中所有控件名称的下拉列表。其下面的图标控制属性列表中的项是以自然方式排列还是以字母顺序排列。闪电图标将改变属性窗口,因此它显示事件(该主题在第6章论述)而不是属性。在窗口主体的左侧显示属性名,在右侧显示属性的当前值。位于窗口底部的框给出有关当前选中属性的一些帮助。
更改属性值的基本方法是选择一个对象(通常为一个控件),然后找到所关注的属性并设置它的值。可以在Design View中单击对象或者在Source View中把插入光标定位到对象来选择它。或者可以

图1-11
从属性窗口顶部的下拉列表中选择对象。常出现的一个错误是试图更改属性但是却没有首先选择想要更改的对象。结束在前面的工作中选中的对象的更改。
设置属性的值可以有几种选择。如果属性具有有限数量的允许值(例如,true和false),可以双击属性名以在属性值间切换。如果属性值有更多的选项,但是数量仍旧是有限的,属性值将在下拉列表中。如果一些属性具有很多选项,则在它们的值选择框中提供一个省略号按钮,通过该按钮能进入到一个对话框。最后,一些属性可以接受字符串,因此在文本框中设置它们的值。选择和切换值总是比键入值要好。更改一个值以后,必须按下Enter或者Tab键,或者单击另外的属性以设置该值。这时Design View才会显示该更改。
也可以通过向Source View中键入值来设置属性值。把插入光标定位到一个标记内并按下空格键以显示一个IntelliSense列表,列表中是所有可以插入到插入光标位置处的属性。键入属性的前一两个字符,然后键入等号。IntelliSense则会显示出所有合法的值(如果值的数量是有限的),然后再键入想选择的值的前一两个字符。通过键入空格结束。注意如果可能的属性值范围是无限的,则不会出现属性值的列表。例如,如果属性值是SQL语句,则必须键入语句而不会出现IntelliSense。
1.7.9 错误列表窗口
当出现问题时有两种主要途径可以获得关于问题的提示。第一种是传递给浏览器的页面上的报告,第二种是VWD内的错误列表窗口。
如果下面以阴影显示的一行存在于Web.config文件中,则ASP.NET 2.0在发送给浏览器的页面上给出一个错误报告(如图1-12所示):
<system.web>
<compilation debug="true">
</compilation>

图1-12
注意第一次运行(F5键)页面时将使用默认值<compilation debug="true" strict="false" explicit="true"/>。
因为默认值为true,如果没有特殊的属性将打开调试功能。因此以下的例子中如果没有更改默认值,也是debug=true。当然,把默认值明确设置为true对团队中可能查看设置的其他程序员会有帮助:
<system.web>
<compilation></compilation>
页面上的严重错误会在浏览器中显示典型的带有错误消息的白色和黄色页面。紧接黄色块的下面是引起问题的文件名和包含错误的行。对于所有的错误都一样,错误实际上可能只是与显示的行号有关,但是这应该能够给您一条好线索。注意在部署站点时应该把Web.config中的debug命令设置为false以提高性能和减少能为黑客提供的信息。在第15章更加深入地论述错误处理。
来自VWD的通过错误窗口列表识别错误的第二种方法在图1-13中描绘。默认情况下,直到运行页面之前窗口一直隐藏。可以通过选择Menu_View_Error List强制显示窗口。窗口中显示把页面转换成MSIL过程中遇到的所有错误。

图1-13
注意在错误窗口的顶部有3个可以单击的图标:Errors、Warnings和Messags,它们显示构建页面时创建的不同类型项的列表。隐藏某一类型的项没有把它从列表中删除;其实,这么做只是隐藏了某些项以使列表更短。从左侧起第二列标识错误出现的顺序。
错误 能导致整个页面或它的一部分失败。例如,引用一个不存在的对象。
警告 是可能由VWD在构建页面时解决的问题(例如,缺少结束标记)。
消息 是程序员可以包含在代码中的在IIS构建页面时显示的几组文本。
查看表项时可以通过单击栏目标题来分类选择。按住Shift时可以单击下一栏以进行确定(确定在主栏中有相同值的记录顺序)。可以通过拖动分隔符重新调整栏的大小,或者通过向左或右拖动栏名称来重新排列它们。双击某一项能打开引起问题的文件并使光标跳到出问题的行。
在本实验中练习更改History页面中图像控件的属性。然后创建一些错误并观察它们的结果。
一、实验 使用属性和错误列表窗口
1.在Design View中打History页面。在Solutions窗口中,打开Images文件夹,然后将名称为logo-yellow的JPEG图像拖动到History页面上部。VWD将自动创建一个source设置为JPEG的图像。
2.单击图像以选择它,然后切换到属性窗口(或按F4打开它)。把height的值从447更改为100并按Enter键以设置该值。在设计面板上可以立即看到更改的结果。
3.现在从Source View中修改属性。找到<img>控件和它的height属性。把height的值从100更改为300。单击绿色箭头(或按F5键)运行页面,查看运行后的结果。
4.关闭浏览器并回到Source View。把插入光标定位到<img>标记中height="300"的结束引号的后面,然后按下空格键。这将打开IntelliSense列表,列表中包括当前所有适合页面的属性。按下t键然后再按下i键以使列表向下移动到Title属性。按下等号(=)键以关闭IntelliSense,然后键入包括开始引号和结束引号在内的“Wrox Logo In Yellow”。运行页面,注意在浏览器中当鼠标移动到图像上时可以看到创建的标题。关闭浏览器。
5.下面引入一个非致命的错误。在Source View中打开History页面,然后找到页面顶部附近的<h1>标记。把<h1>标记更改为<H1xx>,然后运行页面。浏览器打开,会发现文本“Wrox United——a potted history”没有以标题1的样式显示出来。关闭浏览器,切换到VWD查看错误列表窗口。如果错误列表窗口不可见,则选择Menu_View_Error List以显示它。注意列表中显示两条错误。第一条是注释:不支持第3行上的“h1xx”。第二条是:第4行的结束标记</h1>不再与开始标记匹配。
6.最后的练习中引入一个致命错误。在Source View中定位到页面的顶部,把第一行的Language="C#"更改为Language="Esperanto",然后运行页面。
7.在本书的每一章中都需要解决很多类型的问题。目前,删除<img>标记,把错误的<h1xx>恢复为正确的<h1>,把language更改回C#,把页面更改成原始形式。
8.保存页面。
二、工作原理
实验中使用三种方法更改属性值。首先在Design View中工作,通过向属性窗口中键入属性的新值来更改属性值。然后通过向源代码中手动键入新值来更改属性值。最后,使用IntelliSense指导,向已有的控件中添加属性。
观察了两种类型的错误(致命的和非致命的错误)产生的结果。在第一种情况中,虽然错误的标记<h1xx>使文本以默认样式而不是以标题1的样式显示,但是ASP.NET 2.0仍旧能够显示页面。虽然能够显示页面,但是返回到VWD,能看到错误消息记录到错误列表窗口中。当把language的值更改为一种不支持的语言时,这引入了一种更加严重的错误。ASP.NET 2.0不能克服这种错误,因此能看到两种结果:在浏览器中看到带有故障解决信息的错误页;回到VWD中能看到错误列表项。
1.7.10 VWD的Database Explorer
当开始处理数据(在第7章及以后的各章中)时,可以使用VWD中的工具以获得有关数据源的信息。此信息包括表和列的确切名称。实际上,正如稍候将在本书中看到的,可以把列拖动到设计器中,VWD将执行设置适当的控件以显示来自这些列的数据的所有任务。现在,为了在Solution Explorer中对这些进行理解,可以双击Access MDB的名称以便在Access(假定已经安装了Access)中打开该文件。对于SQL Server数据库(在本书中使用),使用名称为Database Explorer的工具对数据库做更多的浏览以及更改它的数据和属性。在附录D中对这些功能进行详细地论述。






