首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们讨厌经典asp的东西,但今天仍然存在于webform中。

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

Stack Overflow用户
提问于 2009-09-25 12:58:26
回答 5查看 543关注 0票数 10

我正在为我的团队列出从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中抱怨的混乱,并将其移到后面的代码中,并“认为”这是朝着正确方向迈出的一步)。

EN

回答 5

Stack Overflow用户

发布于 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?

票数 13
EN

Stack Overflow用户

发布于 2009-09-25 13:03:16

老实说,你找错理由了。迁移到ASP.NET MVC并不能解决任何这些问题。仍然有可能拥有一个巨大的视图,如果不是更多的话,意大利面代码(或泥球)与经典的ASP或Webforms一样多。

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

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

Web与ASP.NET MVC

...take注意页面底部的短语。

ASP.NET MVC不是反Web表单。

它们都有其正确的用途。从另一个转换到另一个,因为编码不好,不会有任何帮助。你可以在任何一个..。

票数 10
EN

Stack Overflow用户

发布于 2009-09-25 13:03:04

问题的一部分是,您可以很容易地使用编写不好的MVC视图来获得"意大利面码“和”大泥球“--如果您说这将是一种”学习体验“,使您的控制器保持较薄,那么您也将很难保持视图的整洁。

有关其他类似的问题,请参见StackOverflow.com搜索"WebForms vs MVC“,这些问题包含您要查找的参数类型。

编辑对问题编辑的回应

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

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

这些是我在构建基于MVC的站点时非常欣赏的主要事情。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1477152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档