一.构架的基本思想

采用MVC构架一个网站时,最好随时随地地将脑袋中切割成三份(M,V,C),这是一个最基本的切割单位,而且也是最容易切割的三个部分,但是在实务上,通常不会这么简单,有时候我们会再多切割成好几块,例如:服务层,数据访问层,数据仓储曾,辅助工具层,等等。

MVC各个部分的责任:Model负责商业逻辑,View负责前段呈现,Controller负责流程控制,这三者之间必须彼此分工合作。其中Model和Controller有时候不太容易区分,但基本区分原则是,Controller只控制程序运行的流程,作为界面(View)和后台逻辑(Model)的沟通桥梁。每个流程中的环节具体的实现逻辑是在Model中实现的。

二.M,V,C三者的关系:

(一)各自任务的分工

(1)Model:只要跟数据和逻辑相关的任务,都应该在Model里完成如:定义数据结构,负责与数据库沟通,从数据库读取数据,将数据写入数据库,运行预存程序,数据格式验证,定义与验证商业逻辑规则,对数据进行各种加工处理。

(2)View:视图,

(3)Controller的责任主要有两个部分:作为界面(View)和后台逻辑(Model)的沟通桥梁(包括)

三.这样分工的好处:

1.降低程序复杂度:当需求变更时,可以依据清楚的责任划分,很容易的定位到正确的地方进行修正。

2.增加分工能力:通过构架规划,将一个很大型的网站项目分成多个相对独立的组,进行设计。

3.让各个组件得意抽象化,也可以减少对象之间的耦合程度和彼此影响程度,同样有利于分模块进行开发。

三.采用MVC构架时需要注意的地方

1.在构架MVC时,要明确一点:没有人可以将软件一次就写对,就如同没有人可以将需求一次讲清楚一样,因为需求不断在变。所以,唯一能做的就是保持架构的弹性与可维护性,保持软件的可测试性,让MVC项目能够应付各种改变,以确保软件的质量在一定范围内。如果你能够为每个程序都写好对应的测试程序,那么也不用担心项目每次的变更所带来的冲击了,因为测试程序就是最佳的后盾。

2.在使用MVC必须舍弃常规Web Forms的哪些东西

(1).ViewState

(2)Asp.net页面追踪机制(Page Trace).

(3)ASP.NET 事件驱动模型。

(4)服务器控件(Server Control)。大部分不能用,但没有用的ViewState的还可以用来作为显示用途。

(5)Default SiteMap Provider.

 

四.Visual Studio中MVC构架各个文件夹的解释

MVC构架思想的更多相关文章

  1. 讨论Android开发中的MVC设计思想

    最近闲着没事,总是想想做点什么.在时间空余之时给大家说说MVC设计思想在Android开发中的运用吧! MVC设计思想在Android开发中一直都是一套比较好的设计思想.很多APP的设计都是使用这套方 ...

  2. spring MVC核心思想

    目录  一.前言二.spring mvc 核心类与接口三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 ...

  3. 初识mvc分层思想

    首先要清楚的是: mvc是一种设计模式,一种分层思想,没有具体的技术与之对应,无论是js还是java或者其他的技术都可以运用. 既然是分层那么这些层都有哪些职责呢? View层(界面层): 为用户展示 ...

  4. SpringMVC原理&MVC设计思想

    什么是MVC? MVC是一种架构模式 --- 程序分层,分工合作,既相互独立,又协同工作 MVC是一种思考方式 --- 需要将什么信息展示给用户? 如何布局? 调用哪些业务逻辑? MVC流程图如下图所 ...

  5. Unity 背包系统的完整实现(基于MVC框架思想)

    前言: 项目源码上传GitHub:Unity-knapsack 背包系统: 背包系统是游戏中非常重要的元素,几乎每一款游戏都有背包系统,我们使用背包系统可以完成装备栏的数据管理,商店物体的数据管理等等 ...

  6. struts2.1笔记01:MVC框架思想浅层理解

      1. Struts 1是全世界第一个发布的MVC框架: 它由Craig McClanahan在2001年发布,该框架一经推出,就得到了世界上Java Web开发者的拥护,经过长达6年时间的锤炼,S ...

  7. 前端笔记之NodeJS(四)MongoDB数据库&Mongoose&自制接口&MVC架构思想|实战

    一.MongoDB数据库 1.1 NoSQL简介 随着互联网web2.0网站的兴起,传统的SQL数据库(关系数据库)在应付web2.0网站,特别是超大规模和高并发的SNS(social network ...

  8. MVC设计模式思想及简单实现

    一.什么是MVC MVC即Model-View-Controller(模型-视图-控制器)是一种软件设计模式,最早出现在Smalltalk语言中,后被Sun公司推荐为Java EE平台的设计模式. M ...

  9. 软件开发的MVC构架

    MVC:IDE开发环境开发时,无意中使用的软件结构. 转自于wikipedia:http://zh.wikipedia.org/wiki/MVC 软件的层次划分:框架--组件(设计模式)--算法与数据 ...

随机推荐

  1. c# sql连接数据库

    using System.Data.SqlClient; private static string connectionString ="Data Source=.\\HS;Initial ...

  2. lunix机器的jdk安装

    本来不想写这篇博客的,写在这儿只是作为自己的笔记,jdk安装了千万编,但是踩过的坑老是不记,看别人的博客又各种不爽,所有索性自己写一个得了.老规矩,无图. Oracle版本的jdk下载地址:http: ...

  3. jQuery生成二维条形码 jquery.qrcode.js

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  4. 正则表达式30分钟入门教程<转载>

    来园子之前写的一篇正则表达式教程,部分翻译自codeproject的The 30 Minute Regex Tutorial. 由于评论里有过长的URL,所以本页排版比较混乱,推荐你到原处查看,看完了 ...

  5. 理解CRC校验

    举个最简单的例子,A向B发送一个数字,B如何检测数字在传输过程中有没有发生错误呢? A和B之间,定下一个协议,两边都知道一个除数X,A向B发送数字的时候,同时把余数附带后面发过去.比如,两边定的除数是 ...

  6. Object.defineProperty vs __defineGetter__ vs normal

    Testing in Chrome 31.0.1650.63 32-bit on Windows Server 2008 R2 / 7 64-bit Test Ops/sec Object.defin ...

  7. linux文件 编辑常用 inux手把手vi ---针对文件操作

    命令语法 说明 使用频率(1:常用;2一般:3:偶尔) 1.VI编辑器的启动与退出 VI编辑器的启动与退出 vi  file1 新建一个文本文件名为file1 :q 退出,如果对缓存去进行过修改,则提 ...

  8. Views

    Views Views are the visual side of the Nova, they are the HTML output of the pages. Views can be loc ...

  9. 将字符串写进txt中方式

    try { File file = new File(filePath); PrintStream ps = new PrintStream(new FileOutputStream(file)); ...

  10. JAVA_eclipse 保留Java文件时自动格式化代码和优化Import

    Eclipse 保存Java文件时自动格式化代码和优化Import Eclipse中format代码的快捷方式是ctrl+shift+F,如果大家想保存 java文件的时候 自动就格式化代码+消除不必 ...