MVC模式,Model View Controller。
把软件系统分为三个基本部分:
M(Model)模型;
V(View)视图;
C(Controller)控制器。
与传统三层对比:
传统三层:
U(User Interface layer)界面层;
B(Business Logic Layer)业务逻辑层;
D(Data Access Layer)数据访问层。
分层的目的:“高内聚低耦合”。
MVC中的 Model是指 要处理的业务代码和数据操作代码(领域模型) ,相当于传统三层中的 (B层+D层)
View 视图主要是指大量的页面,跟用户打交道,并能够展示数据
Controller看成是Model和View的桥梁。
传统三层中有个Model实体层。此Model非彼Model。MVC中的Model包含的内容要比Model实体层包含的内容丰富的多。
优点:
1、视图控制模型分离, 提高代码重用性。
2、提高开发效率。
3、便于后期维护, 降低维护成本。
4、方便多开发人员间的分工。
缺点:
1、清晰的构架以代码的复杂性为代价, 对小项目优可能反而降低开发效率。
2、运行效率相对较低
3、目前没有比较好的rich 客户端的解决方案
4、 控制层和表现层有时会过于紧密,导致没有真正分离和重用
特点:
约定大于配置
(体现在:(control文件夹与view文件夹下的文件及文件夹命名过程)
1、控制器命名:以controller的结尾;如HomeController
2、控制器类将会产生一个与之同名的在View文件夹下的同名:~/View/Home
3、控制器里的Action方法也可在视图文件夹下默认生成一个同名的视图,如:Index.cshtml)
延迟加载
只有当使用到数据的时候,才去查询数据库。Tolist()的时候才去查。
泛型 DbQuery<T>,支持 延迟加载。
【总结】
对MVC有了一个初步的认识,还需要多用。知识是用出来的,不是学出来的。那些优缺点、特点。MVC与传统三层的区别,具体如何,还需要在代码中去体会,去实践。