2009-08-24 88 views
5

在VS2008网站和Web应用程序之间有什么区别? 使用任何一种都有优势吗?在VS2008网站和Web应用程序之间有什么区别?

+0

完全重复:http://stackoverflow.com/questions/237664/web-site-vs-asp-net-web-application-in-visual-studio – 2009-08-24 15:12:01

+0

谢谢贾斯汀...我想我应该先做一个搜索。 – Brad 2009-08-24 15:14:55

+2

它是一个“模糊”的伪装,但我更喜欢这个线程的答案,所以请保持这个线程打开。 – djangofan 2009-08-24 15:17:07

回答

14

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

网站项目使用即时编译方法,可以在您的页面实际访问时动态编译您的aspx文件和相关文件。编译后的程序集随后将被放置在bin文件夹内,并带有一个随机生成的dll名称。

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

所以利弊:

  1. 网站项目的源代码是动态的,你没有必要需要去通过你的开发机上修改的东西(冒险的做法虽然),一切都只是在时间
  2. 编译话虽如此方便,它也有一个轻微的性能损失,由于所涉及的JIT编译。
  3. 由于调度请求的设计(如ASP.NET MVC和基于MonoRail的项目),有些项目只是WONT在Web Site项目上运行。
  4. 你很少或根本不可能在图书馆层面TDD你的网站项目,因为它没有编译。但是,您可以使用Web应用程序编译您的单个DLL。
  5. 我忘了这是如何被触发,但VS2005可以采取永远长编译一个更大的网站项目,由于动态性质涉及额外的语法检查的ASPX文件。 Web应用程序不会遇到这个问题。

我相信还有更多的东西参与,但我认为这些是一些较大的东西。

1

如果你使用Visual Studio 2005中,Web应用程序项目根据this site

为的pros and cons你可以检查此文章一个人的意见列表编译速度更快。

我个人的偏好是创建一个网站项目。我没有理由这样做,但是因为它一直对我有用(我可以拖放一个目录来部署),我仍然继续使用它。

0

我只会使用最简单的应用程序的网站项目。任何涉及多个开发人员的其他事情都需要一个msbuild脚本。 msbuild喜欢web应用程序项目,并且真的讨厌网站项目。除此之外,我从不觉得网站项目强加的顺序。我喜欢编写代码,编译,测试和部署。通过网站项目,您可以编写代码,进行部署,编译和测试。只是以错误的方式蹭我。

0

Stephen M. Redd帮助我开始了这一项。他更喜欢Web应用程序项目方法。

今天我的任务是为.NET 1.1的应用程序升级到3.5,这是在我的情况下采取的Web应用程序项目的路线,因为这是更接近1.1如何工作容易得多。

虽然我决定不予采纳,网站的做法持有以下景点:

  • 没有任何代码都需要在另一方面申报页面控件(Web应用程序项目自动生成到这些设计师文件这是我不喜欢的样子)
  • 动态编译,更快的发展
  • 没有必要为一个项目文件

最终我需要做几如果我转到Web应用程序项目路由,则会更改代码。不幸的是,我们的应用程序有页面通过静态方法和其他这样的不良做法相互引用。网站接近编译方法意味着无论您的命名空间如何配置,网页无法一起工作。我想我必须学会和设计师文件一起生活。

0

在团队中进行开发时,您必须始终选择Web应用程序。由于Bin目录包含所有引用的程序集,因此您必须将Bin目录签入源代码控制(非常邪恶)。这意味着在编译完网站和源代码控制的更新(其他开发人员的修改)之后,您总会遇到冲突。

+0

你能详细说明一下吗? – djangofan 2009-08-24 15:14:07

7

网站 主要是为了与已编程的元素特设网站工作。通过aspx文件中的客户特定内容轻松识别。

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

代码隐藏和类通常存储来编译它们在内存需求的Web服务器上。可以对文件进行更改,而无需重新启动应用程序并丢失会话。

赞成/反对

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

Web应用程序 Web应用程序项目引入作为一个附加对于Visual Studio 2005,后来转入VS 2005 SP1,并用Visual Studio 2008做了一个完整的一等公民。

就像这个名字暗示这些主要用于Web应用程序,那些时候当你编写产品或解决方案时恰好有一个网络界面。

Web应用程序项目在本地驱动器上存在,并像任何其他VS项目类型处理,并可以添加到现有的解决方案都受到全面汇编,验证和建立步骤。

部署通常是通过MSI安装程序,但是你也可以利用除Web部署项目插件,它允许你直接部署到这是部署到测试环境中非常有用的服务器。

赞成/反对

  • 控制构建&部署流程部署会导致应用程序重启
  • 没有类文件的Web服务器上,DLL只能在编译时
  • 部署单独的类
  • 语法错误

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

0

网站:它的动态编译 Web应用程序:它的静态编译

的Visual Studio 2005 SP1提供了Visual Studio 2008的Web应用程序和 :它支持这个概念。

阅读myblog

0

上有这个 - hereand here很多文章,甚至here。主要区别在于,网站项目包含组成该网站的相关资产的文件夹,并且该文件夹中的任何内容都是网站的一部分,而网站应用程序则更像桌面应用程序,并具有一个.csproj/vbproj文件列出了所有的应用程序内容。此外,页面在网站应用程序中有设计器文件。

相关问题