ASP.NET MVC 原理
我出了份卷子做面试题,其中之一就是要求说说ASP.NET MVC的原理。感觉太空泛了,谁能说得准呢?
但是,如果站在我这个面试官立场,面试题好多时并不要求有标准答案,可能也没有什么标准答案,主要是通过问答,了解一下面试者的理解程度,相关知识程度什么的。其实,我自己水平也不行,但因为年纪大,好像不带点人大家会觉得有点怪怪的,所以过去一段时间也参与点招聘工作。
对于ASP.NET MVC,我自己的理解是酱紫的:
MVC是一种思想。ASP.NET MVC只不过是实现了这种思想的一种开发框架。利用Web Form项目,其实也可以实现MVC。以前搞WEB FORM,我就试过MVP模式。
MVC的思想要点的在于将UI和业务逻辑、数据分离。好处一是逻辑清晰,二是有利于逻辑重用和测试。因为UI很难自动化测试,但逻辑却可以。所以说,ASP.NET MVC有利于进行单元测试。并且UI与逻辑、数据分离以后,也容易重用。比如说,在ASP.NET MVC中,不同的action可以指向同一个view。
经典的MVC中,Model是个巨无霸,包含业务逻辑和数据。controller只是一个中间人,在View和Model之间传递点什么,打打酱油。有时候,Model和View甚至直接联系,绕开了controller。
而在ASP.NET MVC中,虽然有一个Model,但此Model并非彼巨无霸Model。ASP.NET MVC中的Model,是一个跟视图有关的Model,也就是传说中的那个VM,ViewModel,它只是经典巨无霸Model的一部分。ViewModel,顾名思义,主要用于View。经典巨无霸Model,被拆分成了数据(ViewModel、领域对象、数据库实体类 )+ 业务逻辑(BLL ,各种Service)。因此,Model只不过是一群概念的集合,并不是一个实实在在的对象。
值得一提的是,ViewModel、领域对象、数据库实体类很有可能是同一个对象。比如说,我们在View里直接操作的VM,其实常常就是将数据持久层的实体类直接拿过来用的。即便如此,但在软件设计阶段,还是要将它们的概念区分开。
ASP.NET MVC的原理,其实就是使用HttpModule和HttpHandler将用户的请求拦截,按照设定的路由规则解释到相应的控制器和Action,加以执行。Module是一个比较宏观一点的概念,像Session、Cache都由相应的Module负责;而Handler就是负责处理具体请求的。先有Module,再有Handler。它们的关系,有点像进程和线程。
ASP.NET MVC 原理的更多相关文章
- ASP.NET MVC原理
仅此一文让你明白ASP.NET MVC原理 ASP.NET MVC由以下两个核心组成部分构成: 一个名为UrlRoutingModule的自定义HttpModule,用来解析Controller与 ...
- 仅此一文让你明白ASP.NET MVC原理
ASP.NET MVC由以下两个核心组成部分构成: 一个名为UrlRoutingModule的自定义HttpModule,用来解析Controller与Action名称: 一个名为MvcHandler ...
- 【转】仅此一文让你明白ASP.NET MVC原理
原文地址:http://www.cnblogs.com/DotCpp/p/3269043.html ASP.NET MVC由以下两个核心组成部分构成: 一个名为UrlRoutingModule的自定义 ...
- 简述ASP.NET MVC原理
1.为什么ASP.NET需要MVC? 因为随着网站的的数量级越来越大,原始的网站方式,这里指的是WebForm,在运行速度和维护性方面,以及代码量上面,越来越难以满足日益庞大的网站维护成本.代码的重构 ...
- 仅此一文让你明白ASP.NET MVC 之View的显示(仅此一文系列二)
题外话 一周之前写的<仅此一文让你明白ASP.NET MVC原理>受到了广大学习ASP.NET MVC同学的欢迎,于是下定决心准备把它写成一个系列,以满足更多求知若渴的同学们.蒋金楠老师已 ...
- ASP.NET MVC 之View
仅此一文让你明白ASP.NET MVC 之View的显示(仅此一文系列二) 题外话 一周之前写的<仅此一文让你明白ASP.NET MVC原理>受到了广大学习ASP.NET MVC同学的 ...
- Asp.Net MVC学习总结(一)——Asp.Net MVC简单入门
一.MVC简单入门 1.1.MVC概念 视图(View) 代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML.XML和Applet. 模型(Model) 表示用户对其数 ...
- ASP.NET MVC学习目录
一.ASP.NET MVC原理详解 1.了解MVC架构模式 3.学习ASP.NET MVC的必备语言知识 4.MVC中的razor语法详解 5.ASP.NET MVC路由系统机制详细讲解 6.ASP. ...
- ASP.NET MVC 5 Web编程2 -- URL映射(路由原理)
本章将讲述ASP.NET MVC5 的路由原理,即URL映射机制. 简单点就是解释:为什么MVC在浏览器输入地址就能访问到类(或类中的方法)?这是怎么做到的?我自己可以通过.NET写出一个自己的MVC ...
随机推荐
- CentOS 6及7 丢失root密码解决方案
6.x系列 法一:使用光盘镜像 BIOS中设置CD-ROM启动——选择救援模式——系统被自动挂载到/mnt/sysimage下——选择进入shell start shell——进入shell命令行—— ...
- (9) openssl enc(对称加密)
对称加密工具,了解对称加密的原理后就很简单了,原理部分见下文. openssl enc -ciphername [-in filename] [-out filename] [-pa ...
- [第一波模拟\day2\T1] {病毒分裂}(split.cpp)
[题目描述] A 学校的实验室新研制出了一种十分厉害的病毒.由于这种病毒太难以人工制造了,所以专家们在一开始只做出了一个这样的病毒.这个病毒被植入了特殊的微型芯片,使其可以具有一些可编程的特殊性能.最 ...
- luogu3563 逛公园
两遍 spfa 然后建立分层图拓扑排序 dp 一下. 写得很差劲.效率很低. 时间复杂度 \(\mathrm{O}(Tnk)\). 参见这里秒懂. #include <iostream> ...
- 查看linux ubuntu版本
ubuntu版本: lsb_release -a linux版本: uname -a proc目录下记录的当前系统运行的各种数据,version记录的版本信息直接可以通过cat查看到. 使用命令:c ...
- iRule Event Order - HTTPv12
- rest-assured(一)报错解决方案
1.javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? --------1.端口设置错误 ----- ...
- CodeForces - 601A The Two Routes
http://codeforces.com/problemset/problem/601/A 这道题没想过来, 有点脑筋急转弯的感觉了 本质上就是找最短路径 但是卡在不能重复走同一个点 ----> ...
- 【POJ3264】Balanced Lineup(RMQ)
题意:每天,农夫 John 的N(1 <= N <= 50,000)头牛总是按同一序列排队. 有一天, John 决定让一些牛们玩一场飞盘比赛. 他准备找一群在对列中为置连续的牛来进行比赛 ...
- POJ3150:Cellular Automaton
题意看不懂加题目想不通,很菜. n<=500个数围城环,每次操作对每个数Ai把与i在环上相距不超过d<n/2(包括Ai)的数加起来取模m<=1e6,求K<=1e7次操作后的环. ...