为什么要考虑将ASP.Net MVC或标准ASP.Net与Web项目的表单和控件一起使用?除个人喜好外,原因是什么?您认为哪种项目更适合MVC以及适用于普通ASP.Net的项目?
您是否考虑将当前项目转移到一个或另一个?
解决方法
WebForms是一种抽象,它隐藏了开发人员的Web机制.它允许桌面开发人员相对容易地将他们的技能转移到Web上.虽然它确实部分地实现了这一点,但在实际情况下,通常不久之后抽象就会中断并且必须采用凌乱的解决方法.单元测试很困难,因为处理用户交互的逻辑与UI紧密耦合.典型的WebForms应用程序生成的
HTML远非最佳.它通常是膨胀的,难以阅读并且包含许多内容,这些内容仅用于允许抽象工作,例如,viewstate,这是一个巨大的信息blob,可以帮助抽象给开发人员带来状态错觉,即使Web是无状态媒体.
然而,MVC包含了网络的机制.在Web请求和响应中发生的基本操作作为简单的抽象呈现给开发人员. MVC明确区分了关注点.该模型简单地表示与系统有关的业务对象或实体,以及用于检索和存储这些对象的实例的方法.控制器接受Web请求,对模型执行操作,然后将模型交给视图.该视图纯粹是一个渲染器,用于向用户呈现模型并公开允许用户制定下一个传递给控制器的请求的接口项.这种关注点分离允许相对容易的单元测试.开发人员可以完全控制所生成的HTML,并且不需要存在其他工件(例如,viewstate).
我更喜欢MVC.对于极少数情况,使用Webforms可能很有用,例如快速原型或演示,但我总是建议使用MVC.
至于将项目从Webforms转移到MVC,这显然是非常主观的,取决于应用程序本身和预算约束,但总的来说,我认为这是朝着正确方向迈出的一步.