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堆栈等等。

时间: 2024-08-30 14:43:20

MVC学习 (一)的相关文章

Spring MVC 学习笔记(二):@RequestMapping用法详解

一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.xml中配置 <servlet>     <servlet-name>servletName</servlet-name>     <servlet-class>ServletClass</servlet-class> </servlet>

ASP.NET MVC学习系列(二)-WebAPI请求

继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现数据调用. 继续使用上一文章中的示例,添加一个index.html页面,添加对jquery的引用. 一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax({type:"get"}) 来实现: 请求的后台Action方法仍为上篇文章中的GetU

MVC学习笔记索引帖

[MVC学习笔记]1.项目结构搭建及单个类在各个层次中的实现 [MVC学习笔记]2.使用T4模板生成其他类的具体实现 [MVC学习笔记]3.使用Spring.Net应用IOC(依赖倒置) [MVC学习笔记]4.使用Log4Net来进行错误日志的记录 [MVC学习笔记]5.使用Controller来代替Filter完成登录验证(Session校验) [MVC学习笔记]6. 使用Memcache+Cookie解决分布式系统共享登录状态 [MVC学习笔记]7.使用极验验证来制作更高逼格的验证码

ASP.NET MVC学习之控制器篇

一.前言 许久之后终于可以继续我的ASP.NET MVC连载了,之前我们全面的讲述了路由相关的知识,下面我们将开始控制器和动作的讲解. ASP.NET MVC学习之路由篇幅(1) ASP.NET MVC学习之路由篇幅(2) ASP.NET MVC学习之路由篇幅(3) 二.正文 1.IController的使用 这个接口可能很多人都没有使用过,但是我们常用的Controller类实现了这个接口,而且只要实现这个接口就可以作为一个控制器,当然很多的内部的处理就要我们自己去做了. 下面我利用ICont

Asp.Net MVC学习记录之“一个实体对象不能由多个 IEntityChangeTracker 实例引用”

原文:浅谈 js 正则之 test 方法 其实我很少用这个,所以之前一直没注意这个问题,自从落叶那厮写了个变态的测试我才去看了下这东西.先来看个东西吧. ? 1 2 3 4 5 var re = /\d/; console.log( re.test("1") ); console.log( re.test("1") ); console.log( re.test("1") ); console.log( re.test("1"

前端MVC学习总结——AngularJS验证、过滤器

前端MVC学习总结--AngularJS验证.过滤器 目录 一.验证 二.过滤器 2.1.内置过滤器 2.1.1.在模板中使用过滤器 2.1.2.在脚本中调用过滤函数 2.2.自定义过滤器 三.指令(directive) 3.1.支持AngularJS功能的指令 3.1.1.应用与模块(ng-app) 3.1.2.控制器(ng-Controller) 3.1.3.包含(ng-Include) 3.1.4.不绑定(ngNonBindable) 3.2.扩展表单元素的指令 3.2.1.ng-opti

ASP.NET MVC学习之过滤器篇(2)

下面我们继续之前的ASP.NET MVC学习之过滤器篇(1)进行学习. 3.动作过滤器 顾名思义,这个过滤器就是在动作方法调用前与调用后响应的.我们可以在调用前更改实际调用的动作,也可以在动作调用完成之后更改最终返回的结果,当然很多人一定不太明白这个到底可以干什么, 下面我们举一个比较实际的例子: 相信理解过网站的安全的一定知道跨站请求(CSRF具体可以自行百度,这里我就不去解释了),当然也有解决方案,那就是给页面中增加一个识别码,当页面进行POST请求时,首先判断识别码是否正确, 如果正确则继

PHP实例开发(3)PHP中MVC学习之ThinkPHP

PHP中MVC学习之ThinkPHP 1.什么是MVC MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的是将M和V的实现代码分离 MVC是一个设计模式,它强制性的使应用程序的输入.处理和输出分开.使用MVC应用程序被分成三个核心部件:模型.视图.控制器.它们各自处理自己的任务. 2.为什么要使用 MVC 首先,最重要的一点是多个视图能共享一个模型,现在需要用越来越多的方式来访问你的应用程序.由于模型返回的数据没有进行格式化,所以同样的构件能

[Spring MVC]学习笔记--DispatcherServlet

在上一篇我们介绍了Servlet,这一篇主要来看一下MVC中用到的DispatcherServlet(继承自HttpServlet). 1. DispatcherServlet在web.xml中被声明. <web-app> <servlet> <servlet-name>example</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet&l

(转)ASP.NET MVC 学习第一天

天道酬勤0322 博客园 | 首页 | 发新随笔 | 发新文章 | 联系 | 订阅  | 管理 随笔:10 文章:0 评论:9 引用:0 ASP.NET MVC 学习第一天 今天开始第一天学习asp.net mvc,写的不是很好,高手不要喷,希望大家能一起进步学习. 好了,开始学习 新建项目,选择mvc 4应用程序 接下来选择基本,视图引擎当然要选择Razor,如果在选择aspx那我们就没必要用mvc喽 在这里我们简单说一下,项目模板如果选择空,这就需要我们自己进行导入很多文件,而选择基本vs会