ASP.NET Web Site 与 ASP.NET Web Application区别

来源:luqidong 发布时间:2014-03-19 19:55:51 点击数:
网站是您部署到一个ASP.NET Web服务器(如IIS)是什么。只是一堆文件和文件夹。有没有在一个网站,你绑到Visual Studio (有没有项目文件) 。代码生成和网页(如的。aspx , 。 ascx的。主)编是在运行时动态完成的,并修改这些文件是由框架自动检测和重新编译。你可以把代码要在特殊的App_Code文件夹中的页面之间共享,也可以预编译它,并将装配在Bin文件夹中。
 
Web应用程序是一个特殊的Visual Studio项目。与网站的主要区别是,当你生成项目的所有代码文件编译为单个程序集,这是摆在bin目录下。你的代码文件不会部署到Web服务器。而不是有共享代码文件的特殊文件夹,你可以把他们的任何地方,就像你会做的类库。因为Web应用程序中包含的目的不是要部署的文件,如项目和代码文件,有一个在Visual Studio中发布命令来输出一个网站到指定的位置。
 
App_Code文件与斌
 
部署共享代码文件通常是一个坏主意,但是,这并不意味着你必须选择Web应用程序。你可以有一个网站,它引用一个类库项目包含所有的Web站点的代码。 Web应用程序仅仅是一个方便的方法来做到这一点。
 
代码隐藏
 
本主题是特定的。aspx和。 ascx文件。这个话题是有关递减在诸如ASP.NET MVC和ASP.NET网页,不使用代码隐藏文件的新应用程序框架。
本文由免费oa系统78oa原创,转载请注明出处。
 
通过让编译成一个程序集的所有代码文件,包括。 aspx页面的代码隐藏文件和。 ascx控件, Web应用程序中,你必须重新构建的每一个小变化,你不能让现场的变化。这可能是在开发过程中一个真正的痛苦,因为你要不断重楼看到的变化,同时与网站的变化是由运行时会检测和页面/控件会自动重新编译。
 
具有运行时管理代码隐藏组件是为你工作少,因为你不必担心给页/控件唯一的名称,或将它们组织到不同的命名空间。
 
我并不是说部署代码文件始终是一个好主意(特别是不共享的代码文件的情况下) ,但代码隐藏文件应该只包含执行的UI特定的任务,线了事件处理程序,等你的应用程序应该是代码分层,这样重要的代码总是最终的Bin文件夹中。如果是这样的话,那么部署代码隐藏文件不应该被认为是有害的。
 
Web应用程序的另一个限制是,你只能使用该项目的语言。在网站你可以有一些网页在C#中,有的在VB等无需特殊的Visual Studio支持。这是生成提供可扩展的美感。
 
此外,在Web应用程序你没有得到错误检测在页面/控件编译器只编译你的代码隐藏类,而不是标记代码(在MVC中您可以使用MvcBuildViews选项解决这个问题) ,它被编译在运行时。
 
Visual Studio中
 
由于Web应用程序是Visual Studio项目你在网站无法使用某些功能。例如,您可以使用内建的事件来执行各种任务,例如minify和/或合并JavaScript文件。
 
在Visual Studio 2010中引入的另一个不错的功能是Web.config转换。这也是不可用的网站。
 
构建一个Web应用程序是不是建立一个网站更快,特别是对于大型网站。这主要是因为Web应用程序没有编译标记代码。在MVC中,如果你设置MvcBuildViews为true,则编译标记代码,你会得到错误检测,这是非常有用的。不利的一面是,每次生成解决方案时它建立了完整的网站,它可以是缓慢和低效的,特别是如果你没有编辑的网站。升发现自己打开和关闭MvcBuildViews (这需要一个项目卸载) 。在另一方面,随着网站你可以选择,如果你想建立网站作为解决与否的一部分。如果您选择不,然后构建解决方案是非常快的,而且您可以随时单击Web站点节点,并选择Build ,如果你所做的改变。
 
在一个MVC Web应用程序项目,你会收取额外的共同任务的命令和对话框,如“添加视图”,“去查看”,“添加控制器”等,这些都是不可用在MVC的Web站点。
 
如果您使用IIS Express作为开发服务器,在网站上,您可以添加虚拟目录。此选项不可用在Web应用程序。