当我在Visual Studio中启动新的ASP.NET项目时,我可以创建ASP.NET Web应用程序,也可以创建ASP.NET网站。
ASP.NET Web应用程序和ASP.NET网站之间的区别是什么?为什么我会选择一个而不是另一个?
答案是否因我使用的Visual Studio版本而异?
当我在Visual Studio中启动新的ASP.NET项目时,我可以创建ASP.NET Web应用程序,也可以创建ASP.NET网站。
ASP.NET Web应用程序和ASP.NET网站之间的区别是什么?为什么我会选择一个而不是另一个?
答案是否因我使用的Visual Studio版本而异?
当前回答
MSDN中有一篇文章描述了这些差异:
比较网站项目和Web应用程序项目
BTW:关于这个话题有一些类似的问题,例如:
Visual Studio中的网站与ASP.Net Web应用程序之比较注意:已删除,不再在SO中ASP.NET中的网站或Web应用程序
其他回答
我建议您观看ASP.NET网站上的“Web应用程序项目和Web部署项目”视频,该视频非常详细地解释了差异,这对我很有帮助。
顺便说一句,不要被标题所迷惑,视频的很大一部分解释了网站项目和web应用程序项目之间的区别,以及为什么Microsoft在Visual studio 2005中重新引入web应用程序(正如您可能已经知道的那样,它最初只提供网站项目,然后在SP1中添加了web应用程序)。这是一个很棒的视频,我强烈推荐给任何想了解差异的人。
在web应用程序中,您可以创建项目功能的层,并通过将其划分为多个项目来创建它们之间的相互依赖关系,但您永远无法在网站上做到这一点。
来自MCTS自定进度训练包考试70-515书:
利用web应用程序(项目),您可以创建MVC应用程序。Visual Studio将文件列表存储在项目文件(.csproj或.vbproj)中,而不是依赖于文件夹结构。不能混合使用Visual Basic和C#。不停止调试会话就无法编辑代码。您可以在多个web项目之间建立依赖关系。您必须在部署之前编译应用程序,这将阻止您在另一页无法编译时测试该页。您不必将源代码存储在服务器上。您可以控制程序集名称和版本。如果不重新编译,则无法在部署后编辑单个文件。
绝对是web应用程序,单个DLL文件,易于维护。但网站更灵活;您可以随时编辑aspx文件。
这取决于你在发展什么。
一个以内容为导向的网站会经常改变其内容,而网站更适合于此。
应用程序倾向于将其数据存储在数据库中,其页面和代码很少更改。在这种情况下,最好有一个Web应用程序,其中程序集的部署更受控制,并且更好地支持单元测试。