一、MVC是什么?

    MVC(Model-View-Controller),是视图-模型-控制器的框架,刚開始看见这些概念的时候,我以为是U-D-B呢?视图界面,模型是相应这数据库呢,而控制器是存放的一些业务逻辑,这不就和三层非常像吗?所以非常自然的将其联想到我们的经典三层(U-B-D)。

    既然能让我联想到三层。那这个所谓的新知识就是能够和旧知识联系起来,有相似点。也有不同点。

事实上,MVC和我们的三层还是不太一样的。


    Model:模型,表示应用程序的核心(由于数据就是核心嘛),是处理应用程序数据逻辑的部分。

    View:视图,用来显示数据。是应用程序中处理数据显示的部分。

Controller:控制器。用来处理输入,是应用程序中处理用户交互的部分。

二、为什么要用MVC?





1、同我们为什么使用三层,使用设计模式的理由一样,是为了解耦和。





    (1)我们看传统的WebForm窗口。它包括两个文件。一个是aspx。还有一个是aspx.cs。它们是在同一个WebForm窗口下。

HTML语言,C#语言是合在一个窗口的,没有办法拆分的。







   (2)而在我们的MVC程序中,Controller中包括的是后台逻辑。调用的我们三层中所说的B层接口;View层是ASPX,比如HTML代码。Model是一个中间层。





2、传统的WebForm在性能上存在两个问题:响应时间长,带宽消耗大。





(1)响应时间:server响应请求的耗时。

  用户的请求与反馈步骤例如以下图:




    我们每次请求,都要进行一次转换为HTML输出。而相对照直接写成HTML代码,这样的转换的server响应时间就会比写成纯HTML代码时间要长。


(2)带宽消耗:同一时候可传输多少数据。详情请点击这里:http://www.cnblogs.com/powertoolsteam/p/MVC_one.html



三、MVC框架介绍



    使用了MVC之后,后台逻辑代码放在了Controller控制器中,View视图中是简单的HTML代码。而Model作为一个中间层。例如以下图模型:








    1、用户输入指令
    2、获取控制器,通过控制器将用户指令传递给Model模型。
    3、Model模型,进行业务逻辑推断,调用D层,对数据库进行存取操作。
    4、依据不同的业务逻辑,选择不同的视图View。并将结果反馈给用户。

总结:以上就是对MVC的一些简单认识,刚開始接触MVC,认为它挺简单的。

这些都是从自己看过的资料。加上自己的理解总结的,详细的为什么要有M,V。和C还不是非常清楚。它们各自有什么作用也不是特别清楚,仅仅是简单了解了一下。会简单使用了。

接下来会对它进行一下刨根问底。它们各自都是怎么来的呢?仅仅要懂了它是怎么来的,为什么要用它,后面怎样使用它就特别简单了。


    事实上这些东西都不难,都和我们之前学过的一些东西相似,我们找到同样点和不同点进行对照就easy多了。

    初次接触MVC,有理解的不巧当的地方。还请大家多多不吝赐教。


