2010-12-13 54 views
7

我是一位前端人物,他通过在我的代理机构开展各种项目,选择了ASP.NET WebForms。在新项目中学习MVC,还是坚持使用WebForms?

我有一个开发人员的项目,我想使用/学习MVC - 但他认为它不值得使用MVC。他的观点是,MVC的好处被认为,并且性能不会成为问题,并且最好推动WebForms。

该项目是一个网络应用程序,将为人们提供项目规划工具,创建个人联系人数据库和他们自己的基本网站。

我个人的感受是,我讨厌WebForms网站带来的膨胀--ViewState,一个,巨大的JS文件,缺乏对标记的控制(例如验证控件)。

显然,ASP.NET WebForms链接到资源,但MVC是关于URL结构并解释它们的。

经过讨论和研究之后,我现在认为,由于MVC所谓的大型过渡/学习曲线,使用WebForms确实更好。

我亲眼目睹了Ryan Singer与RoR MVC的合作,并且我惊讶于所有事情的发展速度。

我是否应该接受现在更注重WebForms而不使用MVC,还是应该找到一种让我的同事相信MVC是正确的做法?

+0

道歉,伊恩,为穷人和不一致的语法。在进入会议之前,我急于发帖。感谢编辑,虽然有点迂腐。 – 2010-12-13 12:25:18

回答

6

我强烈建议ASP.NET MVC的前端 - 也许需要一些时间才能进入!但确实如此。例如,如果回顾过去改变任何事情,它就会更加灵活和简单。

我会使用这与LINQ,例如,如果您使用的是数据库。

ASP.NET MVC起初可能看起来非常困难,但一旦进入它,您可以使项目更加快速。这当然是我的意见。

另一件好事是我们已经为Test Driven Development建立了良好的支持。


编辑(补充说明)

一个原因是MVC建成3个部分模型,视图和控制器。这意味着您可以以很好的方式分享标记中的逻辑。我不会详细讨论MVC是如何在这里构建的,因为这是它自己的一个章节! (http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controlle r)

正如我上面提到的,那么你对TDD有非常好的支持,我个人认为我可以使用它只是出于这个原因。 ASP.NET MVC中的URL路由也非常狂热,我错过了ASP.NET中的良好支持。 ScottGu写了一个很好的博客大约只是这一点: http://weblogs.asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx

+0

用剃刀去吧! – Zote 2010-12-13 11:47:46

+1

所以你所做的一点是,维护比Web表单项目更容易?你能解释一下你为什么这么想吗? – 2010-12-13 11:53:27

4

MVC是一个大的学习曲线,因为它是从Web表单非常不同。如果你正在和其他不想学习MVC的人一起做这个项目,那么你也可以坚持使用Web表单。你不能教一个不想学习的人,所以你基本上会无情地旋转你的车轮,并且你已经有了一个网页表单的背景,所以你至少会对环境感到舒适和熟悉,足以使进展。

如果你是自己做这个或者愿意学习MVC的团队,那么我会建议为性能和工具可用性选择更少的路线,而不是学习新的东西并转向框架很大程度上建立在测试驱动开发的概念之上。

Asp.Net MVC是一个非常不同的框架,它有一定的优势,但你也将处理缺乏经验的缺点,所以你需要有一个项目,你可以花时间,因为你毫无疑问,在你得到你想要的东西之前,必须重新启动某些东西。你会开始,学习新的东西,让你回到原点,学习新的东西,让你回到原点,泡沫,冲洗,重复。

+0

这就是我现在所在的地方。总的来说,我的问题是,在项目开始时,现在值得这样做。 – 2010-12-13 13:26:35

+0

@ user315412 - 如果您可以花时间学习它,并且耐心等待,在学习开创性的东西后能够从头开始停止/重新开始,那么我会说是。 MVC在我看来对大型项目来说更好,但即使是一个小项目,学习者也是体面的。 – 2010-12-13 13:55:35

0

这仅仅是为了教育而可能值得学习MVC。它肯定会给前端开发带来好处,但后端开发人员有缺点。然而,对于一个正常数量的客户端工作的小型项目来说,它可能是相同的,所以您可以使用该项目来学习新技术。顺便说一句,我也更喜欢Web窗体,因为它是更高层次的抽象。

通常,如果您有AJAX重型前端,并且需要很多动画和视觉效果,那么对标记的控制非常重要,您应该选择ASP.NET MVC。如果您有大量数据输入和独立于窗口小部件样式的控件,您应该选择Web窗体,因为您可以更好地封装行为,所以可以重复使用很多。

+0

“后端球员的缺点” - >如何呢?我发现它前后很相似。 – Fermin 2010-12-13 12:17:37

+0

@Stilgar - 我没有看到后端家伙的缺点。鉴于LINQ to SQL和强类型模型的用法,我发现它几乎是“后端人”的理想选择。如果您认为Web表单具有“更高级别的抽象”,那么我认为您没有花时间学习MVC。我发现MVC比Web表单具有更高的抽象级别,并且我只是破坏了表面(我是Web表单开发人员中间过渡)。 – 2010-12-13 12:35:29

+0

@Joel组件可以隐藏实现细节,如呈现控件或将HTTP POST转换为.NET事件所需的HTML。因此组件是更高级的抽象。借助Web窗体,您可以开发几乎不了解HTML的网站。它不会是有史以来最好的标记,但你可以做到这一点。 – Stilgar 2010-12-17 12:40:26

0

有100个理由选择MVC或Web窗体。但是鉴于您是前端开发人员,您的学习曲线并不像后端开发人员那样多,他们通常对编码HTML的想法很少。

您现有的技能,如JS,CSS和Html将无缝移植到MVC。