Web 应用程序项目与 Visual Studio 中的网站项目的异同 Web 应用程序项目与 Visual Studio 中的网站项目
要查看英语原文,请勾选“英语”复选框。也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
|
翻译
英语
|
创建项目之前,必须选择合适的项目类型,原因是从一种项目类型转换到另一种项目类型并不可行。
|
---|
例如,因此,如果要创建ASP.NET MVC应用程序,您必须使用 Web 应用程序项目。 |
本主题包含以下各节:
Web 应用程序项目的情况是优先选择包括:
-
希望能够使用Visual Studio调试器的 编辑并继续 功能。
-
需要对与 ASP.NET 页关联的类文件中的代码运行单元测试。
-
需要从独立类中引用与页和用户控件关联的类。
-
要在多个web项目之间的项目依赖项。
-
您希望编译器为整个站点创建单个程序集。
-
您要控制为站点生成的程序集的名称和版本号。
-
例如,您可能希望添加prebuild和postbuild步骤。
-
需要避免将源代码放置在生产服务器上。
-
需要使用 Visual Studio 中提供的自动化部署工具。
优先选择网站项目的情况包括:
-
可以设置例外情况,但相对较难。)
-
需要在 Visual Studio 中打开生产站点和使用 FTP 对其进行实时更新。
-
不希望必须显式编译项目才能部署项目。
-
如果预编译站点,您希望编译器为站点创建多个程序集,可以是每个页面或用户控件一个程序集,也可以是每个文件夹一个或多个程序集。
-
您希望能够通过仅将新版本复制到生产服务器,或通过在生产服务器上直接编辑文件来更新生产中的各个文件。
-
如果预编译站点,您希望能够更新各 ASP.NET 网页(.aspx文件),而无需重新编译整个网站。
-
您希望在生产服务器上保留源代码,以便用作附加备份副本。
下表总结了主要差异。
区域 |
Web 应用程序项目 |
网站项目 |
---|---|---|
项目文件结构 |
Visual Studio 项目文件(.csproj 或 .vbproj)存储有关项目的信息,如项目中包含的文件列表和项目间的任何引用。 |
文件夹结构中的所有文件自动包含在站点中。 |
编译 |
|
|
命名空间 |
默认情况下,将显式命名空间添加到页面、控件和类中。 |
默认情况下,不将显式命名空间添加到页面、控件和类中,但您可以手动添加它们。 |
部署 |
|
|
(.aspx和.ascx文件进行动态编译以与网站项目类似的方式执行。)
您可以在批处理编译模式(通常为每个文件夹生成一个程序集)和固定编译模式(通常为每个页面或用户控件生成一个程序集)之间选择。
编译模型的优点 Web 应用程序项目中包括:
-
您可以使用 MSBuild 来创建自定义批处理编译过程。
-
指定程序集特性(如名称和版本)非常简单。
-
但因此会失去动态编译的某些优点。)
-
您不能从 App_Code 中的类引用页面或用户控件类。)
网站项目的编译模型具有以下优点:
-
(在 Web 应用程序项目,因此,如果任何位置存在编译错误该站点,则不能创建程序集不能测试所编译站点即使的部分。
-
还可以直接在 Visual Studio 中打开生产 IIS 服务器上的网站,并实时更新该网站。
-
如果未请求某个页面,则不会加载其对应的程序集。
|
---|
此外,如果该网站在较短的内存中的IIS服务器运行,包括单个程序集的整个站点要比对多个程序集可能使用更多的内存是必需的。 |