【MVC】初识MVC的更多相关文章

  1. MVC模式和Spring MVC初识

    概述 传统的Model1和Model2 在Model1的模式下,整个Web应用几乎全部是由JSP页面组成,接受和处理用户请求,并对请求处理后直接做出响应:JSP身兼View和Controller两个角 ...

  2. MVC系列——MVC源码学习:打造自己的MVC框架(四:了解神奇的视图引擎)

    前言:通过之前的三篇介绍,我们基本上完成了从请求发出到路由匹配.再到控制器的激活,再到Action的执行这些个过程.今天还是趁热打铁,将我们的View也来完善下,也让整个系列相对完整,博主不希望烂尾. ...

  3. MVC系列——MVC源码学习:打造自己的MVC框架(三:自定义路由规则)

    前言:上篇介绍了下自己的MVC框架前两个版本,经过两天的整理,版本三基本已经完成,今天还是发出来供大家参考和学习.虽然微软的Routing功能已经非常强大,完全没有必要再“重复造轮子”了,但博主还是觉 ...

  4. MVC系列——MVC源码学习:打造自己的MVC框架(二:附源码)

    前言:上篇介绍了下 MVC5 的核心原理,整篇文章比较偏理论,所以相对比较枯燥.今天就来根据上篇的理论一步一步进行实践,通过自己写的一个简易MVC框架逐步理解,相信通过这一篇的实践,你会对MVC有一个 ...

  5. MVC系列——MVC源码学习:打造自己的MVC框架(一:核心原理)

    前言:最近一段时间在学习MVC源码,说实话,研读源码真是一个痛苦的过程,好多晦涩的语法搞得人晕晕乎乎.这两天算是理解了一小部分,这里先记录下来,也给需要的园友一个参考,奈何博主技术有限,如有理解不妥之 ...

  6. ASP.NET MVC 教程-MVC简介

    ASP.NET 是一个使用 HTML.CSS.JavaScript 和服务器脚本创建网页和网站的开发框架. ASP.NET 支持三种不同的开发模式:Web Pages(Web 页面).MVC(Mode ...

  7. Spring MVC静态资源处理——<mvc:resources /> ||<mvc:default-servlet-handler /> 转载

    Spring MVC静态资源处理——<mvc:resources /> ||<mvc:default-servlet-handler /> mvcmvc:resources  ...

  8. Spring MVC 解读——<mvc:annotation-driven/>(转)

    转自:http://my.oschina.net/HeliosFly/blog/205343 Spring MVC 解读——<mvc:annotation-driven/> 一.Annot ...

  9. ASP.NET MVC 理解MVC模式

    ASP.NET MVC 理解MVC模式 PS:MVC出来很久了,工作上一直没机会用,所以我也没去学.出于兴趣,工作之余我将展开对MVC的深入学习,通过博文来记录所学所得,并希望能得到各位园友的斧正. ...

  10. 【ASP.NET MVC】MVC概述

    描述 本篇文章主要概述ASP.NET MVC,具体包括如下内容: 1.MVC模式概述 2.WebForm概述 3.WebForm与MVC区别 4.ASP.NET MVC发展历程 5.运用程序结构 6. ...

随机推荐

  1. 第四篇:python基础_4

    本篇内容 名称空间与作用域 闭包函数 装饰器 迭代器 生成器 三元表达式 列表解析 生成器表达式 一. 名称空间与作用域 1.名称空间 存放名字的地方,准确的说名称空间是存放名字与变量值绑定关系的地方 ...

  2. 【Luogu】P4462异或序列(莫队)

    题目链接 观察什么时候x到y之间那一段可以被统计 xorsum[x-1]^xorsum[y]=k xorsum[x-1]=xorsum[y]^k||xorsum[y]=xorsum[x-1]^k 莫队 ...

  3. ELF反调试初探

    ELF反调试初探 http://www.freebuf.com/sectool/83509.html ELF(Executable and Linkable Format)是Unix及类Unix系统下 ...

  4. [SDOI2015][bzoj3993] 星际战争 [二分+最大流]

    题面 传送门 思路 首先,有一个非常明显的模型: 将激光武器放到一边,机器人放到另一边,从每一个激光武器向它可以攻击的机器人连边,形成一个二分图 建立附加源点$ss$和附加汇点$tt$,$ss$连所有 ...

  5. 剑指offer42:翻转单词顺序 VS 左旋转字符串(更高效、简便的解法)

    题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串"I am a student." ,则输出" ...

  6. 【tmux】常用命令

    https://www.cnblogs.com/lizhang4/p/7325086.html 复制 prefix [ + vim风格选择复制 新建session tmux new -s name 为 ...

  7. jquery 获取被点击元素的id属性值

    有时候可能需要获取被点击元素的一些信息,此处就以id属性为例子,进行演示一下. $(document).click(function (e){ var v_id=e.target.id; consol ...

  8. Django笔记:常见故障排除

    Django框架下MySQLdb模块在python3中无法使用的问题的解决方案 由于python3环境下目前还没有官方的mysqldb模块,Django框架中又强制要求使用mysqldb,为了解决这个 ...

  9. windows下pip安装python module失败

    C:\Python27\pywin32-214>setup.py -q install Building pywin32 2.7.214.0 Traceback (most recent cal ...

  10. jdbc in postgres

    try { Class.forName("org.postgresql.Driver").newInstance(); String url = "jdbc:postgr ...