我几个月前检查过MVC并没有真正得到它...但最近我已经成为一名更好的程序员,我认为这是有道理的..这是我的理论..告诉我,如果我做对了
在微软Devs的90年代,我们有了经典ASP。这在同一页面上混合了VBscript和HTML。因此,您需要自己创建所有HTML并混合使用HTML和VBScript。这不被认为是理想的。然后.NET出现了,每个人都喜欢它,因为它类似于事件驱动的VB 6风格编程。它创建了绑定数据到ASP Servier控件的抽象。它使得枚举数据很容易在屏幕上显示一行。 然后最近Jquery和SOA概念混合在一起。现在人们认为..当我可以直接使用.NET作为数据提供者并使用jquery AJAX调用来获取数据并使用它创建HTML时,为什么要创建这个额外的抽象层直接..不需要Webforms抽象层..
Sowe将像1999年一样直接创建HTML。
所以MVC就是说停止假装像WEb编程是一个VB6应用程序!直接生成HTML!
我错过了什么吗?
所以我想知道..对于你们那些使用MVC的人......这种事情一旦你习惯了它你永远不想回到webforms吗?
答案 0 :(得分:5)
上帝,我非常喜欢MVC,我甚至认为单词不能捕捉到我的感受:)
从花时间开发的观点来看,我认为MVC和WebForms是平等的。
在WebForms中,我会花费很多时间与DataGrid和其他控件进行斗争,以实现我想要的和我想要的。更不用说使用jQuery将UpdatePanels替换为不再可行的解决方案(性能明智)。
在MVC中,我从一个空白的平板开始并根据我的需要进行模塑。需要我说更多吗?
答案 1 :(得分:1)
有些时候,我希望我可以插入一个网格或datareader,将它连接起来,它就像我在ASP.NET中那样工作。在ASP.NET MVC中创建应用程序可以说是更多的工作。但后来我记起了我在ASP.NET中必须处理的所有挑剔的事情,比如ViewState,代码隐藏和魔法id。页面呈现管道对我来说是如此不透明,以至于我从来没有真正理解正确使用代码隐藏事件。
ASP.NET MVC看起来更干净,组织得更好,而且我可以更好地控制我的应用程序及其标记。
那就是说,我很高兴您可以混合使用ASP.NET和ASP.NET MVC页面,因为在ASP.NET MVC中有一些你无法做的事情,比如使用服务器控件。 ASP.NET 4.0中的新增强功能应该使专用的ASP.NET开发人员能够更轻松地生成具有更好控制标记的应用程序。
答案 2 :(得分:1)
我认为它是因为Webforms是一种快速而肮脏的方式,可以使网站运行并运行复杂的功能。它们允许开发人员不要专注于控制器的许多方面,允许他们使用对用户来说具有高开销的工具(视图状态,更新面板等)。
MVC尽管从开发人员的角度进行了一些规划,但通过尝试重新设计webform-tool的功能,开发人员通过大量“微调”为用户提供了更好的产品。
更不用说MVC允许轻松进行TDD集成,显然这对于拥有多个开发人员的大型项目来说是一个优势。
对于大多数生产高流量站点,MVC将是适当的工具,但Webforms可能是制作快速原型和实验存根的理想工具。答案 3 :(得分:0)
MVC旨在为您提供使用模型 - 视图 - 控制器模式设计Web应用程序的好处,即分离关注点,而不是强制您手动编写HTML。
答案 4 :(得分:0)
我认为这会让你更多地考虑你在做什么 - 在webforms中,很容易删除一个更新面板,并且没有真正考虑性能的AJAXy样式页面。使用MVC,通过jQuery对单个控制器操作进行集中的AJAX调用会更加清晰 - 一切都要轻得多。
没有任何页面事件结构可以担心,并且没有Viewstate可以作为拐杖依赖 - 我认为这通常会促使您走向更好的代码。
答案 5 :(得分:0)
我们有些人必须这样做。我与许多不同的客户合作,虽然我最近的项目是使用MVC,但我现在回来看一个包含Webforms和经典asp的应用程序套件。
而我所能说的只是过渡回来非常非常痛苦。