快速导航
第二章 创建ASP.NET应用程序
2.1 使用Visual Studio创建Web站点
2.1.1 可用项目类型
创建在线访问的Web站点时,可以使用两种类型的项目:Web站点和Web应用程序。在VS2015里,创建Web Site和Web Application不同,而且两种方法之间的差异也很大。
创建WebSite的方式并不是一个管理和部署Web站点的企业级方案。.aspx
标记文件被复制到服务器上,在请求时被调用。.aspx.cs
这样的CodeBehind文件直接在服务器上进行编译,不需要在服务器上安装特定的运行程序,并且在第一次调用时被保存为.dll
文件。
因为编译是在运行时完成的,所以项目中不需要项目文件。想让Web站点跑起来,只需要把整个站点文件夹拷贝到IIS上即可,也可以直接在站点里添加删除文件,没有任何影响。
但这种方式不适用于ASP.NET MVC应用,因为MVC应用需要完整编译。
2.1.2 创建Web Application
注意"添加文件夹和核心引用"选项,将会决定项目的文件目录。你也可以勾选上生成"单元测试"任务。如果你安装了Azure支持,还可以选择"部署到Microsoft Azure"。
2.1.2.1 同时创建文件
2.1.2.1.1 身份验证
为Web应用程序配置安全性和身份验证很重要,可以使用SQLServer数据库来管理用户,也可以使用其他方法。第15章将介绍应用程序配置,第19章将介绍服务器配置,以确保支持与应用程序相同的身份验证方法。
2.1.2.1.2 文件夹和核心引用
配置新建项目过程中选择希望添加的额外的文件夹和核心引用,仅仅只会创建文件夹结构和默认文件,但不会影响你到选择的模板。譬如你选择了以Web Forms模板来创建Web项目,同时又在"添加文件夹和核心引用里"勾选了"MVC",就会自动创建所有MVC文件夹,但是其中没有内容。
2.1.2.2 空模板
假如啥也不选,空模板就一个Web.Config文件。
2.1.2.3 Web Forms模板
会创建带有个几个示例文件的Web站点。
2.1.2.4 MVC模板
会创建一个小功能集,包含与Web Forms模板相同的主页、关于页面以及一个联系人页面。运行结果是一样的,但是目录和文件结构完全不同。
2.1.2.5 WebAPI模板
Web API是一个基于ASP.NET MVC的RESTful Web服务。第13章我们将详细讲述。
尽管RESTful服务的概念意味着没有HTML文件来支持,但这个模板会创建两个页面:主页和API页面。API页面是文档开始,包含Web服务将理解和处理的信息类型。
2.1.2.6 单页应用程序模板
单页应用程序,顾名思义,就只有一个Web页面。最初会下载HTML和Javascript,然后应用程序运行,其中大部分的工作都是在客户端完成的,数据从服务器获取,通过客户端模版解析。又或者在服务器上直接将完整的HTML片段返回给客户端,根据需要加载页面的各个部分。
最重要的是,不会再从服务器调用整个页面,而只是调用页面的各部分。
这种方法利用AJAX技术,使用客户端代码来调用Web服务,以获得信息。
2.2 Web Application里的文件类型
通过Web Application来创建ASP.NET应用程序,项目使用的每个文件都会编译到一个.dll
文件中,或者作为一个单独的文件复制到Web站点上。
任何服务器端工作相关的代码都被编译成了.dll
,而直接发送到客户端的内容,如Image,Javascript和CSS文件,则保持不变,并复制到服务器的输出文件夹中。当你需要修改设计客户端的功能的时候,无须再次编译项目或者重新进行Web站点的部署。
再强调一次,Web Forms和MVC的实现不同,所以使用不同的文件类型,存储在不同的目录结构中。
2.2.1 ASP.NET MVC文件类型
2.2.2 ASP.NET MVC目录结构
在Views下有多个与Controller对应的文件夹,只是没有词尾的Controller而已,这是因为控制器可能包含多个视图文件。
2.2.3 ASP.NET Web Forms文件类型
唯一相同的是.config
文件,以及发送给客户端的文件.html
、.js
和.css
。
2.3 MVC和Web Forms文件的区别
其实仔细查看的话,会发现它们的相似点比差一点更多。尽管每个文件内容语法不太一样,但每个方法都有两个示例:一个包含标记,另外一个包含处理代码。
Web Forms里的标记文件和处理文件之间有非常紧密的联系,在解决方案里就可以看出它们相关,因为它们显示在一起。而MVC则不同,它没有在文件之间自动建立一对一的关系,相反,有可能存在多个视图文件对应一个控制器文件的情况。
2.4 创建MVC和Web Forms并存的示例程序
- 前面的介绍里你可以看到,Web Forms拥有的目录其实是MVC的一个子集。
- 在创建Web Application的时候,选择MVC模板作为初始骨架,然后在"添加文件和核心引用"里勾选上Web Forms。
- 使用这种方式创建不会创建重复的目录或者文件夹,但会同时添加ASP.NET MVC和Web Forms必要的引用DLL。
2.5 练习
- VS有两种方法创建基于Web的应用程序,分别是什么?它们有什么区别?
- 什么是项目模版?
- ASP.NET MVC比Web Forms相比多了哪几个额外文件夹?分别有什么用处?