一、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. CentOS7.3系统启动故障修复

    CentOS7.3系统启动故障修复 破解CentOS7的root口令方法一 启动时任意键暂停启动菜单,选择启动内核菜单项 按 e 键进入编辑模式 将光标移动 linux16 开始的行,添加内核参数rd ...

  2. git repo gerrit 的关系

    Git作为一个版本控制工具,功能很强大,新建分支,切换分支都很快,小团队用Git就能很好地管理好了,但如果是Android系统如此庞大的工程呢,我们知道全套Android源码是很大很大的,目录结构也很 ...

  3. 对计算属性中get和set的理解

    原文参考:https://blog.csdn.net/xiaxiaoxian/article/details/79304004

  4. vue项目中使用vue-awesome

    公司在项目重构时,遇到图标问题,然后把vue-awesome.iconfont.iconMoon都试了一遍,虽然最终使用了iconMoon但是也要把这两个过程记录一下. github地址 1.首先安装 ...

  5. Syslog协议日志格式翻译

    通用日志格式规范(参考 RFC5424 Syslog协议) 下面是RFC5424 Syslog协议关于信息格式的定义. Syslog信息的格式定义 # 一条信息的构成 SYSLOG-MSG = HEA ...

  6. AC日记——石子归并 51nod 1021

    石子归并 思路: 经典动态规划——归并类问题: 我们把状态划为n个,即1-n的n个长度为n个状态: 那么,每个长度为i的状态都可以由i-1个长度为i-1的状态推出: 所以,dp转移方程: dp[i][ ...

  7. Codeforces 158 B. Taxi[贪心/模拟/一辆车最多可以坐4人同一个群的小朋友必须坐同一辆车问最少需要多少辆车]

    http://codeforces.com/problemset/problem/158/B B. Taxi time limit per test 3 seconds memory limit pe ...

  8. luogu P1854 花店橱窗布置

    题目描述 某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定的,从左到右按1到V顺序编号,V是花瓶的数目.花束可以移动,并且每束花用1到F的整数标识 ...

  9. OpenSSL使用3(基本原理及生成过程)(转)

    1. 基本原理 OpenSSL初接触的人恐怕最难的在于先理解各种概念 公钥/私钥/签名/验证签名/加密/解密/非对称加密 我们一般的加密是用一个密码加密文件,然后解密也用同样的密码.这很好理解,这个是 ...

  10. 一款不错的编程字体Source Code Pro

    我以前一直是用的MS自家的是Consolas的字体,这个字体基本上具有编程字体所需的所有要素:等宽.支持ClearType.中文字体大小合适,l和1,o和0很容易区分.非要挑刺的话就是字体比较小,9号 ...