使用webforms或MVC进行开发是否有明显的生产力提升?
答案 0 :(得分:9)
当您处理ASP.NET MVC与ASP.NET Web窗体的生产力时,请考虑这两个开发人员。
Generic .NET Developer 在编写原始 ASP.NET Web窗体中的代码时效率最高。这是因为他们非常了解事件模型(因为它们在WinForms和WebForms之间进行镜像),并且能够使用此心智模型快速构建网站。
通用Web应用程序开发人员在 ASP.NET MVC 中效率最高,因为该框架反映了他们对Web应用程序的看法 - 没有事件,没有应用程序状态他们已经知道如何编写好的HTML并使用CSS设置样式,他们知道如何将ajax调用写回服务器。
我的主要观点是,根据以前的Web开发经验,不同的开发人员将拥有不同的生产力水平。我个人更喜欢ASP.NET MVC,我可以很快地构建一些东西并让它输出我想要的东西。
我是第二类开发人员,我在Ruby on Rails,Django,ASP.NET Web Forms和ASP.NET MVC中编写了Web应用程序(大多数都很小)。这三个框架之间的Web开发知识几乎可以互换(除了必须知道托管语言 - ruby与python与c#之外)。
我在ASP.NET Web Forms中发现的最令人愤怒的事情是它试图为开发人员(如应用程序状态,Web事件)做太多事情,代码输出通常不会与Web标准兼容,Web Forms 2.0直接与XHTML 1.0 Transitional相关联。与在ASP.NET MVC中编写它相比,任何超出数据库中快速和脏的DataGrid和Form到CRUD行的东西通常会带来更多的痛苦和痛苦。
答案 1 :(得分:7)
没有。就我个人而言,我发现MVC的工作方式更像是我的大脑所做的工作,非常清楚地分离了什么在哪里以及为什么。几个星期后,我用MVC撞出了一个完整的原型商务网站,我敢肯定,至少是使用网络表格的两倍。
答案 2 :(得分:7)
使用MVC,您永远不会花时间尝试解释为什么ItemDataBound和ItemCommand在您期望它们时不会触发。
如果您认为这会节省您的时间,那么MVC可能适合您。
答案 3 :(得分:5)
此时,WebForms更加成熟。我希望,例如,验证(客户端和服务器端)在MVC中有更好的支持。但是,我完全相信,随着时间的推移,这将会有所改善。从我的角度来看,关于MVC的最好的事情是MVC使我的代码更易于测试。我遗留了大量未经测试的WebForms代码,因为它很难测试代码隐藏。现在我可以为所有控制器逻辑编写单元测试。
即使最终证明MVC有点慢(而且我猜它不会),增强的可测试性会让它变得有价值。最终我会收回那段时间,因为以后会有更少的回头修复错误的未经测试的代码。
答案 4 :(得分:3)
我发现MVC更适合Web开发。正如之前的海报所指出的那样,毫无疑问,您不必处理Web表单页面执行生命周期所引发的奇怪错误,从而节省时间。
此外,能够更快地为您的逻辑编写单元测试的能力(并且更少依赖于模拟!)是一个很大的优势。
最后,我发现在使用MVC框架时编写css和客户端脚本要容易得多,因为您可以在HTML元素上指定自己的ID。
答案 5 :(得分:3)
当我听到“快速发展”一词时,我发现人们通常会在“我能以多快的速度开发新解决方案”的背景下使用它。在构建合理的答案之前,必须考虑很多因素。
我在1.0发布之前不久就开始接触ASP.NET MVC。在此之前,我对ASP.NET WebForms非常熟悉并且非常熟悉,但我仍然对整个开发过程感到沮丧。我意识到了关注点分离的目标,并且足够了解WebForms无法与框架创建的当前游戏进行明显的分离。
自从使用ASP.NET MVC以来,我发现很快就发现我错过了很多东西。虽然WebForms允许您“更快”地构建内容,但您基本上被Microsoft的实现所挟持,而不是允许您在不涉及Microsoft的环境中更轻松地消化已建立的标准(例如JavaScript,CSS和AJAX)。此外,新工具,行为和功能的创建不应该受到销售和盈利能力的驱动,而是因为开发人员社区的技术需求需要它。自4月以来,我一直在研究这个当前的MVC项目。我非常喜欢使用这个框架,并且会向任何有兴趣远离WebForms的人推荐它。学习框架需要花费一些时间,但是一旦你理解了它,你就会想知道为什么你从一开始就不能这样做。
您可以使用WebForms更快地构建应用程序,但是,如果您想要专业的网站,您将不得不投资组件库,这些组件库仍然需要您学习这些已建立的标准才能正确使用它们。如果我11岁的儿子明天有兴趣学习Web开发,那么考虑到WebForms或MVC的选择,我的选择就是MVC。话虽这么说,我甚至会在他触及MVC之前指导他学习JavaScript,jQuery和AJAX,因为理解这些框架几乎可以让所有其他框架更容易理解。
就个人而言,我不是“快速发展”的倡导者。我的职业生涯是作为一名企业开发人员,并将内部开发视为一项投资。我宁愿花20%多的时间进行设计和开发,而不是将项目缩短20%只是为了满足不切实际的最后期限。由于维护成本,再教育以及由于新要求导致的架构变更,在初始开发期间“保存”的每一美元将很容易花费至少1.50美元。但是,不是每个人都像我一样思考,所以...我的简单答案就是MVC。
答案 6 :(得分:1)
我认为最终MVC将成为网络开发者的明显赢家。然而,ASP.Net将保留一个非常重要的角色,因为总会有.NET员工认为自己是Web开发人员,他们真的是.NET winform人。 ASP.NET没有MVC可以让你很快地把东西放在一起,但你很容易就会得到可怕的,可怕的,不圣洁的HTML,CSS和javascript。 MVC为精彩打开了大门,但开发人员需要更加严谨的方法。
答案 7 :(得分:0)
在开发的前90%中,WebForms是明显的赢家。这是问题的最后10%,以及MVC的优势所在。
答案 8 :(得分:0)
很奇怪为什么这么多人认为Web Froms不可能获得干净的HTML,使用jquery(和jquery ajax),编写css(?)。您必须始终从工具栏拖放控件,实际上您可以像在MVC中一样编写它。
Webforms页面生命周期,viewstate,数据绑定,updatepanels还需要时间来学习是否要编写好的代码。似乎大多数人都没有花时间做这件事,这就是为什么他们说WebForms“不那么好”。
虽然我是成熟的Web Froms开发人员,但我正在尝试学习MVC(仅仅是为了好玩),并且编写复杂的网站是很好的。但正如我现在看到的,MVC的主要问题是你必须编写很多代码,真的很多!!!
答案 9 :(得分:0)
答案 10 :(得分:-1)
这取决于你的发展方式。
如果你是一个将控件拖到设计师表面上的人,那么很可能很难将这种快速开发与MVC相匹配。
另一方面,如果你把大部分时间花在源视图中,你可能会发现MVC可以让你更有效地这样做。
将AJAX带入图片中,如果你是依赖UpdatePanel的人,MVC对你来说可能是难以言喻的悲惨。
(这并没有开始解决哪种类型的发展更“正确”的主观问题。但我不认为这是这个问题的重点。)
答案 11 :(得分:-5)
WOW。我已经使用ASP.NET控件近5年了,现在我听说这块新手 - MVC
我猜MVC是为php开发人员创建的。我无法看到这样做的任何其他主要原因。 但是,我不知道MVC所以不要听我说。这只是我的猜测。
我非常擅长ASP.NET ASP.NET表单和数据绑定。当我精益MVC时,我会回来发表评论