在VS2008中,Web站点和Web应用程序有什么区别?

Bra*_*rad 5 .net

在VS2008中,Web站点和Web应用程序有什么区别?使用任何一个都有好处吗?

Wil*_*ung 14

在谈论利弊之前,你必须知道它的工作原理的根本区别.

网站项目使用及时编译方法,当您实际访问页面时,该方法将动态编译您的aspx和相关文件.然后将编译的程序集放在bin文件夹中,并随机生成一个dll名称.

另一方面,Web应用程序在您开发项目时将页面编译为命名的dll.没有这个编译,网站甚至不会部署到你的服务器(因为没有自动编译机制)

所以优点和缺点:

  1. 网站项目的源代码是动态的,你没必要通过你的开发机器来修改某些东西(虽然有风险的方法),所有内容都是及时编译的
  2. 说这很方便,由于涉及到JIT编译,它也会有轻微的性能损失.
  3. 由于调度请求的设计,有些项目只是WONT在Web站点项目上运行,如ASP.NET MVC和基于MonoRail的项目.
  4. 您很少或根本没有可能在库级别TDD您的网站项目,因为它没有编译.但是,您可以TDD使用Web应用程序编译的单个DLL.
  5. 我忘了这是怎么被触发但是VS2005可能需要很长时间来编译一个更大的Web站点项目,因为动态性质涉及对aspx文件的附加语法检查.Web应用程序不会遇到此问题.

我确信还有更多的东西,但我认为这些是更大的一些.


mad*_*lor 7

网站 主要用于处理具有编程元素的临时网站.通过aspx文件中存在的客户特定内容轻松识别.

不需要任何解决方案或项目文件,页面和源可以通过文件>打开>网站...菜单选项驻留在本地(文件系统,IIS)或远程(FTP,WebDev/FrontPage扩展).

代码隐藏和类通常存储在Web服务器上,该服务器根据需要在内存中编译它们.无需重新启动应用程序和丢失会话即可对文件进行更改.

赞成/反对

  • 快速编辑,测试,部署周期语法错误在运行时
  • 无需编译或重新启动应用程序无法创建安装程序
  • 源始终可用服务器上的源对黑客有用

Web应用程序 Web应用程序项目作为Visual Studio 2005的附加组件引入,后来进入VS 2005 SP1并使用Visual Studio 2008成为一流的公民.

如名称所示,这些主要用于Web应用程序,那些时候您编写的产品或解决方案恰好具有Web界面.

Web应用程序项目存在于本地驱动器上,并且被视为任何其他VS项目类型,并且可以添加到现有解决方案中,需要完全编译,验证和构建步骤.

部署通常通过MSI安装程序进行,但您也可以使用添加的Web部署项目加载项,该加载项允许您直接部署到对部署到测试环境有用的服务器.

赞成/反对

  • 受控构建和部署过程部署导致应用程序重新启动
  • Web服务器上没有类文件,dll只能部署单个类
  • 编译时的语法错误

http://damieng.com/blog/2008/02/07/web-site-vs-web-application