在学习MVC之前对asp.net MVC已经有了一些了解,但是还是有很多的疑问,接下来我慢慢来看书学习并带着问题写博客以作记录。
1.MVC是什么?
2.Asp.net MVC和传统的Asp.net WebFrom开发方式有什么区别?
3.为什么要使用MVC?
4.asp.net MVC好处
5.asp.net MVC使用的基本原则
6.MVC版本问题
首先1.MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面 显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于 映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。-来源百度百科
一般来说MVC是一种编程思想,而.Net程序员眼里一般指的是框架。
2.Asp.net WebFrom开发利用服务器控件和有用的状态(此处我理解为类似ViewState和SessionState等)来处理后台的复杂事物。
传统的Asp.net WebFrom具有的优点是code-behind即代码后置,aspx页面纯净的只有HTML代码和一些数据控件样式js等,而逻辑代码全部写在后台。当然使用方便的控件也让他更易于上手开发。
缺点:Asp.net WebFrom虽然上手容易但是页面生命周期复杂,例如我曾经做过一个后台管理的项目一个配置的页面上有母版页,子页面,母版页用户控件,子页面用户控件,net的ajax控件。这里除去net的ajax控件,其他的都分别有自己的一整套完整的生命周期事件,初始化->加载->加载完毕前->加载完成->加载完成后等等,我只是简单的列举,asp.net页面生命周期比这个复杂不做详细的研究。而最终ajax控件也会影响到你的页面显示效果,这样一个复杂的页面并没有什么意义,对于维护来说要修改一个显示的数据或者顺序是很头疼的一件事情。可能你需要页面加载状态的判断也无法很好的获取。
这里我找到一个文章这里专门说了一些两者之间的比较,我不是完全认同作者觉得作者并没有完全的说服我,但是自己没有找到更多的对比 MVC与Asp.net对比
就我个人而言还没有做过MVC开发,但是公司有MVC的项目,目前来说MVC都坐在公司面向客户的网站上,而公司自己用的后台老系统并没有做MVC可能考虑的是成本与效益问题,后台本身压力不大不用升级。
3.我认为上面对比中比较能说服我使用MVC的理由,更加简洁,更加接近原始的“请求-处理-响应”
4.在net平台上,托管代码,利用net语言新特性lamba表达式,动态和匿名类型。
5. 1)约定优于配置
2)不重复(DRY原则)
3)尽量保持可插拔性(pluggability)
6.目前MVC到了6.0版本,不过常用的是4.0。
以前都没去关心 System.Web.UI 和System.Web,总是在Asp.net里面使用。
-System.Web.UI :Web Form层,由服务器控件和ViewState组成。
-System.Web:管道程序,提供基本的Web堆栈,其中包括组件模块,处理程序和Http堆栈等等。