
1.2 Visual Studio 2010网站和项目的区别
1.2.1 一分钟开发出你的第一个ASP.NET程序
打开Visual Studio 2010后,初学者可能很茫然,其实不要怕,按照下面的讲解一步一步操作,你也可以很快上手。单击菜单栏中的“文件”下拉菜单,如图1-4所示。
选择“新建项目”命令,注意还有个“新建网站”命令,这两者都可以做ASP.NET程序,两者有很大差异,后面会讲述。

图1-4 Visual Studio 2010新建项目菜单
进入项目类型选择界面,如图1-5所示。

图1-5 新建一个ASP.NET Web项目
这个界面默认是开发Windows的winform项目,所以我们要选择Web项目类型。其中有Visual C#和Visual Basic这两种语言可供选择,其实Visual C#和Visual Basic都可以做ASP.NET,效率都差不多,都是生成中间语言。一般选择Visual C#的人比较多,使用这个的企业也很多。
在已安装的模板中选择“ASP.NET Web应用程序”,名称默认是“WebApplication1”,也可以改为你想要的名称。位置可以改为“G:\web2011”,这样的路径比较好,默认的路径太深了,完成后单击“确定”按钮。
如果按照以上所述的过程进行操作,会进入程序开发面板,如图1-6所示。

图1-6 程序开发面板
在右侧的“解决方案资源管理器”窗口中,系统为我们默认创建了几个文件。第一个页面就是“Default.aspx”。单击Default.aspx前的“+”图标,打开它的后台代码文件,“解决方案资源管理器”如图1-7所示。

图1-7 解决方案资源管理器
在“Default.aspx.cs”中输入如下代码:
namespaceWebApplication1 { publicpartialclass_Default : System.Web.UI.Page { protectedvoid Page_Load(object sender, EventArgs e) { Response.Write("我的第一个网页开始于:" + DateTime.Now); } } }
在“Default.aspx”上单击右键,在弹出菜单中单击“在浏览器中查看”命令,这个时候代码已经自动编译过了,如图1-8所示。

图1-8 直接打开浏览器查看网页运行效果
对于开发人员来说,以后最要注意的也就是输出区域,如图1-9所示,因为这里会告诉你程序是否编译成功。

图1-9 “输出”面板
在浏览器中查看,页面显示如图1-10所示。

图1-10 网页运行效果图
从Visual Studio 2008开始Visual Studio就默认有一个内置的Web服务器,这样就可以方便开发人员,否则就要配置IIS。在屏幕右下角有一个“ASP.NET Development Server”,这就是内置服务器,它使用一个随机端口:2446。
代码说明:DateTime.Now的作用就是调出当前时间。
开发出第一个动态程序后是不是很有信心学好ASP.NET了?其实只要努力没有不可能的事。
1.2.2 Visual Studio 2010的多版本支持以及2.0/3.0/3.5/4.0究竟选择哪个版本
有的地方把多版本选择叫“多定向支持”,我觉得这样翻译很不好,让人云里雾里的。
在菜单栏中单击“新建”→“项目”命令,弹出项目类型的界面,这里右侧有个语言版本选择的下列表拉框,你可以根据需要选择.NET Framework 2.0/.NET Framework 3.0/.NET Framework 3.5/.NET Framework 4,如图1-11所示。推荐选择.NET Framework 3.5,因为使用这个的人最多,.NET Framework 4的很多特性其实用不上。

图1-11 选择开发框架版本
说明:如果我们的项目是2.0版本,以后升级到3.5版本也很容易,旧有的2.0项目完全可以用Visual Studio 2010打开。
1.2.3 新建ASP.NET Web应用程序和新建“网站”的区别
记得在Visual Studio 2003时代只有Web Applocation(Web应用程序),后来到了Visual Studio 2005时代突然出现“新建网站”,其实这两种模式的差异很大,很多开发人员一时适应不过来,可以说设计出“网站”模式的初衷是好的,但是由于大家已经适应了Visual Studio 2003,所以到了Visual Studio 2005很多人适应不了,当然Visual Studio 2003的应用程序确实很清晰。具有讽刺意义的是后来微软出了Visual Studio 2005 SP1补丁包,就是让Visual Studio 2005又支持Web Applocation。到Visual Studio 2008同时支持两种模式。Visual Studio 2010继续沿用Visual Studio 2008的风格。
以下Web Applocation简称“项目”。
你可以通过“文件”→“新建项目”→“ASP.NET Web Applocation”命令新建一个ASP.NET Web项目,也可以通过“文件”→“新建网站”新建一个ASP.NET网站,如图1-12所示。

