一.构架的基本思想

采用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. 【P3O是什么】P3O认证之项目组合、项目群和项目办公室

    如何区分项目组合办公室与项目群和项目办公室? P3O®(Portfolio,Programmed and Project Offices-项目组合.项目群和项目办公室)是由英国商务部 OGC 于200 ...

  2. JavaScript要点(七) 函数调用

    JavaScript 函数有 4 种调用方式. 每种方式的不同方式在于 this 的初始化. this 关键字  注意: this 是保留关键字,你不能修改 this 的值. ⚠️一般而言,在Java ...

  3. JNI函数复杂对象传递

    主要操作内容,包括如下几个部分: 1.在Native层返回一个字符串 2.从Native层返回一个int型二维数组(int a[ ][ ]) 3.从Native层操作Java层的类: 读取/设置类属性 ...

  4. ECshop彻底去版权(同时适用于2.7.3)

    前台部分: 1:去掉头部TITLE部分的ECSHOP演示站 Powered by ecshop前者”ECSHOP演示站”在后台商店设置 – 商店标题修改后者” Powered by ecshop”打开 ...

  5. 最近看了点C++,分享一下我的进度吧!

    #include <iostream> #include <cmath> #include <iomanip> using namespace std; //Stu ...

  6. 【转】C++对象内存分配问题

    原文:http://blog.csdn.net/c504665913/article/details/7797859 如果一个人自称为程序高手,却对内存一无所知,那么我可以告诉你,他一定在吹牛.用C或 ...

  7. 采用Reflector的VS.net插件断点调试无源码DLL 分类:

    .Net的编程利器Reflector可以反编译基于.net开发的应用程序和DLL,其功能强大不用多说.今天想试验一把利用VS.net的插件断点调试外部无源码的DLL(只要是程序集都可以,所以exe也行 ...

  8. Java对MySQL数据库进行连接、查询和修改【转载】

    一般过程: (1) 调用Class.forName()方法加载驱动程序. (2) 调用DriverManager对象的getConnection()方法,获得一个Connection对象. (3) 创 ...

  9. WaterWave

    WaterWave.rar

  10. UNIX标准化及实现之功能测试宏

    在头文件中定义了很多POSIX.1和XSI的符号.但是除了POSIX.1和XSI的定义之外,大多数实现在这些头文件中也加上了它们自己的定义.如果在编译一个程序时,希望它只使用POSIX定义而不使用任何 ...