1.1 Visual Studio 2008
最好的ASP.NET集成开发环境(IDE)自然就是微软自家的Visual Studio。Visual Studio系列开发工具是微软公司的战略产品,目前最新的版本是VS2008 SP1。
对于Web开发来说,VS2008相对于VS2005在文件组织方式上并没有革命性的变化,主要是引入了对Ajax,WPF,WCF,Linq等技术的支持。最近推出的SP1包中,主要增加了Entity Framework和Dynamic Data等功能。
VS2008的安装过程这里不再赘述,但请读者注意,最好是在安装VS2008之前先装好IIS,否则就需要使用aspnet_regiis.exe工具将当前版本的aspnet_isapi.dll在IIS中注册,并设置好相应资源文件的处理方式。
图1-1是VS2008的主界面,这个界面几乎是时下流行的IDE标准模式。一直以来,业界都知道微软公司的产品不一定是技术最先进的,但一定会是最好用的。对于程序员来说,最好用就代表着最高开发效率、节约时间、增加编程乐趣;.NET的开发机制配合Visual Studio这个开发环境,正是微软公司产品特点的杰出范例。.NET之所以能够普及得如此迅猛,Visual Studio系列的IDE工具也起到了关键性的作用。
图1-1 Visual Studio 2008主界面
VS2008的基本使用方法本书不做过多的叙述,请读者参阅其他基础书籍。菜单、工具栏、拖曳式面板都是典型的Windows软件风格,相信读者一看就会。在VS2008中,通过“解决方案”来统一管理文件,根据应用的不同,在解决方案下又分为“网站”和“项目”两种类型。下一小节,作者就示范一个网站的建立方法,项目的建立和使用将在后面章节中讲解。
1.1.1 新建一个ASP.NET网站
例1-1:新建一个ASP.NET网站,其网站的根目录为“E:\学习ASP.NET\Calculator”。
步骤1 选择“文件→新建→网站”选项,弹出的对话框如图1-2所示。
图1-2 “添加新网站”对话框
如图1-2所示,这个对话框有以下4点值得注意。
(1)VS2008中可以选择不同的.NET framework版本对项目进行编译,不同的版本所支持的语法和类库是不一样的,但高版本对低版本能够完全兼容。一般情况下选择3.5版本即可,提供其他低版本选项的主要目的是为了方便程序员对旧版本的“解决方案”升级。
(2)网站类型选择“ASP.NET网站”,这里所列出来的项目都是Web站点类型,只有“WCF”这个类型比较特殊,因为它没有写“ASP.NET”前缀。WCF是一种远程访问技术,可以基于Web方式提供服务(类似于WebService),WCF也可以通过Console、WinForm、Windows服务等多种方式提供服务,因此在建立“项目”时也会看到WCF。
(3)网站位置选择“文件系统”选项。网站位置是指ASP.NET网站的根目录所在的文件路径,有文件系统、HTTP、FTP三种方式。“文件系统”这种方式就是指在本机找一个目录作为网站的根目录,读者这里要重点注意的是路径中最后那个目录名称,图中所示为“Calculator”,这个名称将会自动作为解决方案的名称,解决方案的含义在稍后将会讲解。
(4)选择编程语言。对于ASP.NET网站,VS2008默认只提供C#和VB.NET两种选择。“解决方案资源管理器”中出现如图1-3所示的右上方的列表,所对应的本机目录中也生成了相应的文件,如图1-4所示。
图1-3 解决方案资源管理器
图1-4 解决方案所对应的磁盘目录
至此,一个ASP.NET的网站就建立完成,VS在编辑窗口中自动载入了Default.aspx文件的源码编辑视图。
1.1.2 解决方案
“解决方案”是VS2008为了管理网站(或项目)的一个组织文件,对于任何一个VS2008中的网站或是项目,必定属于一个“解决方案”。一个解决方案可以包含多个网站或项目,当通过如上菜单新建一个网站时,就会自动建立一个与网站目录同名的解决方案,例1-1中的解决方案名称为“Calculator”。有兴趣的读者可以在如图1-5所示的解决方案标题上点击右键,在当前解决方案中再建立一个ASP.NET网站,可以看出同一个解决方案下可以管理多个网站。
图1-5 在解决方案上单击右键
解决方案的后缀名是“.sln”,上例中的解决方案全名应为“Calculator.sln”。选中图1-5中所示的解决方案标题(以后就简称为“选中解决方案”,即选中解决方案资源管理器中的解决方案名称)后,在“文件”菜单的下拉列表中会出现“保存Calculator.sln”选项,以保存解决方案文件。
前面建立网站的过程中,只有指定网站路径的文本框,没有指定解决方案文件的存放路径。选中解决方案后,属性窗口的(默认位于解决方案资源管理器的下方,如果属性窗口没有出现,可以通过菜单“视图→属性窗口”打开属性窗口)路径属性中会显示此解决方案的文件名和路径。
令人惊奇的是,解决方案的文件保存在一个奇怪的目录中,作者的目录是“E:\我的文件\Visual Studio 2008\Projects\Calculator\Calculator.sln”。按照图1-3和图1-4的对应关系,Calculator.sln文件应该保存在“E:\学习ASP.NET”目录下,但事实并非如此。
根据作者的经验,Calculator.sln文件最好是保存到“E:\学习ASP.NET”目录下,这样整个解决方案中所有的文件就全部有序地放置在一起。下面就来讲解如何才能将Calculator.sln存放到所需要的位置。
先看这个“E:\我的文件\Visual Studio 2008\Projects\Calculator\Calculator.sln”默认的保存路径是如何确定的。单击菜单“工具→选项”,在弹出的对话框中选中图1-6所示的“项目和解决方案→常规”页,其最上面的Visual Studio“项目位置”文本框指定的路径就是默认的保存路径。
图1-6 “选项”对话框
图1-6所示的“选项”对话框中还有很多设置页和设置项,读者可耐心地逐项查看,以了解Visual Studio的相关设置内容。
如何将解决方案文件保存到所需要的位置?常用的办法有以下3种。
① 在“选项”对话框中设置项目位置后再建立网站,这不是最好的办法,相对较为麻烦。
② 在解决方案资源管理器中选中解决方案后,再选择“文件→Calculator.sln另存为”选项,将解决方案文件保存到所需要的目录中。此方法比较常用,不过这里推荐使用第3种方法。
③ 打开VS2008后,不要直接选择“文件→新建→网站”选项,而是选择“文件→新建→项目”选项,在弹出的对话框中选择如图1-7所示的“其他项目类型→Visual Studio解决方案”选项,选中右边的“空白解决方案”,定义好名称和位置。
图1-7 建立空白解决方案
在图1-7中要重点注意“名称”和“位置”的填写方式,如例1-1,读者希望将解决方案文件建立在“E:\学习ASP.NET”目录下,则需将名称定义为“学习ASP.NET”,位置定义为“E:\”。读者可以注意到,在这个对话框的右下方有一个“创建解决方案的目录”项是被强制选中的。
单击“确定”按钮后,名为“学习ASP.NET”的解决方案文件就被成功建立了。解决方案资源管理器中只有一个解决方案名称,如图1-5所示。在解决方案名称上单击右键,可以选择新建网站来建立新的ASP.NET站点,或是通过右键菜单的“添加→现有网站…”将“E:\学习ASP.NET\Calculator”目录作为现有网站添加到解决方案中。
下面总结一下建立一个新的网站的完整过程。
步骤1 打开VS2008,新建空白解决方案,并保存解决方案文件.sln。
步骤2 在解决方案条目(解决方案资源管理器中)上点击右键,通过“添加→新建网站”建立ASP.NET网站项目。
例1-2:新建一个解决方案,名称为“学习ASP.NET”,解决方案文件保存于“E:\学习ASP.NET”目录下,并新建一个网站,根目录为“E:\学习ASP.NET\Calculator”。
步骤1 选择“文件→关闭解决方案”(或是重新打开VS2008)命令,删除E盘上的“学习ASP.NET”目录,以及子目录。
步骤2 选择“文件→新建→项目”命令,在对话框中选择“其他项目类型→Visual Studio解决方案”。在新建的对话框中,定义解决方案的名称为“学习ASP.NET”,位置定义为“E:\”。
步骤3 在解决方案资源管理器中的解决方案名称上单击右键,在快捷菜单中选择新建一个网站,网站的位置定义为“E:\学习ASP.NET\Calculator”。
本书中的练习实例都将在这个解决方案中完成。
1.1.3 网站与项目
在上面的讲解中,除了解决方案外,还有两个概念:网站与项目。在VS2003以及之前的版本中,是没有“网站”这个概念的,只有项目。前面的例子中已经认识了网站的概念,其实就是一个目录。但项目的概念就不太一样了,一个项目就是一个Assembly(装配件),这是.NET的一个基本概念,项目编译后得到的是一个.dll文件或一个.exe文件;与之相比,网站更像是一个文件管理框架。项目的内容比网站广泛得多,如:WinForm、类库、Windows控件台、Windows服务等等。读者可通过菜单“文件→新建→项目”对话框了解项目的类型。在本书的后面部分会使用到“类库”类型的项目。
1.1.4 编辑区
VS2008的中间区域是编辑区,也是主工作区。编辑区分为两种类型:界面编辑和代码编辑。界面编辑指的是编辑界面文件,界面文件中最典型的代表就是.aspx文件和.ascx文件。代码编辑则是指编辑代码文件,代码文件中最典型的代表是.cs文件。
以ASP或PHP为例,这些语言的程序代码常常与界面显示代码相混杂。例如,这样一段PHP程序:
<table><tr><td><?php echo $var?></td></tr></table>
程序解释
<table>是HTML中的表格标记,<tr>表示表格中的一行,<td>表示表格中的一列,<td>和</td>之间的内容是表格的单元格中显示的内容,可以是任何HTML标记,当然也可以是表格,即表格嵌套。<?php和?>是PHP语言程序代码的开始和结尾符号,其中包含的就是PHP语言的程序代码;echo是PHP语言中用于输出并显示字符串的关键字(实际上也是一个PHP的内置函数),$var则是PHP中定义的一个变量,那么以上代码的作用就是在一个一行一列的表格中输出并显示变量$var的内容。
这种写法使得界面制作人员必须和代码程序员配合得非常紧密才行,甚至要求界面制作人员具有一定的编程基础。不仅如此,界面设计过程并不直观,开发人员往往要等到界面制作完成后才能够编写程序代码,写完代码后发现显示出现了问题再调整界面,则又是一件非常麻烦的事情。ASP.NET彻底解决了上述问题,它将界面和代码完全分成了两个文件,一个界面文件和一个代码文件。二者各司其职,相辅相成。以普通的页面为例,界面文件的后缀名是.aspx,代码文件的后缀名是.cs,关于这两个文件的关联概念,在后面章节中有详细的介绍。
在VS2008中代码编辑的界面相对较为简单,这是一个着色的文本编辑工具,使用Unicode编码,提供了代码自动提示功能。界面编辑的界面则相对复杂一些,有3种模式:“设计”、“拆分”和“源”。双击一个.aspx文件,就可以在编辑区的左下方看到这3种模式的选项(如图1-8所示)。
图1-8 界面编辑区
设计模式是完全图形化的界面设计,所见即所得。优点是直观明了,缺点是效率较低。
源模式是完全HTML代码的编辑,缺点是不直观,优点是效率高。当页面的对象数量庞杂时,使用源模式编辑要比设计模式效率高得多,这就好比是图形化界面的Windows和字符界面的Linux,虽然Linux的字符界面不直观,但其对于系统资源的使用效率则要高得多。
拆分模式是设计模式和源模式在页面的上下方同时显示,两者效率兼顾,是VS2008中新增加的模式。
图1-8中另一个标识出来的部分是界面编辑中当前光标所在位置的HTML对象层次,通过对象层次面板,既可以清晰地看到当前控件所处的位置,也能够快捷地选中所需要的内容。