1.3.3 区分C#的解决方案与项目的关系
至此我们了解到,控制台应用程序和Windows窗体应用程序在创建时,都涉及项目和解决方案,其实使用Visual Studio的大部分时间都将花在项目或者解决方案内。虽然可以在Visual Studio中编辑孤立的、不和任何项目或解决方案相连的文件,但是使用的大多数文件都是存在于项目或者解决方案的环境中的。
由于Visual Studio的一切几乎都与项目和解决方案有关,因此了解它们之间的区别以及以后如何轻松地使用它们是至关重要的。下面就认识一下项目和解决方案。
1.项目
项目是在Visual Studio中工作时最重要的部分之一。项目可以有许多用途,但是主要是为了组织源代码及资源而诞生的,以便将其编译进库或者应用程序中。
项目包含任何数量的可编译成某种形式的输出源文件。输出可以是Windows窗体可执行文件、控制台应用程序、类库,或者任何数量的不同输出。不同的语言(如C++、C#、VB.NET等)有不同的项目。还有一些特殊目的的项目,比如安装项目与数据库项目。总的来说,Visual Studio包含超过90种不同的项目类型。这个数字随着安装设置的不同而不同,而且假如安装了插件或者语言服务,因为它们会创建更多项目类型,所以这个数量还会增加。
C#项目编译完成后,可以发布制作成为独立的可执行文件,并安装在需要的服务器或客户端。有关项目的操作详见后面的学习。
2.解决方案
解决方案是若干有联系的项目的组合,解决方案存储其所包含的项目信息,包括项目依赖关系与生成顺序,也可以包含一些杂类的解决方案项。
解决方案是Visual Studio组织结构中的最高级别。解决方案这个词的寓意还是有道理的,因为它把构成整个业务解决方案的所有项目都集合在一起。比如,有一个由5个项目组成的业务解决方案,这5个部分可能包括数据访问项目、业务层项目、服务接口层项目、表示层项目与Web控件项目。解决方案将所有这些项目组合在一起,使得用户可以快速在项目之间切换,并且管理它们之间的各种引用。
第一次新建项目时,会自动创建项目所在的解决方案。默认情况下,解决方案同第一个项目名称相同,也可更改默认的解决方案名称,如图1-20所示。
图1-20 “新建项目”对话框
3.解决方案和项目的关系
通过上面的简单介绍,已经了解了解决方案和项目之间的大致关系。其实它们就如同公司和部门的关系,如果把一个解决方案比作一个公司,那么公司下属的各个部门就是解决方案下的各个项目,而后面章节要学到的类就如同公司部门下的各个员工。
一个解决方案可以新建和包含一个或多个项目,这多个项目共同完成一个解决方案的任务。这些项目可以是新建类库、控制台应用程序,也可以是Windows窗体应用程序、ASP.NET Web应用程序等。也可以添加其他解决方案中现有的项目,有时候有些项目是已存在写好的,那么一般都会把这个项目直接复制到正在运行的解决方案对应的文件夹内,然后通过解决方案资源管理器去添加项目。图1-21所示为一个解决方案下包含了三个项目的例子截图。
如果需要继续在本解决方案下添加新的项目文件,则可右击图1-21中的解决方案名称(C Sharp第一个解决方案),在弹出的快捷菜单中选择“添加”→“新建项目”命令,选择需要添加的项目类型及名称、位置等信息。
对于解决方案的文件则有一些限制,在Visual Studio中一次只能打开一个解决方案,如果在当前解决方案下需要打开新的解决方案,Visual Studio会提示先关闭当前的解决方案并打开新的解决方案。不过,同一个项目可以是许多解决方案的成员,于是在用户所创建的大量目的不同的解决方案中,可以共同拥有相同的项目。对解决方案以及项目所对应的文件作如下说明:
(1)所有类型为Microsoft Visual Studio Solution的文件才是解决方案文件,以.sln结尾,里面包含着整个解决方案的信息,可以双击打开此解决方案。
(2)所有类型为Visual C# Project file的文件都是项目文件,以.csproj结尾,里面包含着这个项目的所有信息,双击可以打开项目所在的解决方案及其所有项目。
(3)所有类型为Visual C# Source file的文件都是C#的源代码文件,以.cs结尾,双击只能打开查看源代码,需要依靠所在的项目才能运行。
图1-21 解决方案和项目的关系