【问题标题】:ASP.NET MVC vs. Webforms vs. HTTP Handlers (.ashx) - which is the most lightweight? [closed]ASP.NET MVC vs. Webforms vs. HTTP Handlers (.ashx) - 哪个是最轻量级的? [关闭]
【发布时间】:2010-10-25 18:07:18
【问题描述】:
我计划构建一个简单但使用率很高的 web 应用程序,并且需要确定一个架构。
- 基本服务器端逻辑/动态数据库
驱动内容大约六到
十几页服务所有说
内容
- 无需重写 URL,
- 非常简单的页面流/路由
我们的目标是发布此应用程序以使用尽可能少的带宽、内存和 CPU。也就是说,我的选择是
在 ASP.NET MVC 中构建
构建具有视图状态的 Web 表单
已停用
使用带有代码的 .ashx 处理程序构建
连接所有 HTML 输出
变成它吐出的字符串
哪个是最轻量级的解决方案?
我很欣赏到目前为止的回复,但我并不是在寻求最佳解决方案。这是一个简单的应用程序,我想要使用最少机器/网络资源的解决方案。
【问题讨论】:
标签:
asp.net
asp.net-mvc
webforms
ashx
【解决方案1】:
ASP.NET MVC、Web 窗体和通用处理程序 (.ashx) 都是实现 IHttpHandler 接口的 HttpHandler。
在这些选项中,通用处理程序 (.ashx) 是最轻量级的。
【解决方案2】:
HttpHandlers 是您的 3 个选项列表中最轻量级的。
就我个人而言,我会使用 ASP.NET MVC,因为它为您提供了一个更丰富的开发环境,而额外的 服务器 开销很少,尤其是如果你 关闭大部分功能 ..
例如。角色等。
同时使用 IIS7 集成模式并关闭尽可能多的 IIS7 设置等。
【解决方案3】:
MVC 让您可以更好地控制生成的 HTML。因此,从带宽的角度来看,它肯定具有更好的性能。随之而来的是生成此 HTML 的代码的简洁性。
但是,MVC 并没有提高业务/数据层或数据库性能,它只是将它们分开。如果你想分析,多层并不能提高性能,只是程序的结构,这反过来又可能有助于增加性能的方法。
MVC 的一个缺点是学习如何思考 MVC 并学习如何使用该框架。如果这不是问题,请选择 MVC,它会教你一些好习惯,如果你还没有的话。
最后,HTTP 处理程序并不是真的要以这种方式使用,它们是用于文件代理之类的。
【解决方案4】:
HttpHandler 是最轻量级的,因为 ASHX 文件背后的接口是 IHttpHandler,它是用于 Web 窗体和 MVC 的 Page 对象的基础。
【解决方案5】:
在大多数情况下,WebForms 将是最重的。与 WebForms 相比,ASP.Net MVC 非常轻巧且速度惊人。
在提供静态内容时,使用 HttpHandlers 构建应用程序来提供页面可能会很快,但是如果您打算使用某种模板来提供动态数据,那么您将给自己带来很多不必要的工作。至于性能,这个选项很难说,因为你的模板可能很糟糕,也可能不是。
【解决方案6】:
您应该使用 MVC,因为与 WebForms 相比,您对生成的客户端代码有更多的控制权,并且比 ashx 处理程序更简单。
【解决方案7】:
省略第三个选项,因为如果应用程序都是使用 HttpHandlers 构建的,则很难控制它。
基本服务器端逻辑/动态数据库
驱动内容大约六打到
ASP.NET MVC 的主要优点之一是易于分离关注点。 +1
十几页服务所有说
内容无需 URL 重写,
非常简单的页面流/路由
ASP.NET MVC 将为您提供一个简单的界面来设置您的路线,一个轻量级、清晰且可控的视图。 +1
【解决方案8】:
ASp.NET MVC 尽可能接近 HtTP 和 Html。