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