当我在Visual Studio中启动新的ASP.NET项目时,我可以创建ASP.NET Web应用程序,也可以创建ASP.NET网站。

ASP.NET Web应用程序和ASP.NET网站之间的区别是什么?为什么我会选择一个而不是另一个?

答案是否因我使用的Visual Studio版本而异?


当前回答

是的,web应用程序比网站好得多,因为web应用程序给了我们自由:

在一个伞下有多个项目并建立项目之间的依赖关系。例如,对于PCS,我们可以在web中进行以下操作应用程序-Web门户通知控制器(用于发送电子邮件)业务层数据访问层异常管理器服务器实用程序WCF服务(所有平台通用)列表项目对类文件中的代码运行单元测试与ASP.NET页面关联参考以下类别与独立类中的页面和用户控件关联为整个站点创建单个部件的步骤控制为站点生成的程序集名称和版本号避免将源代码放在生产服务器上。(你可以避免将源代码部署到IIS服务器。在某些情况下,例如共享托管环境,您可能会担心未经授权访问IIS服务器上的源代码。(对于web站点项目,您可以通过在开发计算机并部署生成的程序集源代码的。然而,在这种情况下轻松更新网站的好处。)网站性能问题(对网站的第一请求可能需要编译网站,这可能导致延迟。如果网站运行在内存不足的IIS服务器,包括单个程序集使用的内存可能比多个组件。)

其他回答

在Web应用程序项目中,Visual Studio需要用于页面和用户控件的其他.designer文件。网站项目不需要此开销。标记本身被解释为设计。

WebSite:它会自动生成app_code文件夹,如果您在服务器上发布它,然后如果您对任何特定文件或页面进行一些更改,则不必编译所有文件。

Web应用程序它自动生成网站不生成的解决方案文件,如果您在一个文件中进行更改,则必须编译整个项目以反映其更改。

网站=当网站由图形设计师创建且程序员仅编辑一到两页时使用

Web应用程序=当应用程序由程序员创建且图形设计师仅编辑一页或两页/图像时使用。

网站可以使用任何HTML工具进行工作,而不必使用开发人员工作室,因为项目文件不需要更新等。当团队主要使用开发人员studio并且代码内容较高时,Web应用程序是最佳的。

(某些编码错误在编译时在Web应用程序中发现,直到运行时才在Web站点中发现。)

警告:我多年前就写过这个答案,之后就再也没有使用Asp.net了。我想事情已经开始了。

MSDN中有一篇文章描述了这些差异:

比较网站项目和Web应用程序项目

BTW:关于这个话题有一些类似的问题,例如:

Visual Studio中的网站与ASP.Net Web应用程序之比较注意:已删除,不再在SO中ASP.NET中的网站或Web应用程序

Web应用程序项目模型

提供与Visual Studio.NET Web相同的Web项目语义项目。具有项目文件(基于项目文件的结构)。构建模型-项目中的所有代码都编译为单个装配支持IIS和内置ASP.NET开发服务器支持Visual Studio 2005的所有功能(重构,泛型等)和ASP.NET(主页、成员资格和登录名,网站导航、主题等)。使用FrontPage服务器扩展(FPSE)不再是要求。

网站项目模型

没有项目文件(基于文件系统)。新的编译模型。动态编译和处理页面,无需构建整个站点在每个页面视图上。支持IIS和内置ASP.NET Development Server。每个页面都有自己的程序集。不同的代码模型。