我们讨厌经典asp的东西,但今天仍然存在于webforms中

Tor*_*ups 10 asp.net asp.net-mvc webforms asp-classic

我正在研究我的团队从webforms转移到MVC的原因列表,我认为一个好的起点是展示"为什么我们应该迁移",其中包括经典的asp和webforms都有的共同点.

如:

通心粉代码(SRP违规的)

传统的ASP -每个.asp文件感觉就像泥的大球
Web表单 -泥的这个大球从视图中臭名昭著的"代码隐藏"去

请记住,我的开发人员不是实现类似MVP的类型,而不是被推送,这是我喜欢MVC的原因之一(尽管保持控制器很薄将是一种学习体验)

更新 我知道您可以在任何平台上创建任何语言的混乱.我也知道MVC无法解决这个问题.我也意识到需要做一些真正的指导才能让团队写一个烂摊子来理解为什么这很难维护.但我觉得这个机会让我能够表达对SOC /责任驱动设计/可测试性等的需求.

关于使用webforms编写更易维护的软件:根据我在webforms中实现MVP等表示模式以尊重SRP /增加可维护性/启用单元测试等的经验比开箱即用的MVC要多得多(并且你得到相同的结果) ).它是否有效 - 是的,过去我采用这种方法取得了成功.但是,如果我能够利用更加自然的方法来进行平台上的Web开发,我会的.

我一直在寻找有人指出平均9-5开发人员"想要"在他们编写经典asp之后远离的事情,但是在他们进入we​​bforms后从未完成过.(再一次 - 我工作的大多数开发人员只是把他们在经典asp中抱怨的混乱局面转移到后面的代码中,并且"认为"这是朝着正确方向迈出的一步).

Dal*_*ale 13

ASP.NET /webforms似乎(从Joel Spolsky借用)是一种基本无状态媒体的" 大漏洞 ".虽然这(我被告知)对于WinForms开发人员进入Web开发非常有用,但对于这个原因,"Web表单"在我看来一直是一个根本上存在缺陷的范例.

当我(最近)开始学习Web开发(来自桌面背景)时,我通过Python/Django和RoR介绍它,我并没有真正接触过"经典"ASP.NET,webforms或J2EE .我想在我的天真中,我想我只是假设所有的Web开发(或者至少所有的大规模Web开发)都基于MVC模式,它似乎非常适合网络.在野外遇到"经典"ASP.NET已经令人大开眼界o_O

假设你有任何的选择,在这个问题上,为什么你会希望使用ASP.NET MVC?

  • 此外,是是是是,是的,ASP.NET是一个"大漏洞抽象". (5认同)

Jus*_*ner 10

在我的诚实意见中,你正在寻找切换的错误理由.迁移到ASP.NET MVC不会解决任何这些问题.如果没有更多的意大利面条代码(或泥球)作为经典的ASP或Webforms,仍然可以拥有一个巨大的视图.

您的谈话要点应该更多地考虑到关注点,友好的URL(Webforms中也有),对页面的更多控制等等.

您也可以查看Microsoft的这篇博文:

Web窗体与ASP.NET MVC

...记下页面底部的短语.

ASP.NET MVC不是反Web表单

他们都有适当的用途.由于编码不良而从另一个切换到一个并不会有帮助.你可以在任何一个......


Zha*_*uid 3

部分问题在于,您很容易就会出现“意大利面条式代码”和“大团泥”以及写得不好的 MVC 视图 - 如果您说这将是一次“学习经历”,让您的控制器保持精简,那么您就会也很难保持您的视图干净整洁。

另请参阅StackOverflow.com 搜索“WebForms vs MVC”,了解其他类似问题以及您正在寻找的参数类型。


编辑以回应问题的编辑

好吧,ASP.NET 中我不喜欢的东西已被 ASP.NET MVC 删除/解决了:

  1. 必须记住设置ViewStateEnabled = false减小页面大小。
  2. 对控件的客户端 ID 几乎没有控制(但这将在 ASP.NET 4.0 中得到解决,您可以在其中设置 ClientID)。
  3. 对控件的渲染 HTML 几乎没有控制(尽管这可以通过 CSS 控件适配器来缓解,它将内置于 ASP.NET 4.0,并且我认为这是默认行为)。

这些是我在构建基于 MVC 的网站时真正欣赏的主要内容。