Asp.net mvc 知多少(一)
基本概念Q1. 什么是MVC? Ans. MVC是Model-View-Controller的简称。它是在1970年引入的软件设计模式。MVC 模式强迫关注分离 — 域模型和控制器逻辑与UI是松耦合关系。从而使应用程序的维护和测试更加简单容易。 Q2. 解释一下MVC设计模式?
Ans. MVC 设计模式将应用程序分解成3个主要部分: Model,View,Controller(模型、视图、控制器) Model - 模型代表一系列类用来描述业务逻辑,比如业务模型以及数据访问操作,再比如数据模型。同时也定义了对数据如何进行处理的业务规则。 View - 视图代表的是UI部分,像CSS、jquery、html等。它主要的职责是展现从controller接受到数据或模型。 Controller - 控制器职责在于处理传入的请求。它接受用户通过视图的输入,然后对用户输入的数据模型进行处理,最终通过视图将结果渲染给用户。通常来讲,控制器在视图和模型之间扮演着桥梁(协调者)的角色。 Q3. 什么是领域驱动设计开发? Ans. Domain-Driven Design (DDD)定义了一系列的准则和模式从而时开发者针对不同的领域采取合适的设计方案以开发出优美的系统。DDD既不是一项技术也不是一套方法论。DDD主要由Entity,Value Object,Aggregate,Service,Repository五大部分组成。 Entity(实体):具有唯一标志的对象,比如用户。 Value Object(值对象):不具有唯一标志的对象,比如枚举。一个值对象也可以是一个实体视情况而定。 Aggregate(聚合): 它通过定义对象之间清晰的所属关系和边界来实现领域模型的内聚,并避免了错综复杂的难以维护的对象关系网的形成。聚合定义了一组具有内聚关系的相关对象的集合,我们把聚合看作是一个修改数据的单元。。 Service(服务):服务是在应用程序中用来处理业务逻辑的。 Repository(仓储):仓储的作用是数据的存储读取,即封装数据持久化框架。它不关心使用何种数据库。仓储也不是我们常说的Data Access Layer(数据操作层),但是为了安全因素,仓储会引用一个位置进行存储。仓储的主要职责是处理聚合的和持久化相关的任务(ADD、UPDATE、DELETE、GET)。 Q4. 解释一下MVP模式?
Ans. MVP与MVC相似,只是将MVC的Controller替换成Presenter。MVP模式将应用程序分解成3个主要部分: Model,Presenter。 Model - 模型代表一系列类用来描述业务逻辑,比如业务模型以及数据访问操作,再比如数据模型。同时也定义了对数据如何进行处理的业务规则。 View - 视图代表的是UI部分,像CSS、jquery、html等。它主要的职责是展现从controller接受到数据或模型。 Presenter - 职责在于处理视图上的UI行为事件。通过View接收用户输入,然后通过Model处理用户数据,然后将结果传回view。不想View和Controller,View和Presenter之间完全解耦,是通过接口进行交互。同时它也不处理和接收传入的请求。 MVP模式通常用在Asp.net Web Form、Windows Form 应用程序 MVP模式的关键点:
Q5. 解释一下MVVM 模式?
Ans. MVVM 是指 Model-View-View Model. MVVM支持在View与ViewModel之间进行双向数据绑定。通过视图模型的状态就能够自动的传播改动到View。通常来说,ViewModel是通过观察者模式将ViewModel的改动通知到View。 Model - 模型代表一系列类用来描述业务逻辑,比如业务模型以及数据访问操作,再比如数据模型。同时也定义了对数据如何进行处理的业务规则。 View - 视图代表的是UI部分,像CSS、jquery、html等。它主要的职责是展现从controller接受到数据或模型。 View Model - ViewModel 的职责是暴露方法、命令以及属性去维护View的状态,操纵Model 作为View执行的结果,以及触发View上自身的事件。 MVVM模式的关键点:
Angular就是使用这种模式。 Q6. 什么是 ASP.NET MVC? Ans. ASP.NET MVC 是一套基于Microsoft .NET Framework的用来开发web应用程序的开源框架。它确保了代码的干净整洁且关注分离. ASP.NET MVC framework 具有很好的扩展性以及支持自定义。 Q7. MVC模式在ASP.NET下是如何工作的? Ans. 我们按照Model、View、Controller的顺序来一一解释:The Model in ASP.NET MVC ASP.NET MVC 中的Model可以分解成几个不同的层:
The View in ASP.NET MVC View就是展示从Controller传递的数据。同时肩负着将Model进行转换以在View的UI上进行展示。The Controller in ASP.NET MVC 响应Http请求并根据传入的请求内容决定由哪个具体的Action去处理。它通过View接收用户输入,然后通过Model的帮助去处理用户数据并将结果返回给View. Q9. ASP.NET MVC相对于Web Forms的优势有哪些? Ans. 主要有以下几点优势:
Q10. 简要介绍下ASP.NET MVC的版本更新? Ans. 以下是ASP.NET MVC的主要版本及版本特性:ASP.NET MVC1
ASP.NET MVC2
ASP.NET MVC3
ASP.NET MVC4
ASP.NET MVC5
Q11. 三层架构与MVC架构的区别在哪?
Ans. 三层架构是一个线性的架构,主要包括:展现层、业务逻辑层、数据访问层。用户直接与展现层交互。
MVC架构是一个三角形架构,将应用程序分成三个部分,Model、View、Controller。用户在View的帮助下与Controller交互。
MVC不会替换掉三层架构;往往三层架构与MVC是一起使用的,MVC扮演三层架构中的展现层。 Q12. ASP.NET WebForm 与 ASP.NET MVC的区别是什么? Ans. 主要的区别详细见下表: ![]() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.Net MVC和WebAPI加密
- 有没有任何好的ASP.NET MVC2或MVC3作弊表?
- asp.net-mvc-3 – asp.net中的pageBaseType mvc3 razor –
- asp.net-mvc – ASP.NET MVC验证消息未被本地化
- 数组的合并
- asp.net-mvc – ASP.net MVC – 呈现包含不同类型的List,每
- 有趣:ASP.NET Core 2.0 机密配置项
- asp.net-mvc-3 – 定义WebActivator.PreApplicationStartMe
- asp.net-2.0 – 我想阻止ASP.NET GridView对enter按钮做出反
- asp.net – 从内部回发没有解雇
- asp.net-mvc – 如何从MVC WEB API Controller返
- asp.net-mvc – WebApiConfig.cs和RouteConfig.c
- asp.net – 我可以在sharepoint网站上使用多个母
- 从asp.net代码中调试VS 2008中的sql存储过程
- 每次在ASP.NET中触发哪个事件
- asp.net – Handles子句需要在包含类型或其基类型
- asp.net-core – 在以下可用的中间件中定义变量
- asp.net – 如何正确过滤数据表(datatable.selec
- Orchard Core一分钟搭建ASP.NET Core CMS
- asp.net – Visual Studio开发服务器(2010)和NTL