.NET 与MVC的区别

.NET MVC与三层架构

二者都是架构模式,并且也有一定的共存度,在实际开发中,严格区分意义不大。
基于最近涉及到这部分知识就在复习下,编程过程中,基础概念更重要,而不是技术。

1.三层架构:即UI(表示层),BLL(业务逻辑层),DAL(数据访问层)

UI(表现层):主要是指与用户交互的界面。用于接收用户输入的数据和显示处理后用户需要的数据。
BLL:(业务逻辑层):UI层和DAL层之间的桥梁。实现业务逻辑。业务逻辑具体包含:验证、计算、业务规则等等。
DAL:(数据访问层):与数据库打交道。主要实现对数据的增、删、改、查。将存储在数据库中的数据提交给
业务层,同时将业务层处理的数据保存到数据库。
(当然这些操作都是基于UI层的。用户的需求反映给界面(UI),UI反映给BLL,
BLL反映给DAL,DAL进行数据的操作,操作后再一一返回,直到将用户所需数据反馈给用户)
其实,真正使用过三层架构的都知道,三者之间是通过Entity传递数据的,Entity贯穿三层,将三者连接起来,

  同时也实现了对数据实体的封装,取代了个层之间多变量的数据传递(数据交流),大大的简化了数据交流,

  也降低了数据发生错误的概率。(Entity其实就是对数据库表实体的封装),Entity与三层之间的依赖关系

2.MVC架构,即M(model 模型·),V(view 视图),C(controller 控制器)三个部分

  在MVC架构中这三部分是必须的,但我们也可以根据项目的实际需求与实际情况还能再增加,

比如实现Service层或Repository层等,我们可以自行扩展,大幅提高了开发时的灵活性。
Model(数据模型):用于封装与应用程序在商业逻辑上相关的数据,
以及对其数据操作的处理方法(数据库的访问操作,即增删改查;
数据结构的定义;数据格式的验证)。

      Model并不依赖于View和Controller,也就是说Model并不需要知道它会如何被显示出来或如何被应用,只需要专注于自己该有的责任即可。

Model中常见的技术有Entity Framework(即EF)、NHibernate、LINQ to SQL、Typed DataSet和ADO.NET等。
View(视图):页面显示或获取用户输入,View需要负责将Controller传过来的数据配合“
显示逻辑”呈现给用户,此处虽然View需要Contorller传递数据,

但是View并没有依赖某个Controller,任何Controller只要能提供View所需要的数据,
View就可以根据显示逻辑将其显示出来,是一种松散的关联关系。
Controller(控制器):属于一种结果协调者的角色,因为M-V-C三个部分没有直接的联系,
View无法直接与Model沟通,即Model可以操作数据,
View可以显示数据,

因此,VIew显示的数据需由Controller从Model获取后提供给View。即Controller的角色位于用户接口层和商业逻辑层中间。
其中,MVC中最重要的特性是关注点分离和约定优于配置。关注点分离,简单地说就是“只注意需要注意的”
,这样可以很好的解耦模块,各个单元的复杂度就相对降低,更容易开发,同时,也增强了程序的可维护性。约定优于配置,
简单地说,就是开发过程中应该遵守的约定,如:Controller的文件名后面一定要以Controller结尾;View文件一定要放在VIews文件夹下;
View的名称就是对应的Controller的Action名称;Web API的Action名称前面应该加上HTTP动词等等,这样有利于项目的后期开发与维护,
以防止因人员流动而使项目无其他人愿意接手。

时间: 2024-10-07 14:08:13

.NET 与MVC的区别的相关文章

三层架构和MVC的区别

网络上大多数地方在说到三层架构和MVC的区别的时候,都说MVC是把三层架构中表现层分离出来,在进行进一步的划分.甚至在描述到这一块时,词语,标点符号都一模一样.但这种观点并不正确. 三层架构:1:数据访问层:主要是对非原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据库的操作,而不是数据,具体为业务逻辑层或表示层提供数据服务.2:业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些

MVVM和MVC的区别,以及MVVM的缺点

MVVM和MVC的区别 MVC和MVVM的区别其实并不大.都是一种设计思想. 主要就是MVC中Controller演变成MVVM中的viewModel. MVVM主要解决了MVC中大量的DOM操作使页面渲染性能降低,加载速度变慢,影响用户体验. 当和Model频繁发生变化,开发者需要主动更新到View. MVVM:是Model-View-ViewModel的简写 M:对应于MVC的M V:对应于MVC的V VM:ViewModel,是把MVC里的controller的数据加载,加工功能分离出来

