Asp.net 我们痛恨经典asp,但现在仍然存在于webforms中

Asp.net 我们痛恨经典asp,但现在仍然存在于webforms中,asp.net,asp.net-mvc,asp-classic,webforms,Asp.net,Asp.net Mvc,Asp Classic,Webforms,我正在列出我的团队从webforms迁移到MVC的原因,我认为一个好的开始是展示“为什么我们应该迁移”以及一系列经典asp和webforms的共同点 例如: Spagetti代码(违反SRP) 经典ASP-每个.ASP文件都像一个大泥球 Webforms-这个大泥球从视图变成了臭名昭著的“代码隐藏” 请记住,我的开发人员不是那种实现MVP之类的东西的类型,这也是我喜欢MVC的部分原因(尽管保持控制器精简将是一种学习经验) 更新 我知道你可以在任何平台上用任何语言制造混乱。我也知道MVC不能解决这

我正在列出我的团队从webforms迁移到MVC的原因,我认为一个好的开始是展示“为什么我们应该迁移”以及一系列经典asp和webforms的共同点

例如:

Spagetti代码(违反SRP)

经典ASP-每个.ASP文件都像一个大泥球
Webforms-这个大泥球从视图变成了臭名昭著的“代码隐藏”

请记住,我的开发人员不是那种实现MVP之类的东西的类型,这也是我喜欢MVC的部分原因(尽管保持控制器精简将是一种学习经验)

更新 我知道你可以在任何平台上用任何语言制造混乱。我也知道MVC不能解决这个问题。我还意识到,需要进行一些真正的指导,让团队写得一团糟,以理解为什么这很难维持。但我觉得这个机会将使我能够表达对SOC/责任驱动设计/可测试性等的需求

关于使用webforms编写更具可维护性的软件:根据我的经验,在webforms中实现MVP这样的表示模式以尊重SRP/提高可维护性/启用单元测试/etc比使用MVC开箱即用的工作要多得多(并且您会得到相同的结果)。它有效吗?是的,我过去曾成功地使用过这种方法。但是,如果我可以转而利用一种更自然的方法来进行web开发,而这种方法是在平台中烘焙出来的,我会的


我想找人指出,一般9-5岁的开发人员在编写经典asp时“想要”摆脱的东西,但在他们进入webforms之后,就再也没有完成过。(再一次-我所合作的大多数开发人员只是简单地接受了他们在经典asp中抱怨的混乱,并将其移到了代码后面,“认为”这是朝着正确方向迈出的一步)。

部分问题是,如果你说MVC视图写得不好,你很容易就会遇到“”和“大泥球”。)“学习经验”保持你的控制器精简,那么你将很难保持你的视图干净整洁

另请参阅其他类似的问题,以及您正在寻找的论点


根据问题的编辑进行编辑

好的,我不喜欢ASP.NET中已被ASP.NET MVC删除/解决的内容:

  • 必须记住设置
    viewstatenabled=false
    以减小页面大小
  • 对控件的客户端id几乎没有控制(这将在ASP.NET 4.0中解决,您可以在其中设置ClientID)
  • 对控件的呈现HTML几乎没有控制(尽管这可以通过CSS控件适配器来缓解,CSS控件适配器将内置于ASP.NET 4.0中,我认为这是默认行为)

  • 对于我来说,在构建基于MVC的网站时,这些是我非常欣赏的主要内容。

    我诚实地认为,您选择切换的理由是错误的。迁移到ASP.NET MVC并不能解决任何这些问题。即使没有更多的意粉代码(或泥球),也有可能拥有一个巨大的视图作为经典的ASP或Webforms

    你的谈话重点应该是关注点的分离、友好的URL(也可以在Webforms中获得)、对页面的更多控制等等

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

    …记下页面底部的短语

    ASP.NET MVC不是反Web表单


    它们都有其正确的用途。因为糟糕的编码而从另一个切换到另一个是没有帮助的。你可以在其中任何一个中这样做…

    ASP.NET/webforms看起来像(借用)在本质上无状态的介质上的状态的“大泄漏抽象”。而这(我被告知)对于WinForms开发人员进入web开发来说是一件好事,“web表单”在我看来始终是一个根本上有缺陷的范例

    当我(最近)开始学习web开发(来自桌面背景)时,我是通过Python/Django和RoR了解它的,我并没有接触过“经典”的ASP.NET、webforms或J2EE。我猜我只是天真地假设了所有web开发(或至少所有大规模web开发)基于MVC模式,它似乎非常适合web。在野外与“经典”ASP.NET的较量让人大开眼界

    假设您在这件事上有任何选择,您为什么不想使用ASP.NET MVC

    与我一起工作的大多数开发人员都只是把事情搞得一团糟 他们在经典asp中抱怨,并将其移至 代码隐藏并“认为”这是正确的一步 方向)

    嗯,这是朝着正确的方向迈出的一步——总比完全不分离要好。不过,是的,这通常还是一个大泥球

    在我乐观的时候,我想,也许它只是把球移动到了代码背后,但也许它播下了“嗯,也许内容应该与展示分开!“在某些人看来,MVC或类似的模式当然是他们最终的目标


    (在我不乐观的时候不要问我想什么…哈哈)

    < p>我要提醒你,你报告的核心问题不是技术问题。对于你描述的开发人员(没有动力,受教育或能力不足),我建议你不要考虑搬到ASP.NET MVC框架。

    MVC框架无法解决团队在工作中学习和使用优秀设计原则缓慢的问题。但是,当前形式的MVC框架将为他们的板块增加额外学习的LOI。MVC框架