我正在为我的团队列出从webforms到MVC的原因清单,我认为一个很好的起点是展示“为什么我们应该迁移”以及经典的asp和webforms都有共同之处。
例如:
Spagetti代码(违反SRP)
经典ASP -每个.asp文件感觉就像一个大泥球
Webforms --这个巨大的泥球从视野中消失到臭名昭著的“代码背后”。
请记住,我的开发人员不是那种实现像MVP w/out被推送的类型,这也是我喜欢MVC的原因之一(尽管保持控制器薄将是一种学习体验)。
更新我知道,在任何平台上,您都可以在任何语言中造成混乱。我也知道MVC不会解决这个问题。我还意识到,需要做一些真正的指导,才能让一个团队写得一团糟,以理解为什么这很难维持。但我认为,这次机会将使我能够表达对SOC/责任驱动的设计/可测试性/等等的需求。
关于使用webforms编写更可维护的软件:根据我的经验,在webforms中实现MVP这样的表示模式以尊重SRP/增加可维护性/启用单元测试/etc比使用MVC开箱即用(并且得到相同的结果)要做的工作要多得多。它能起作用吗?是的,我过去在这种方法上取得了成功。但是如果我可以利用一种更自然的方法来开发这个平台,我会的。
我在寻找一个人来指出一般9-5开发人员在编写经典asp时“想要”的东西,但是在他们进入webforms之后,他们却从来没有遵循过。(同样地,我工作的大多数开发人员只是简单地接受了他们在经典asp中抱怨的混乱,并将其移到后面的代码中,并“认为”这是朝着正确方向迈出的一步)。
发布于 2009-09-25 13:21:13
ASP.NET/webforms似乎(借用乔尔·斯波斯基)是一种在本质上无状态介质上的状态“大泄漏抽象”。虽然这(我被告知)对于WinForms开发人员进入web开发是很好的,但“WinForms”在我看来一直是一个根本上有缺陷的范例。
当我(最近)开始学习web开发(来自桌面背景)时,我是通过Python/Django和RoR向它介绍的,我并没有真正接触到“经典”ASP.NET、webforms或J2EE。我猜在我的天真中--我想我只是假设所有的web开发(或者至少所有大规模的web开发)都是基于MVC模式的,这似乎是非常适合web的。在野外遇到“经典”ASP.NET的时候..。睁眼o_O
假设您在这个问题上有任何选择,为什么不希望使用ASP.NET MVC?
发布于 2009-09-25 13:03:16
老实说,你找错理由了。迁移到ASP.NET MVC并不能解决任何这些问题。仍然有可能拥有一个巨大的视图,如果不是更多的话,意大利面代码(或泥球)与经典的ASP或Webforms一样多。
你的谈话要点应该更多地遵循关注点的分离、友好的URL(也可以在Webforms中获得)、对页面的更多控制等等。
您也可以查看Microsoft的这篇博客文章:
Web与ASP.NET MVC
...take注意页面底部的短语。
ASP.NET MVC不是反Web表单。
它们都有其正确的用途。从另一个转换到另一个,因为编码不好,不会有任何帮助。你可以在任何一个..。
发布于 2009-09-25 13:03:04
问题的一部分是,您可以很容易地使用编写不好的MVC视图来获得"意大利面码“和”大泥球“--如果您说这将是一种”学习体验“,使您的控制器保持较薄,那么您也将很难保持视图的整洁。
有关其他类似的问题,请参见StackOverflow.com搜索"WebForms vs MVC“,这些问题包含您要查找的参数类型。
编辑对问题编辑的回应
好吧,在ASP.NET中我不喜欢的东西已经被ASP.NET MVC删除/解决了:
ViewStateEnabled = false以减小页面大小。这些是我在构建基于MVC的站点时非常欣赏的主要事情。
https://stackoverflow.com/questions/1477152
复制相似问题