一、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. PHP排序的几种方法

    // 冒泡排序 function BubbleSort($arr) { // 获得数组总长度 $num = count($arr); // 正向遍历数组 for ($i = 1; $i < $n ...

  2. Win右键管理员权限的获取

    Windows Registry Editor Version 5.00 ;取得文件修改权限 [HKEY_CLASSES_ROOT\*\shell\runas] @="管理员权限" ...

  3. Codeforces Round #402 (Div. 2) D. String Game(二分答案水题)

    D. String Game time limit per test 2 seconds memory limit per test 512 megabytes input standard inpu ...

  4. L#中 int.TryParse 有问题

    今天发现了一个 L# 的异常..因此记录一下 List<string> strList = new List<string>(); ; i<; ++i) { ; j< ...

  5. pat 团体天梯 L3-011. 直捣黄龙

    L3-011. 直捣黄龙 时间限制 150 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 本题是一部战争大片 —— 你需要从己方大本营出发,一路 ...

  6. 存储过程代码生成器Stored Procedure Generator

    原文发布时间为:2010-10-26 -- 来源于本人的百度文章 [由搬家工具导入] Stored Procedure Generator (for SQL Server 2000/2005) htt ...

  7. MySQL命令行导入脚本文件

    通过命令行执行sql脚本文件的方法: cmd命令行下: C:\users\test_dir>"C:\Program Files\MySQL\MySQL Server 5.7\bin\m ...

  8. springmvc4.2.X fastjson 替换引用配置

    <mvc:annotation-driven> <mvc:message-converters register-defaults="true"> < ...

  9. 长安大学第四届“迎新杯”程序设计竞赛 F 打铁的箱子【数学/进制思维/折半枚举】

    题目描述 作为彩虹岛上最擅长打铁的人,

  10. python画直线

    #!/usr/bin/env python import matplotlib.pyplot as plt import numpy as np #beita = 1 #gama = 0.5 #x:f ...