【问题标题】:Web site projects vs Web Application - which is better?网站项目与 Web 应用程序 - 哪个更好?
【发布时间】:2009-02-11 22:09:00
【问题描述】:

我刚刚开始使用一个 cms (N2),它有一个使用 vs2008 中的网站项目模板的模板基本实现。我注意到,编译它比使用我更习惯的 Web 应用程序项目花费的时间要长得多。

我的问题是:

  1. 为什么编译似乎需要更长的时间?
  2. 哪个更好用?
  3. 我应该将其转换为 Web 应用程序吗?

如果这是重复的,我很抱歉,但我找不到类似的问题。

干杯

【问题讨论】:

标签: visual-studio-2008 web web-applications n2


【解决方案1】:

主要区别是:

Web 应用程序项目 中,所有内容都已预编译,所有代码隐藏页面都将被编译为 .dll ---- 在 Web 站点项目 中没有任何内容项目是预编译的,编译器将编译所有内容以确保其有效,但不会上传任何已编译的页面。当用户第一次尝试访问该站点时,每个页面都会被编译成自己的 dll。这意味着在网站项目中,您可以上传单个代码隐藏文件。

命名空间 - 在 Web 应用程序项目 中,默认情况下会在 Web 站点项目 中创建命名空间,但它们不是。

项目文件 - 网站项目 没有 Web 应用程序项目 所具有的“cproj”文件。

Converting to a Web Application project 可能比您想象的要困难,尤其是如果您严重依赖 appcode 文件夹。

我个人更喜欢Web 应用程序项目,我发现它们更易于使用且部署起来不那么烦人。我个人只会在非常小而简单的事情上使用网站项目。

来自MSDN的额外阅读

【讨论】:

  • 您也可以编译一个网站项目,以便所有后面的代码和 App_Code 都被编译成 dll,所有的 aspx 页面都只是存根。但是,它们不会像 Web 应用程序那样编译成单个 dll。
  • 是的,您可以,但我可能错了,您需要使用 msbuild,并且您只是将页面 .cs 文件换成 page.dll。除了第一次启动更快之外,我认为它不会给你带来太多好处
  • +1 感谢您的总结 :-) 我支持您选择 Web 应用程序项目路线。现在的决定是现在或以后转换;-)
  • 其实你可以使用 aspnet_merge.exe 命令将所有编译的代码放到一个 dll 中。这是一篇关于使用 aspnet 编译器管理 dll 的旧文章,但它仍然具有相关性:msdn.microsoft.com/en-us/library/aa479044.aspx
【解决方案2】:

除了 Chris 提供的信息外,您还应该注意,对于 Web 应用程序项目,配置文件不是开箱即用的:

http://www.codersbarn.com/post/2008/06/01/ASPNET-Web-Site-versus-Web-Application-Project.aspx

这里有一个解决方法: http://code.msdn.microsoft.com/WebProfileBuilder

基本上,Web 应用程序项目不会像网站项目那样将 Profile 对象自动添加到每个页面,因此我们无法获得对 web.config 文件中定义的配置文件属性的强类型编程访问。

安东尼 :-)

【讨论】:

  • +1 谢谢你,我不知道这个,因为我以前没有用过它:-)
  • 没有问题。我实际上打算自己修改 N2,但不知道它是基于网站项目的 :-)
【解决方案3】:

我的偏好是使用网站项目而不是网络应用程序。我主要依靠“在浏览器中查看”在开发过程中执行页面,而不是 f5。我可以在不关闭运行时浏览器的情况下保持浏览器窗口打开并修改代码。通常,如果我需要调试,我会将 IDE 附加到适当的进程。以我的经验,这样做比每次我必须编译或进行更改时都编译并重新启动应用程序更有效。如果应用程序有登录页面,这一点会更加放大。每次按下 F5 时都无需登录——当然有办法进行设置。但偏好不是。

【讨论】:

  • +1 有效点,我在我工作的网站上使用它。有趣的是,这也是您使用 asp.net mvc 应用程序项目的方式;构建 > 点击刷新,IDE 中不需要 f5。它确实取决于您正在编写的内容以及您想要实现的目标:-)
猜你喜欢
  • 2012-04-29
  • 2010-11-06
  • 2011-02-03
  • 1970-01-01
  • 2010-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多