`
hududanyzd
  • 浏览: 775160 次
文章分类
社区版块
存档分类
最新评论

ASP.NET谈三层结构与MVC模式的区别

 
阅读更多
在CSDN和园子里有朋友谈到三层与MVC的区别,以前也有人抛出这个问题,本人对来公司面试的朋友也偶乐会提这方面的问题。 那么我也来讲讲我对这两者的理解吧。 首先对这个题目,本身是存在问题的,“XX结构”与“XX模式”的区别?请问中国社会制度与美国人生活方式有什么区别? 这两者本身讲的是不同方向与角度的问题,在实际应用中他们的确存在一些相似的特点,在很多书籍中也没有深入讲解,以致于造成困惑,为了更好的理解他们,姑且来说说区别吧。 首先N层结构是一种软件抽象的层次结构,是对复杂软件的一种纵向切分,每一层次中完成同一类型的操作,以便将各种代码以其完成的使命作为依据来分割,以将低软件的复杂度,提高其可维护性。一般来说,层次之间是向下依赖的,下层代码未确定其接口(契约)前,上层代码是无法开发的,下层代码接口(契约)的变化将使上层的代码一起变化。三层结构是N层结构的一种,是人产在长时间使用中得出来的一种应用场合广泛的N层结构,被当作一种典型的软件层次结构而广为流传甚至写入教科书。 MVC模式是一种复合设计模式,一种在特定场合用于解决某种实际问题来得出的可以反复实践的解决方案。巧合的是他也有三个事物组成,于是乎人们就有了一种想当然的对应关系:展示层-View;业务逻辑层-Control;持久层-Model。首先MVC中的三个事物之间并不存在明显的层次结构,没有明显的向下依赖关系,相反的,View和Model往往是比较独立的,而Control是连接两者的桥梁,他们更像是横向的切分。这样一来就出现一个结果,MVC中每个块都是可以独立测试的,而三层结构中,上层模块的运行测试势必要提供下层代码或者提供相同接口的桩。相对来说,MVC复杂得多,但是结构更清晰,耦合性更低。 另外,MVC中每一块内部特别是Model内部经常被设计为多层的。在我认为的一个良好的MVC模式构建的结构中,Control是核心,小且较为稳定的,可以作为一个核心框架来提供,有扩展点,但基本上可以简单配置不需要任何代码就可以运行。而View则可能是一套或多种可选择的视图引擎,决定了软件展示给用于的界面,使用时的主要工作量在于扩展点以及根据需要而数量不同的视图模板。 Model则是业务提供者,决定了软件提供的功能,其内部可能是一些普通的类或者是实现了某些接口的类,在这一块当中可能根据业务的不同而色彩缤纷,对于复杂的软件可能会分成很多层,如业务逻辑层、业务提供层、系统提供层、数据提供层、数据访问层等。 我经常用于比喻MVC的例子是小时候玩的那种卡带式游戏机,Control是主机,一般来说我买一个主机就行了,只要他不坏,他就能一直让我玩这一类的游戏。View则是电视机和游戏手柄,电视机可以独立工作,他不管输入的是电视信号、影碟机信号还是游戏机信号,他只管显示,而且他决定了我们看到的效果是怎么样的,如果我想要个尺寸更大的或者彩色的显示效果,我只需要买个相应的电视机就行了,手柄也是可以换的,要遥杆还是带震动的。Model则是游戏卡带,他绝定了我玩的是什么游戏,是魂斗罗还是超级玛莉,而且游戏机主机和电视机生产厂家永远也不知道在上面有可能会运行什么样的游戏。卡带中可能会有游戏代码和存储单元,都根据游戏的需要而设计。
分享到:
评论

相关推荐

    ASP.NET MVC 三层架构与mvc实例

    一个MVC开发模式和三层架构相结合的asp.net bbs实例,数据库是sql。

    基于ASP.NET MVC的三层架构博客网站系统源码

    资源名:基于ASP.NET MVC的三层架构博客网站系统源码 资源类型:程序源代码 源码说明: 使用ASP.NET写的三层架构博客系统 带SEO优化 完整代码 适合学习使用 适合人群:新手及有一定经验的开发人员

    asp.net MVC三层架构

    Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。 通常模型对象负责在数据库中存取数据。 View(视图)是应用程序中处理数据显示的部分。...这个适合刚接触三层架构的来学习,比较简单。

    ASP.NET MVC 三层

    工厂设计模式,负责三层,数据库资源,用户角色查询

    ASP.NET三层框架+MVC模式项目实现增删改查实例,适合 新手

    三层+MVC模式开发的asp.net项目,对user表进行增删改查,user表为ID,Name,Title简单三列,方便新手学习和实践

    ASP.NET三层架构

    ASP.NET三层架构步骤讲解 前言: 与ASP相比ASP.NET在Web应用开发上无疑更容易,更有效率。Web开发大部分还是围绕着数据操作,建立数据库存储数据,编写代码访问和修改数据,设计界面采集和呈现数据。走过Asp.net...

    asp.net 二手车源码 三层+Nhibernate+MVC框架(含数据库)

    本版本有bug,请下载修正版http://download.csdn.net/source/3003284,如果有问题欢迎到博客http://blog.csdn.net/ak_ljd留言

    基于ASP.NET MVC3与三层架构的电子商城源码2012929

    基于ASP.NET MVC3与三层架构的电子商城源码 功能介绍: 本代码完全基于ASP.NET MVC3+EF+三层构架,主要功能分为: 所有页面美工均为作者独立完成,系统开发于1年前,稳定运行良好。 系统目前通过几乎所有PC端...

    ASP.NET MVC 4高级编程 第4版PDF.rar

    解释ASP.NET MVC框架与“文件页”Web框架的不同之处; 介绍控制器、视图、模型、表单、HTML辅助方法、数据注解、验证、成员资格、授权、安全和路由; 着重介绍最核心的主题:Ajax、jQuery、NuGet、依赖注入、单元...

    asp.net简单三层实例

    asp.net简单三层架构实例,供大家学习。。。有什么问题请联系作者。。次代码公供交流学习,如要商用一切后果自负。

    项目:基于Sqlite数据库的asp.net三层架构示例

    项目:基于Sqlite数据库的asp.net三层架构示例 开发:walkingp 时间:2010-4-4 主页:http://www.51obj.cn/ 说明:本来是要做权限管理系统的,但时间太短,就打了一个架构。希望多多包涵。:)

    asp.net 三层用户管理系统

    利用一个用户管理系统来讲解Asp.net中三层结构(MVC)的应用,可以实现用户的注册及分级管理 BusinessLayer.cs和DataLayer.cs分别为逻辑层和数据层

    C#三层架构的MVC项目源码

    本程序一个基于三层架构的MVC模式应用的完整示例项目源码,基于Asp.net 3.5开发, 结构更简洁,提供更多有效的示例源码参考。 方便用户更好的理解和使用该架构进行开发,配合动软.Net代码生成器,可以使开发效率...

    三层结构留言本(asp.net mvc)

    asp.net mvc 三层结构留言本

    Asp.Net简单三层例子源码

    Asp.Net简单三层例子源码,vs2008+sql写的,用了两个表做例子。

    ASP.NET三层架构实例

    使用一个简单的留言板实例讲解.NET三层架构开发。包括BLL/DAL/UI层具体代码,内含数据库(VS2010+SQL2000)

    ASP.NET3.5MVC架构与实战

    《Web开发新体验:ASP.NET3.5MVC架构与实战》内容基础、全面,适合ASP.NET3.5MVC的初学者学习,同时,也可作为相关培训机构或高等院校的教学参考用书。ASP.NET3.5MVC框架,是微软今后开发Web应用程序的一个主流技术...

    asp.net MVC4构建三层代码示例

    最明显的就是linq语句让人用着很不顺手,本文档在运用asp.net mvc4开发框架的基础上搭载了ado.net数据库技术以及实现了三层架构开发模式

    asp.net MVC3三层架构demo

    使用asp.net MVC3开发的三层架构网页demo,实现增删改查,分页,下载,生成excel报表等功能

    三层架构Asp.Net+MVC+Linq to SQL2005 入门实例

    本程序主要通过一个产品的添加、修改及用户注册登录等来演示MVC的使用,主要针对 MVC和三层架构入门人员 数据实现了列表并分页,适合初学者

Global site tag (gtag.js) - Google Analytics