1.1 VS 2010集成化开发环境
VS 2010是微软推出的最新版本的集成化开发环境。这个工具集成了多语言环境的项目开发能力。可以说在.NET Framework平台上,只需要一个Visual Studio,就能实现所要实现的大多数应用程序。VS 2010包括种类丰富的设计工具、强大的调试工具,以及智能感知、错误捕捉及建议类型的支持。
1.1.1 使用IDE集成开发环境
在安装完VS 2010并首次打开时,会提醒用户选择一个开发环境,本书将以Visual C#作为开发平台,因此选择Visual C#开发环境。当VS 2010启动后,将显示图1.1所示的起始窗口。该窗口与普通的Windows窗体区别不大,同样具有菜单栏、工具栏,然后是一些自动停靠的窗口。
图1.1 VS 2010的IDE窗口
根据用户的个人喜好,这些窗口的排列可能不相同。开发人员可以在主菜单的“视图”菜单中来选择要显示的窗口,下面对开发过程中比较常用的几个窗口进行详细介绍。
1.1.2 使用VS 2010解决方案资源管理器
解决方案资源管理器窗口是VS管理项目文件的统一位置。在VS 2010中,解决方案是管理项目的集中位置。一个解决方案可以包含一个或多个项目,解决方案与项目的关系如图1.2所示。
从图1.2中可以看到,在一个解决方案中,可以包含Windows Forms项目、类库项目、Web服务项目及其他的解决方案文件。解决方案资源管理器提供了很多用于辅助项目管理的选择项,解决方案文件项目保存在.sln和.suo文件中,用于存储定义解决方案的元数据。VS 2010解决方案资源管理器提供了管理多个项目的能力。例如,图1.3是一个多项目的解决方案资源管理器,该资源管理器以不同的图标显示了不同的项目类型。
在解决方案资源管理器中,当前激活的项目将显示为粗体字,可以用鼠标右键单击相应的项目名称,在弹出的快捷菜单中选择“设为启动项目”命令,来激活当前的项目。
图1.2 解决方案示意图
图1.3 多项目的解决方案资源管理器视图
开发人员可以用鼠标右键单击解决方案,在弹出的快捷菜单中选择“添加”|“新建项目”命令,或者选择“添加”|“现有项目”命令,向解决方案资源管理器中增加新的项目。也可以用鼠标右键单击项目名称,在弹出的快捷菜单中选择“移除”命令,从解决方案资源管理器中移除现有的项目。
解决方案资源管理器上面的工具栏非常有用,图1.4列出了这些工具栏的具体作用。
图1.4 解决方案资源管理器工具栏
1.1.3 使用文档窗口
文档窗口是开发人员在编辑应用程序时主要的编辑窗口。由于VS 2010中可以编辑多种不同类型的文件,比如ASP.NET页面、资源文件、Windows窗体文件等,每种类型的文件都具有一个默认的编辑器。当用户在解决方案资源管理器中双击相应的文件时,将使用默认的编辑器打开文件。图1.5显示了VS 2010中的文档窗口。
图1.5 VS 2010文档窗口
如果VS 2010没有为指定的文档提供默认的文档窗口,开发人员也可以用鼠标右键单击所要打开的文档,在弹出的快捷菜单中选择“打开方式”命令,将弹出图1.6所示的“打开方式”窗口,可以在列表中选择其他的编辑器或添加新的编辑器。
图1.6 “打开方式”窗口
1.1.4 工具箱窗口
工具箱窗口与文档窗口紧密结合,当切换到不同的文档窗口时,工具箱窗口的内容也会相应地发生改变。工具箱窗口的主要目的是提供可拖放的控件给开发人员,让开发人员在指定的文档窗口上添加控件。工具箱的内容依赖于当前的项目类型,比如当设计一个Web页面时,将会看到图1.7所示的工具箱窗口。
工具箱窗口由多个选项卡组成,每个选项卡包含不同类型的控件,比如在“数据”选项卡中,包含与数据操作相关的一些控件,开发人员也可以定制工具箱。用鼠标右键单击工具箱,在弹出的快捷菜单中选择“添加选项卡”命令,即可为工具箱添加一个新的选项卡。然后可以从“标准”选项卡中拖动一些控件到该选项卡中。也可以用鼠标右键单击选项卡,在弹出的快捷菜单中选择“选择项”命令,将会弹出图1.8所示的“选择工具箱项”窗口。
图1.7 工具箱窗口
图1.8 “选择工具箱项”窗口
在“选择工具箱项”窗口中有6个子项,让开发人员可以选择.NET Framework组件、COM组件、WPF组件、Silverlight组件、System.Workflow组件和System.Activities组件。如果开发人员的工具项位于自定义的程序集中,可以单击“浏览”按钮,选择工具所在的程序集文件或可执行文件。然后单击“确定”按钮,所选的工具项会被添加到工具箱指定的选项卡中。
1.1.5 错误列表和任务列表窗口
错误列表和任务列表窗口是两个非常相似的窗口,错误列表窗口将分类显示出由VS 2010检测到的信息,这些错误是用户在输入或者编译时产生的。
任务列表显示开发人员定义的任务信息以便于追踪。任务列表和错误列表都有一个文本表示的描述,和一个可选的链接到指定代码位置的链接。默认情况下,只要项目中有错误,错误列表窗口都会显示出错误的信息。例如下面的代码故意去掉了代码行最后的分号,则VS 2010会自动地在窗口中显示一条错误信息。
protected void Page_Load(object sender, EventArgs e) { //为Label1的Text属性赋予当前的时间字符串 Label1.Text = DateTime.Now.ToString() }
错误信息的显示如图1.9所示。
图1.9 错误列表窗口显示的错误信息
任务列表用于添加和显示当前项目中的任务,也就是TODO列表,如果在VS 2010中没有显示任务列表,请在主菜单中选择“视图”|“任务列表”菜单项,显示出任务列表,如图1.10所示。
图1.10 任务列表窗口
可以单击图标添加新的用户任务。任务列表还有一个非常有用的功能,用来显示代码中添加的TODO注释。例如在如下的代码块前面添加了一个TODO注释:
//TODO:当Form加载时,根据当前用户的权限来显示信息 protected void Page_Load(object sender, EventArgs e) { //MYTODO:为Label1的Text属性赋予当前的时间字符串 Label1.Text = DateTime.Now.ToString(); }
现在,在任务列表窗口中选择注释项,则显示出TODO注释,如图1.11所示。
图1.11 TODO注释
用户可以双击TODO注释,代码编辑器将自动跳转到注释所在的位置,并将注释进行高亮显示,这对于代码注释或者是批注代码重点十分有用。必须在注释前加TODO或者其他的标识符,才能被VS 2010识别,用户可以在主菜单中选择“工具”|“选项”命令,弹出图1.12所示的“选项”窗口。
图1.12 “选项”窗口
注意:所有自定义任务及断点都保存在一个隐藏的解决方案文件中,因此如果重命名项目,将会导致这些信息的丢失。
依次选择“环境”|“任务列表”,可以添加自己的标记。在“名称”文本框中输入标记的名称,然后单击“添加”按钮即可。下面在代码中添加自定义的MYTODO标记。
protected void Page_Load(object sender, EventArgs e) { //MYTODO:为Label1的Text属性赋予当前的时间字符串 Label1.Text = DateTime.Now.ToString(); }
现在可以在任务列表中看到使用MYTODO标记的注释,如图1.13所示。
图1.13 自定义标记注释
1.1.6 服务器资源管理器
服务器资源管理器提供了一个本机服务器资源的树状视图,该窗口类似于操作系统的“计算机管理”窗口。一般开发人员使用服务器资源管理器来查看事件日志、消息队列、性能计算器、系统服务,以及操作SQL Server数据库。服务器资源管理器让开发人员不仅可以查看服务器资源,还可以与服务器资源进行交互,最常使用的是创建和查询数据库的操作,如图1.14所示。
图1.14 服务器资源管理器
1.1.7 使用代码编辑器
VS 2010在代码编辑方面可以说是最优秀的,本节将详细介绍代码编辑器方面的几个增强特性。为了开始编写代码,通常可以按F7键切换到后置代码视图,也可以按Shift+F7组合键切换回设计视图。代码编辑器具有以下几项优秀的特性,这是很多其他类型的编辑器无法比拟的。
1.代码大纲
代码编辑器会自动为每个命令空间、类、方法的代码片断之间添加折叠符号,使开发人员可以非常方便地折叠或展开代码,以大纲的形式显示冗长的代码片断,对于代码阅读和维护都非常有用。大纲显示样式如图1.15所示。
图1.15 代码的折叠显示
开发人员也可以通过在代码中添加#region和#endregion来增加自己的折叠代码片断,例如下面的代码片断:
if (!Thread.CurrentPrincipal.Identity.IsAuthenticated) { #region 当用户经过授权时,所执行的代码片断 MessageBox.Show("无效的用户授权"); this.Close(); return; #endregion }
在#region和#endregion代码片断之间,编辑器自动添加折叠符号,如图1.16所示。
图1.16 自定义折叠代码片断
除了单击“+”和“-”小图标折叠代码之外,还可以用鼠标右键单击代码编辑器,在弹出的快捷菜单中选择“大纲显示”命令,在弹出的子菜单中可以折叠或显示所有的代码,还可以取消自动大纲显示特性。
2.自动成员列表
VS 2010代码编辑器的自动成员列表功能非常完美,当开发人员输入一个字符时,VS 2010推断出用户可能需要键入的类名、关键字等产生一个列表。开发人员通过上下按键选择相应的成员,按Enter键就自动加入到代码编辑器中。当开发人员输入一个类名时,VS 2010的自动成员列表会列出属于该类的所有成员。自动成员列表这个功能强大与否,直接影响到开发人员的生产效率。图1.17显示了VS 2010的自动成员列表功能。
图1.17 VS 2010的自动成员列表功能
在.NET Framework类库中,一些类的方法可能具有多个重载,代码编辑器也具有列出这些重载方法的参数列表和数据类型的能力,如图1.18所示。
图1.18 自动参数列表
可以单击图1.18所示界面中的小箭头,来显示不同重载方法的参数列表。
3.错误波浪线
代码错误波浪线是一个非常有用的特性,VS 2010可以检测多种错误条件,比如未定义的变量、属性或方法,以及无效的类型转换等。同时,在错误列表中也会列出下画线中的错误,如图1.19所示。
图1.19 错误列表窗口
错误波浪线并不会影响开发人员继续编写代码,但是当按F5键编译时,则会弹出错误提示,要求开发人员进行更改才能继续编译。
4.自动导入命名空间
如果用户使用了一个类,但是并没有在using区添加该类所在的命名空间,则编译时会出现错误。VS 2010提供了一个非常实用的功能,可以自动导入命名空间。
例如,笔者在代码编辑器中使用FileStream类,但并没有添加对System.IO命名空间的引用。代码编辑器会对不能识别的类名称进行自动颜色显示,并且会显示一个红色的小图标。当鼠标指针移动到这个红色的小图标上面时,会弹出一个小图标。单击这个小图标,会弹出一个选择窗口,使用该窗口,可以自动地在using中添加对System.IO命名空间的引用,如图1.20所示。
本节简要地介绍了VS 2010 IDE中几个比较常用的功能,其实VS 2010 IDE是非常复杂的,甚至有很多书籍长篇大论地讨论了VS 2010 IDE的使用方式,读者也可以参考MSDN中的相关资料。
图1.20 自动导入命名空间