MVC概述

三种角色

– Model:   用于存储数据的组件(与领域模型概念不同)。

– View:    根据Model数据进行内容展示的组件

– Controller:接受并处理用户指令(操作Model),选择一个View并输出内容。

MVC概述:两种分离

• View和数据(Model)分离

–能够为相同的Model开发不同的View进行展示

–分离可视与不可视得组件,能够对Model进行独立测试(只有View到Model的单向引用)

• View和表现逻辑(Controller)分离

–分离逻辑与具体展示,能够对逻辑进行独立测试(只有Controller到View的单向引用)

MVC与三层架构

• MVC与三层架构类似?

– View – UI Layer

– Controller – BL Layer

– Model – DA Layer

• 其实不然

– MVC是表现模式(Presentation Pattern)

–三层架构是架构模式(Architecture Pattern)

–    没有太多可比性

MVC之间无依赖关系,MVC之间是协作关系,没有层次的关系。MVC不是分层。

WebForms vs ASP.NET MVC

• WebForms的优点

– 将Web开发抽象成一个组件模型

– 使用方便,入门容易

–使控件产业大大加强

• WebForms的缺点

–封装太强——这还是Web开发吗?

– 入门容易,用好难

– 不易进行单元测试,前后台不易配合

• 不过WebForms也在成长

 

ASP.NET MVC的优势

• 直接,Web开发就是Web开发

• 易于对界面逻辑进行单元测试

– Design for testability

• 易于后台与前台开发人员的配合

ASP.NET MVC是在ASP.NET平台下开发Web应用程序的另一选择,并非为了取代WebForms


ASP.NET MVC的特点

• 一切都是可替换的

– ViewEngine

– Action Filter

• 一切都是可测试的

• 公开源代码

– 可以修改

–不可重新发布