日期:2014-05-17  浏览次数:20813 次

新手对MVC的困惑
正式接触.NET一年多了,可是对很多人所说.NET精华MVC还不是很了解,看了一些MVC的文章也感到很不解

我觉得MVC很复杂,配置起来很麻烦,而且有BUG调试也很麻烦,性能也不好,没有普通的View-DBHelper模式简便直观,直接写SQL,然后前台用Jquery+CSS调用页面Webservice很方便也很灵活多变。

各位,能通俗点告诉我MVC到底好在什么地方么?

------解决方案--------------------
网页程序分2类,一类是企业内部使用的加B/S系统,一部是广域网上的网站。
Asp.net Form针对企业内部可以做到快速开发。但是对于外部的网站,往往是要求精益求精,需要很多精细化处理的部分,Asp.net From控件模式在这方面就比较吃力了,如果不用控件又失去优势了,Asp.net MVC适应了这种需要。
------解决方案--------------------
MVC框架就相当于JSP中的Structs2+Spring+Hibernate框架。这样复杂的框架是用于在开发大型网站时保持代码的面向对象性质。
M是指Model层,MVC3中的M用的是ADO.NET的EntityFramework,这样可以把复杂的数据模型(包含很多复合类,导航属性。。。)抽象成一个个的类。如果你不用EF,那么要实现这些数据模型你就得写很复杂的SQL,这对数据层的程序员来说是很痛苦的一件事,而且你还得担心V层或者C层的程序员能否正确使用这些SQL语句。最可怕的就是当M层程序员辛辛苦苦把SQL写好之后发现换数据库了,那么一切都得推到重来。
V是指View层,MVC3中的V用的是Razor框架,MVC2中没有用Razor。这样的好处就是把页面的逻辑代码和页面的表现代码分开来。就是说当页面的逻辑改变了,页面的样子不用改,页面的样子改变了,页面的逻辑不用改。这样就实现了面向对象的性质。
C是指Control。这一层由很多Controller组成。这些Controller决定网站的行为。比如不用用户点击同一个按钮执行不同的操作等等。大型网站的逻辑关系比较复杂,你就需要用Controller来管理各种各样的网站行为。C层框架可以让你在逻辑关系非常复杂的时候也能保持代码的简洁性。

总而言之MVC框架就是让你在设计逻辑关系非常复杂的大型网站的时候保持代码的可用性。对于中小型网站来说只用M层实体框架再加上CodeBehind技术就可以了。用这些框架反而会增加开发时间。