iOS面试题:MVVM和MVC的区别

MVVM和MVC的区别 1. MVC MVC的弊端 厚重的View Controller M:模型model的对象通常非常的简单.根据Apple的文档,model应包括数据和操作数据的业务逻辑.而在实践中,model层往往非常薄,不管怎样,model层的业务逻辑不应被拖入到controller. V:视图view通常是UIKit控件(component,这里根据习惯译为控件)或者编码定义的UIKit控件的集合.View的如何构建(PS:IB或者手写界面)何必让Controller知晓,同时Vie

Struts2和Spring MVC的区别

概述: Struts2框架中,Action类是其核心类,XxxAction被称作业务逻辑控制器,实现了对用户请求信息的处理.Struts2框架的引入,使用XxxAction作为控制层,将视图层和模型层相分离,真正实现了MVC开发模式,使得整个工程分成Model(持久层/业务层).View.Controller三层,使得软件耦合度被降低. SpringMVC和Struts2框架的功能相似,也是实现视图层和控制层的分离,使得软件耦合度降低.并且,SpringMVC 是Spring内置的Spring 

Struts的MVC和Spring的MVC的区别

最近才发现spring也能实现MVC,于是在网上找了找相关介绍: 当初选框架的时候目的比较单纯---springmvc支持rest,小生对restful url由衷的喜欢 不用不知道一用就发现开发效率确实比struts2高 我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置 spring3 mvc可以认为已经100%零配置了(除了配置springmvc-servlet.xml外) 比较了一下strus2与spring3 mvc的差别 ===================

MTV和MVC的区别

著名的MVC模式:方便解藕 所谓的MVC就是把web应用分为三层 1.模型层: model     负责业务对象和数据库的对象(ORM) 2.视图层       views 负责与用户的交互(书写逻辑) 3.控制器 Controller   完成用户对模型层和视图层调用,来完成用户的请求 Django的MTV模式本质上和MVC没有什么大的差别,也是为了实现解藕性,只是定义上有些不同 1.模型层: model    负责业务对象与数据库的对象(ORM) 2.模板层 Template 负责如何把页面

flux与mvc的区别

Flux: View层将用户的动作转化为action,并发送Action层,Action层里面预先写好了应对脚本,在完成一系列的处理后,使用dispatch告诉Store层执行变更,Store层因为提前在dispatch注册了变更规则,所以现在Store可以变更数据,同时在数据变更后,通知View层,因为View预先针对Store层数据的变更执行了注册功能,所以View层可以接受到通知. MVC: 传统MVC架构中,controler层 接受view层的请求,同时根据业务逻辑,调用不同的mode

一般处理程序、ASP.NET和MVC的区别

这个问题说起来,我有点惭愧 想当初在大学里学的就是ASP.NET WebForms 在实习期间也是用的WebForms来开发网站,然后就觉得.NET开发网站就是用这个开发模式 现在想想都想笑...实在忍不住了,我要笑了.哈哈哈!!! 好,回到正题 ASP.NET 是一个使用 HTML.CSS.JavaScript 和服务器脚本创建网页和网站的开发框架. ASP.NET 支持三种不同的开发模式: Web Pages(Web 页面).Web Forms(Web 窗体).MVC(Model View

MVVM和MVC的区别

MVVM(Model-View-ViewModel) 优点:低耦合:可重用:独立开发:可测试 即,将页面与数据分离的模式:将数据绑定工作放到javaScript文件中实现,javaScript文件的主要功能是完成数据绑定,即把model绑定到UI元素上: MVVM的另一重要特性:双向绑定.[方便同时维护页面上都依赖于某个字段的N个区域,而不用手动更新] MVC(Model View Controller) 即,模块-视图-控制器: 其主要关注的是Model不变,Model不依赖于view,但是v

关于asp.net web form 和 asp.net mvc 的区别

asp.net web forms 有什么缺陷? 1.视图状态臃肿:服务器和客户端传输过程中包含了大量的试图状态——在现在的web程序中甚至多达几百kb,而且每次往返都会请求,导致服务器请求带宽增加,减慢服务器与客户端交互速度. 2.页面生命周期复杂:客户端事件和服务器事件之间的控制代码以及部分页面的生命周期关系复杂而微妙,一旦出现错误,很少有程序员能够成功的控制状态找到问题. 3.不完全的代码分离:asp.net web forms 的前后台代码分离将前台展现代码和后台业务逻辑分开很不错,但是