ASP.NET MVC与Webforms与HTTP处理程序(.ashx) - 哪个是最轻量级的?

时间:2009-05-13 04:02:48

标签: asp.net asp.net-mvc webforms ashx

我计划构建一个简单但高用量的webapp,并且需要建立一个架构。

  • 基本服务器端逻辑/动态数据库 驱动内容大约有六打到 所有人都说十几页 内容
  • 无需重写网址,
  • 非常简单的页面流/路由

目标是发布此应用程序以尽可能少地使用带宽,内存和CPU。那就是说,我的选择是

  1. 在ASP.NET MVC中构建

  2. 使用viewstate构建webforms 停用

  3. 使用带代码的.ashx处理程序构建 连接所有HTML输出 进入它吐出的字符串

  4. 哪个是最轻量级的解决方案?

    我很欣赏到目前为止的回复,但我没有要求最佳解决方案。这是一个简单的应用程序,我想要使用最少的机器/网络资源的解决方案。

8 个答案:

答案 0 :(得分:7)

HttpHandlers 是3个选项列表中最轻量级

就个人而言,我会使用ASP.NET MVC,因为它为您提供了更丰富的开发环境,只需很少的额外服务器开销,特别是如果你关掉大部分东西

例如。角色等。

还可以使用IIS7集成模式并关闭尽可能多的IIS7设置。

答案 1 :(得分:5)

HttpHandlers是最轻量级的,因为ASHX文件背后的接口是IHttpHandler,它是用于Web窗体和MVC的Page对象的基础。

答案 2 :(得分:1)

省略第三个选项,因为如果它全部是使用HttpHandlers构建的,那么很难控制它。

  

基本服务器端逻辑/动态数据库   驱动内容大约有六个到

ASP.NET MVC的一个主要优点是易于分离关注点。 1

  提供所有说的十几页   内容不需要URL重写,   非常简单的页面流/路由

ASP.NET MVC将为您提供一个简单的界面来设置您的路由,一个轻量级,清晰和可控的视图。 1

答案 3 :(得分:1)

在大多数情况下,WebForms将是最重的。与WebForms相比,ASP.Net MVC非常轻巧,速度惊人。

在提供静态内容时使用HttpHandlers构建应用程序来提供页面可能会很快,但如果您打算使用某种模板来提供动态数据,那么您将会给自己带来很多不正当的工作。至于表现,很难用这个选项说,因为你的模板可能很讨厌或可能不是。

答案 4 :(得分:1)

ASP.NET MVC,Web窗体和通用处理程序(.ashx)都是实现IHttpHandler接口的HttpHandler。

在这些选项中,Generic Handler(.ashx)将是最轻量级的。

答案 5 :(得分:0)

ASp.NET MVC尽可能接近HtTP和Html。

答案 6 :(得分:0)

你应该使用MVC,因为你对生成的客户端代码有比WebForms更多的控制权,并且比ashx处理程序更简单。

答案 7 :(得分:0)

MVC非常能让您更好地控制HTML。因此,从带宽的角度来看,它肯定具有更好的性能。有了这个,也可能会产生这种HTML的简洁代码。

但是,MVC不会改善业务/数据层或数据库性能,它只是将它们分开。如果你想分析,有多个层并不能提高性能,只需要程序的结构,这反过来可能会增加性能的方法。

MVC的缺点是学习如何思考MVC并学习如何使用框架。如果这不是问题,那么去MVC,如果你还没有它,它会教你一些好习惯。

最后,HTTP处理程序并不是真的意味着以这种方式使用,它们用于文件代理等。