【发布时间】:2009-10-12 06:13:11
【问题描述】:
您为什么会考虑在 Web 项目中使用带有表单和控件的 ASP.Net MVC 或标准 ASP.Net?除了个人喜好,还有什么原因?你觉得什么样的项目更适合MVC,什么样的项目适合普通的ASP.Net?
您是否会考虑将您当前的项目转移到一个或另一个?
【问题讨论】:
标签: asp.net asp.net-mvc
您为什么会考虑在 Web 项目中使用带有表单和控件的 ASP.Net MVC 或标准 ASP.Net?除了个人喜好,还有什么原因?你觉得什么样的项目更适合MVC,什么样的项目适合普通的ASP.Net?
您是否会考虑将您当前的项目转移到一个或另一个?
【问题讨论】:
标签: asp.net asp.net-mvc
ASP.NET Web Forms 和 MVC 是 Microsoft 开发的两个 Web 框架 - 它们都是不错的选择。任何一个 Web 框架都不会被另一个替代,也没有计划将它们“合并”到一个单一的框架中。持续的支持和开发由 Microsoft 并行完成,两者都不会“消失”。
这些 Web 框架中的每一个都有优点/缺点 - 在开发 Web 应用程序时需要考虑其中一些。可以使用任何一种技术来开发 Web 应用程序 - 它可以使特定应用程序的开发更容易选择一种技术而不是另一种技术,反之亦然。
ASP.NET 网络表单:
ASP.NET MVC:
身份验证、授权、配置、编译和部署都是两个 Web 框架之间共享的功能。
【讨论】:
WebForms 是一种对开发人员隐藏 Web 机制的抽象。它允许桌面开发人员相对轻松地将他们的技能转移到网络上。虽然它确实在一定程度上实现了这一点,但在实际场景中,通常在抽象中断之前不久,人们就不得不采用混乱的解决方法。单元测试很困难,因为处理用户交互的逻辑与 UI 紧密耦合。典型的 WebForms 应用程序生成的 HTML 远非最佳。它通常臃肿、难以阅读,并且包含大量内容,这些内容只是为了让抽象能够工作,例如viewstate,它是一个巨大的信息块,可以帮助抽象为开发人员提供状态的错觉,即使 Web 是一种无状态的媒介。
然而,MVC 包含了 Web 的机制。 Web 请求和响应中发生的基本操作作为简单的抽象呈现给开发人员。 MVC 有明确的关注点分离。该模型仅表示系统所关注的业务对象或实体,以及用于检索和存储这些对象实例的方法。控制器接受 Web 请求,对模型执行操作,然后将模型交给视图。视图纯粹是一个渲染器,用于向用户呈现模型并公开界面项,从而允许用户制定下一个请求以传递给控制器。这种关注点分离允许相对容易的单元测试。开发人员可以完全控制生成的 HTML,并且不需要存在其他工件(例如视图状态)。
我更喜欢 MVC。在极少数情况下,使用 Webforms 可能很有用,例如一个快速的原型或演示,否则我总是推荐使用 MVC。
至于将项目从 Webforms 转移到 MVC,这显然是非常主观的,并且取决于应用程序本身和预算限制,但总的来说,我相信这是朝着正确方向迈出的一步。
【讨论】:
您可以发现 ASP.Net MVC 与普通 ASP.Net 相比有许多不同之处和优势
应用程序。如果不是请访问堆栈溢出页面。
Biggest advantage to using ASP.Net MVC vs web forms
为您的应用程序选择 MVC 概念的原因在很多方面有所不同
你的申请有什么用?无论是论坛、报告工具还是内网网站
是否要遵循设计模式?
如果是,那是 MVC 还是其他??
您是否需要模块化来进行未来的增强?
您是否需要完全控制您的代码?
是否应该从开发人员的角度对测试部分提供更好的支持?
如果对这些事情有把握,那么您可以将您的应用程序移至 MVC 框架模型。
最好继续使用 ASP.Net Web.apps,因为它包含所有最新的
具有当前行业所需的功能。
【讨论】: