首先给大家引入下MVC的概念:

MVC(Model View Controller)模型、视图以及控制器,它是一种较为广泛应用的结构设计模式。

模型:就是在MVC设计模式中需要被显示的数据。在通常情况下,该模型需要从数据库中读取数据、保存模型的状态等,提供数据的访问方法以及数据的维护。

视图:就是用来显示模型中数据的用户界面,一般来书,视图就是HTML页面。

控制器:就是用来处理对用户的输入或者交互命令,以便改变模型的状态,选择适当的视图来显示对应的模型数据。

工作机制如右图所示:

(1)用户向控制器发出请求。

(2)控制器收到用户请求后,向模型请求获得相关的数据。

(3)模型将对应的数据返回给控制器。

(4)控制器将有关数据发送到指定的视图。

(5)视图将数据呈现给用户。

通过上面的介绍相信大家对于MVC也有了一定的了解和认识,那么MVC与原先我们学习过的三层架构到底有哪些相同点,又有哪些不同之处呢?

MVC与三层的共同点:

MVC与三层架构的触发点事相同的——分层,解耦。它们都做到了显示与数据的分离,大大降低了系统的耦合性。

但是从专业角度来说MVC与三层没有任何关系,三层是三层,MVC是MVC。唯一能把他们联系在一起的就是“三”这个字了,不过从初学者的角度把二者放在一起区分起来学习也更容易理解。

MVC与三层的不同点:

可以说它们之间除了相同的剩下的全是不同点。它们有着各自的工作机制详情请见下图:

三层中的UI在MVC中被分解为View和Controller,BLL和DAL被合并为Model。另外在三层中虽然叫做三层架构,但是我们可以根据需要分为多层。三层中也涉及到Model,但是三层里面的Model跟MVC中的Model完全是两回事,三层中的Model是表实体,而MVC中的Model中包括业务逻辑和数据访问。

MVC对于Web Form的特点:

(1)易于单元测试

(2)容易实施测试驱动开发

(3)易于扩展和替换

(4)支持Web Form中的有关特性

(5)URL被映射到控制器

虽然MVC对于Web Form有一些新的特性,但是MVC并不能替代传统的Web Form技术,这两种技术只是应用在不同场景,具有不同的优、缺点。不能片面的说那种技术高那种技术低,开发者需要根据自己的实际情况选择相应的技术开发项目。以上是个人通过查阅相关资料对MVC于三层架构之间的一些认识,有不足之处,请大家批评指正。

转:http://blog.csdn.net/u010926964/article/details/41598729

【转】浅谈MVC与三层架构的更多相关文章

  1. 浅谈.NET,C#三层架构

     三层架构 常见架构: 三层(经典) MVC MVVM MVP   开发中常见的23种设计模式: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种: ...

  2. 浅谈.NET,C#三层架构(自己总结)

     三层架构 常见架构: 三层(经典) MVC MVVM MVP   开发中常见的23种设计模式: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种: ...

  3. 浅谈Java开发三层架构

    三层架构,一般来说就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了“高内聚,低耦合”的思想. 概念简介 1.表现层(UI):简单来说,就是展现 ...

  4. 浅谈HTML5单页面架构(二)——backbone + requirejs + zepto + underscore

    本文转载自:http://www.cnblogs.com/kenkofox/p/4648472.html 上一篇<浅谈HTML5单页面架构(一)--requirejs + angular + a ...

  5. 浅谈大型web系统架构

    动态应用,是相对于网站静态内容而言,是指以c/c++.php.Java.perl..net等服务器端语言开发的网络应用软件,比如论坛.网络相册.交友.BLOG等常见应用.动态应用系统通常与数据库系统. ...

  6. AngularJS进阶(二十五)requirejs + angular + angular-route 浅谈HTML5单页面架构

    requirejs + angular + angular-route 浅谈HTML5单页面架构 众所周知,现在移动Webapp越来越多,例如天猫.京东.国美这些都是很好的例子.而在Webapp中,又 ...

  7. 转:浅谈大型web系统架构

    浅谈大型web系统架构 动态应用,是相对于网站静态内容而言,是指以c/c++.php.Java.perl..net等服务器端语言开发的网络应用软件,比如论坛.网络相册.交友.BLOG等常见应用.动态应 ...

  8. MVC与三层架构的区别

    我们平时总是将三层架构与MVC混为一谈,殊不知它俩并不是一个概念.下面我来为大家揭晓我所知道的一些真相. 首先,它俩根本不是一个概念. 三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目. ...

  9. mvc和三层架构到底有什么区别

    原文地址:http://zhidao.baidu.com/question/82001542.html?qbl=relate_question_3&word=MVC%20%CA%FD%BE%D ...

随机推荐

  1. ajax知识整理

    HTTP服务 1.服务器 服务器类型 服务类型:文件服务器.数据库服务器.邮件服务器.Web服务器等: 操作系统:Linux服务器.Windows服务器等: 应用软件:Apache服务器.Nginx ...

  2. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  3. [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图

    [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图 1.UML简介 Unified Modeling Language (UML)又称统 ...

  4. Linux 配置YUM

    标签:MYSQL/linux 概述 文章主要介绍配置163,mysql,epel这三个yum源. 目录 概述 步骤 下载安装包 卸载自带的yum 安装yum包 添加yum 总结 步骤 安装163源 注 ...

  5. .Net组件程序设计之上下文

    .Net组件程序设计之上下文 在后续篇幅的远程调用的文章里有说到应用程序域,那是大粒度的控制程序集的逻辑存在,那么想对对象的控制又由谁来做主呢?没错了,就是上下文.CLR把应用程序域更细化了,在应用程 ...

  6. android内部培训视频_第一节

    声明:本视频为公司内部做android培训时录制的,无任何商业目的.同时鉴于水平有限,可能不符合您的需求,放在这里的目的是提供给公司同事下载,作为培训的一个记录,也作为一个系列教程的自我督促完成的理由 ...

  7. ArcGIS之Cartogram地图变形记

    一.地图会说谎 地图作为真实世界的抽象,是“用图说话”最可靠的工具,但是有的时候地图也会撒一些小小的谎言,其中最著名的例子当属美国总统大选.如图1是2012年美国总统大选后网上给出的一个结果图,红色代 ...

  8. SQL Azure (16) 创建PaaS SQL Azure V12数据库

    <Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China 最新的Azure PaaS SQL Database(SQL Azu ...

  9. 搞懂 SynchronizationContext(第一部分)【翻译】

    SynchronizationContext -MSDN 很让人失望 我不知道为什么,目前在.Net下关于这个类只有很少的资料.MSDN文档也只有很少的关于如何使用SynchronizationCon ...

  10. CI Weekly #3 | 关于微服务、Docker 实践与 DevOps 指南

    CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...