一.构架的基本思想
采用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.