ASP.NET MVC4开发指南学习笔记第一章
第一章:基础概念
1.1何谓MVC
MVC:一种架构(框架),一个设计模式(Design Pattern).
- Model:定义数据格式与数据访问的界面,包括商业逻辑与信息验证
- View:负责用户界面(UI)呈现
- Controller:负责控制系统运行的流程、跟浏览器交互等
1.1.1.何谓Model
Model:模型,数据模型.负责:
- 定义数据结构
- 负责与数据库沟通
- 从数据库读取数据
- 将数据写入数据库
- 运行预储程序
- 数据格式验证
- 定义与验证商业逻辑规则
- 对数据进行各种加工处理
1.1.2.何谓View
View:检视或视图.负责所有呈现在用户面前的东西.
输入:
- 从Controller取得数据,并显示在用户界面上
- 决定要用什么技术来呈现"用户界面"
- 负责界面的排版,字型,颜色,美观与各种呈现方式
- 将Controller传送的数据显示于界面,而数据是参考Model的定义
- 参考Model的数据格式定义数据显示
输出:
- 负责将数据送回Controller
- HTML窗体通过GET或POST输出数据
- 决定数据应该送到哪一个Controller的Action中
- 决定数据传送的方式,例如:GET,POST,XML HTTP Request(XHR)
- 前端基本的数据格式验证
- 验证功能,例如,使用JavaScript验证表单域是否输入
- 参考Model的类别定义,在Visual Studio中利用Intellisense撰写程序
1.1.3.何谓Controller
Controller:控制器,掌控全局的对象.负责:
- 决定与"用户"沟通的管道,以ASP.NET MVC为例就是HTTP或HTTPS.
- 决定系统运作的流程
- 负责从Model取得数据.我们可以在Controller的类别中利用Model提供的类别来取得数据
- 决定应该显示哪个View
1.2.初探MVC架构
1.2.1 彼此的关联性
1.2.2 Controller与View的关联性
双向关系,但Controller的主动性较高
当Controller为"主动"角色时:
- Controller可决定要显示哪一个View.
当View为"主动"角色时:
- View可决定数据要送回到哪一个Controller的Action
- 当View需要数据时,可决定数据应该从哪一个Controller的Action取得.
1.2.3 View与Model的关联性
VIew是"比较主动"的一方,Model"数据服务提供商"的一方.专门为View设计的Model,称为ViewModel
1.2.4 Model与Controller的关联性
Controller永远居于"主动"角色.
1.3. 彼此的独立性
1.4. 为什么要ASP.NET MVC(优点)
观念:关注点分离.软件开发时,只关注在当前的对象上,不会受到相同系统中其他对象的干扰,提升软件质量,加快程序代码理解速度.
ASP.NET MVC 拥有非常清楚的关注点分离架构,使网站更容易维护.(低耦合,高内聚)