图1-12 “新建网站”命令
弹出一个菜单,建议选择“Web位置”为“文件系统”,这样就不用配置IIS站点,便于个人调试,当然你也可以选择“http”,这样就要在IIS中配置一个虚拟目录,IIS是放在服务器上,特别是Windows Server 2003或者Windows Server 2008上,这样可以充分发挥服务器的性能,在本地完全没有必要假设IIS,如果你是Windows XP系统,IIS使用起来有许多限制,所以选择Visual Studio 2010自带的内置服务器即可,也就是“文件系统”,如图1-13所示。

图1-13 新建一个ASP.NET网站
如果需要本地浏览和“项目”模式差不多,这没有区别,单击右键在浏览器中查看即可。
“生成网站”的作用是编辑编译能否通过。“发布网站”的作用就是把网站发布,如图1-14所示。

图1-14 “发布网站”命令
“项目”模式下也有“发布”,这两种模式差异很大,最大的差异是,Web“项目”是和Visual Studio .NET 2003时代一样的编译模式,会把所有的.CS编译为一个dll放在Bin目录下,这样部署起来也很方便,你部署的时候,只需要把这个应用程序集dll文件和 .aspx文件、.ascx文件以及其他静态内容文件一起部署。
而“网站”则可以选择是否把所有代码都打包在一起,我们的网站有Default.aspx和Default2.aspx这两个文件以及对应的CS文件,发布的时候弹出如图1-15所示的对话框。

图1-15 “发布网站”对话框
如果不勾选“使用固定命名和单页程序集”复选框,那么所有代码会打包到一个dll里,每次名字都是随机的,如:“App_Web_nmtxowhp.dll”。
如果勾选“使用固定命名和单页程序集”复选框,那么就会为每个页面的CS文件生成自己的dll,如:App_Web_default.aspx.cdcab7d2.dll和App_Web_default2.aspx.cdcab7d2.dll。
而“项目”模式的发布就没有这个区别,只会生成一个项目名的dll,例如:WebApplication.dll,给人感觉很清晰。
Visual Studio 2010新建ASP.NET Web“项目”和“网站”到底哪个好?
答案是:如果您的系统很少更新,使用“项目”比较好,而“网站”模式有更多的网站“特性”,发布的时候你不用更新所有的dll,只更新单个的dll就可以,那种要频繁更新同时又在线运营的项目就适合这种模式。“项目”模式由于所有的代码生成一个dll,所以一次更新就会导致网站所有的session、cache都失效,具体哪种模式好也看个人喜好。
1.2.4 怎样打开历史项目
在“文件”菜单下,如果你之前是项目就单击“打开项目”命令,如图1-16所示。

图1-16 选择“打开项目”命令
定位到对应目录的sln文件即可,如图1-17所示。

图1-17 “打开项目”对话框
在“文件”菜单下,如果是网站就单击“打开网站”命令,需要注意的是,网站是没有sln文件的,直接打开网站所在的目录即可,如图1-18所示。

图1-18 选择“打开网站”命令
定位到网站目录所在的位置即可,因为之前选择的是文件系统,所以直接选择即可,如果是本地IIS,那么选择对应的IIS即可,如图1-19所示。

图1-19 “打开网站”对话框
1.2.5 新建Web项目的生成与重新生成的区别
在“项目”模式下,写好了代码如果仅仅是本地调试,右键单击该项目,在弹出菜单中单击“生成”命令即可,如图1-20所示。

图1-20 生成项目
同时,我们也会注意到“生成”命令的下面有个“重新生成”命令,貌似这两个功能一样?既然微软开发出两个功能就一定有差异。其实从字面也可以理解。
“生成”:仅重新编译新改动的部分代码。
“重新生成”:重新编译所有代码。