当前位置:  开发笔记 > 编程语言 > 正文

Visual Studio中"网站"和"项目"之间的区别

如何解决《VisualStudio中"网站"和"项目"之间的区别》经验,为你挑选了7个好方法。

他们有不同的目的.

网站是一个内容可能随时间变化的网站,即网页本身会发生变化.没有实际的项目文件,站点只是作为一组文件部署.

应用程序是一个内容只是应用程序的站点,动态部分主要是在诸如数据库之类的持久存储中.它将具有更复杂的逻辑,因为它可能代表一组数据输入表单,而不是检查内容的方法.它有一个项目文件,可以更严格地控​​制其配置,并将其代码部署为已编译的dll.



1> AnthonyWJone..:

他们有不同的目的.

网站是一个内容可能随时间变化的网站,即网页本身会发生变化.没有实际的项目文件,站点只是作为一组文件部署.

应用程序是一个内容只是应用程序的站点,动态部分主要是在诸如数据库之类的持久存储中.它将具有更复杂的逻辑,因为它可能代表一组数据输入表单,而不是检查内容的方法.它有一个项目文件,可以更严格地控​​制其配置,并将其代码部署为已编译的dll.


这不正确; 它们都具有相同的任务(网站也可以编译为dll)
值得注意的是,您可以选择使用基于个人偏好的项目类型来满足相同的业务需求.

2> Ian Robinson..:

1)"网站"模型是在ASP.NET 2.0中引入的,"Web应用程序"模型是原始.net框架的项目类型.它们都有不同的用途(见下文).

2)这取决于具体情况.一个很好的例子是,如果您正在销售软件产品,您可能希望使用"Web应用程序"项目,因为它自然适用于干净编译的代码.

3)见上文,个人喜好,维护特点."网站"允许您这样做的一件有趣的事情可能会让您遇到很多麻烦,那就是在网站运行时对记事本中的代码隐藏(通常是*.cs或*.vb)文件进行任意更改.

4)designer.cs文件用于存储自动生成的代码."这段代码是由一个工具生成的."

MSDN文章描述了这些差异

类似的stackoverflow问题


关于(1):Web应用程序项目是VS 2005中引入的项目,用于替代VS 2003的Web项目.[见这里](http://damieng.com/blog/2008/02/07/web-site-vs-web-application).关于(3):仅当站点发布为可更新时,才能更改此代码.如果没有,在发布的网站上甚至不会有*.cs或*.vb.

3> David..:

我不会复制2的定义,因为那只是得到了回答.

那么为什么要使用一个呢?

Web站点允许您将其视为PHP或经典ASP站点,您可以在其中进行立即生效的内联更改.

优点

您可以直接在Web服务器上对站点进行调整

部署就像复制文件夹一样简单

缺点

如果您没有在实际网站上进行正确的更改,则可能会遇到更改管理问题,导致您忘记保持所有文件同步

您可以向最终用户显示运行时语法错误,因为检查的唯一方法是手动运行每个页面

Web应用程序使您可以更好地对待桌面应用程序 - 在您的计算机上编译一个可部署的部署.

优点

清晰,结构化的变更管理.您不能无意中混合来自两个不同版本的代码.当涉及2个人时 - 这一个很重要 - 一个编写代码,另一个负责将文件放在服务器上.

因为你在你的机器上编译它,所以在那一点上都会检查语法*

缺点

只需从开发计算机复制文件夹,就可以进行部署.但是,使用"发布"命令极大地简化了编译和组合应将哪些文件复制到Web服务器的过程.

任何更改都需要在您的计算机上完成,编译,并将全新版本发送到Web服务器*

*如果您在构建选项中启用此选项,则仅检查aspx/html文件的语法.除非将它们编译到项目中,否则还可以在服务器上编辑这些文件.


我个人不直接发布到网站,而是使用暂存文件夹.覆盖DLL会导致短暂停顿,然后下一个请求正在运行.请记住 - 更新*重新启动*应用程序.对于企业情况,您应该使用维护计划,而不是意外更新

4> 小智..:

简单的答案如下:

    新网站 - 在请求页面时在服务器上编译的页面后面创建代码.

    新Web项目 - 将预编译的页面创建到一个或多个程序集(甚至整个站点),并部署在服务器上.

场景#1 - 如果黑客获得代码隐藏文件,则会暴露任何数据库密码.这些页面在请求时编译.您可以选择将所有内容预编译为大型程序集.如果没有,则服务器上会有更多负载.

场景#2 - 如果黑客获得你的程序集,它们将被混淆.混淆的组件更难破解.这些程序集是预编译的,因此减少了服务器上的负载.

欲获得更多信息:

Web应用程序项目简介



5> DancesWithBa..:

3)WebApplication项目可由MSBuild构建.WebSites不是(没有很多调整).如果您将TeamSystem与自动构建一起使用,那么这就是您的选择.



6> 小智..:

没有人真正提到的最大区别(除了Annakata所触及的)是,使用模型将所有内容编译成单个DLL,您可以完全控制应用程序生成的类.您知道它们的位置,并且始终可以从应用程序中的任何其他位置引用它们.

使用单页模型,您无法执行此操作.你必须通过在AppCode目录中创建"存根"类并在页面中继承它们来绕过它,但即使这样也不理想,并增加了复杂性.

如果你正在尝试开发一个错综复杂的动态网站,你会真正提出这个问题,你可以根据内容在运行时动态加载大量用户控件.然后,差异是非常明显的 - 因此我们的开发大部分停滞在ASP 1.1上,直到我们稍后再回到相同的模型.

NICH



7> Wayne Molina..:

从两者的经验来看:"网站"用于没有测试方法,没有CI服务器,以及定期鼓励和促进特定页面"修补程序"的文化."Web应用程序"是事实上的标准,其中遵循适当的软件方法并且有单元测试(如果不是完整的TDD)和CI服务器,其重点在于编写干净的代码并在需要"修补程序"之前发现错误.

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有