MVC学习 (一)
在学习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堆栈等等。
MVC学习 (一)的更多相关文章
- MVC学习系列4--@helper辅助方法和用户自定义HTML方法
在HTML Helper,帮助类的帮助下,我们可以动态的创建HTML控件.HTML帮助类是在视图中,用来呈现HTML内容的.HTML帮助类是一个方法,它返回的是string类型的值. HTML帮助类, ...
- Spring MVC 学习 -- 创建过程
Spring MVC 学习 -- 创建过程 Spring MVC我们使用的时候会在web.xml中配置 <servlet> <servlet-name>SpringMVC< ...
- 前端MVC学习总结——AngularJS验证、过滤器
前端MVC学习总结--AngularJS验证.过滤器 目录 一.验证 二.过滤器 2.1.内置过滤器 2.1.1.在模板中使用过滤器 2.1.2.在脚本中调用过滤函数 2.2.自定义过滤器 三.指令( ...
- 《Spring MVC学习指南》怎么样?答:书名具有很大的欺骗性
2016年6月21日 最近,因为工作需要,我从网上买了一本<Spring MVC学习指南>,ISBN编号: 978-7-115-38639-7,定价:49.00元.此书是[美]Paul D ...
- PHP实例开发(3)PHP中MVC学习之ThinkPHP
PHP中MVC学习之ThinkPHP 1.什么是MVC MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的是将M和V的实现代码分离 MVC是一个设 ...
- Asp.net MVC 学习系列(一)序
题外话 公司本月开始提供早餐服务,2块天一餐,包括粥,两个包(听说是利口福供应的),一个鸡蛋.良心企业.公司原本有一个内部订餐系统,用Delphi开发的,开发的人早就走光了,也没有留下什么文档,现在项 ...
- MVC学习(四)几种分页的实现(3)
在这篇MVC学习(四)几种分页的实现(2)博文中,根据URL中传入的两个参数(页码数,首页.上一页.下一页.末页的标记符)来获得对应的分页数据, 只是传入的参数太多,调用起来不太方便(标记符不能够写错 ...
- ASP.NET MVC学习之Ajax(完结)
一.前言 通过上面的一番学习,大家一定收获不少.但是总归会有一个结束的时候,但是这个结束也意味着新的开始. 如果你是从事ASP.NET开发,并且也使用了第三方控件,那么一定会觉得ASP.NET开发aj ...
- ASP.NET MVC学习之视图篇(2)
继ASP.NET MVC学习之视图(1)学习 4.HTML辅助器 虽然在ASP.NET MVC中我们已经摆脱了ASP.NET的控件,但是对于页面中需要循环标签的情况依然还是存在,可能很多人认为用for ...
- ASP.NET MVC学习之过滤器篇(2)
下面我们继续之前的ASP.NET MVC学习之过滤器篇(1)进行学习. 3.动作过滤器 顾名思义,这个过滤器就是在动作方法调用前与调用后响应的.我们可以在调用前更改实际调用的动作,也可以在动作调用完成 ...
随机推荐
- SQL按汉语拼音首字母排序
以常用到的省的数据表(province)为例,其中name字段为省的名称,SQL语句如下: ))) as py ,a.name from province a left outer join ( se ...
- Android-------设置TextView同时显示图片和文本,并控制图片大小
//获取资源图片 Drawable leftDrawable = getResources().getDrawable(R.drawable.comment_parise); //设置 ...
- Android中获取apk基本信息
一 PackageManager可以获得的所有包节点信息: 1,所有节点的基类:PackageItemInfo: 2,PackageInfo:package的全面信息,与AndroidManifest ...
- Sql语句不能识别Go的解决办法(动态创建表的触发器)
问题来源 用sqlserver直接打开sql文本,执行没问题,但是当用Sqlcommand类执行cmdtext命令文本时总是失败报错. 原因分析及解决 用数据库直接执行sql语句没问题,甚至还可以用G ...
- 对 Xcode 菜单选项的详细探索(干货)
http://www.cocoachina.com/ios/20151204/14480.html
- ios 异步多线程 获取数据
简介 iOS有三种多线程编程的技术,分别是: (一)NSThread (二)Cocoa NSOperation (三)GCD(全称:Grand Central Dispatch) 这三种编程方式 ...
- XML 解析中,如何排除控制字符
XML 解析中,如何排除控制字符 今天在解析一个中文的 XML时,始终报错 PCDATA invalid Char value 21 in Entity ,查询了一下这个 21 的ascii 值,发现 ...
- WAMP下定义wordpress固定连接出现文章页面404
在修改为如下设置后,一切更新正常,但回到博客主页访问单独文章时出现了404问题 最后一项改为index.php/%postname%后可正常访问,但是去掉那个php文件则不行. 找到的解决方法为:开启 ...
- HTML5 canvas 在线画笔绘图工具(一)
HTML5 canvas 在线画笔绘图工具(一) 功能介绍 这是我用Javascript写的第一个程序,在写的过程中走了很多弯路,所以写完之后想分享出来,给与我一样的初学者做为学习的参考,同时在编写这 ...
- NAS4Free 安装配置 -- 目录
淘了个DIY的NAS主机,装了3块硬盘,安装配置NAS4Free,用来存储照片.电影等资料,并兼做下载机. 现在把拆箱.安装.配置过程记录下来,供有兴趣的同学参考. NAS4Free 安装配置(一)开 ...