ASP.NET MVC 小牛之旅1:何谓MVC

在学习ASP.NET MVC之前首先了解什么 是MVC ? MVC不是一种语言,严格来说也不算一个技术,而是开发时所使用的一种架构(框架),它就像是一种开发观念,或是一个设计样式。

MVC让软件开发的过程大致切割为三个主要单元,分别为:Model(模型)、View(视图)、Controller(控制器),这三个单词缩写便简称为MVC。

1.1何谓MVC

Model :负责定义信息格式与信息访问的界面,包括商业逻辑与信息验证。

大致如下:定义数据结构;负责与数据库沟通;从数据库读取数据;将数据写入数据库;运行预储数据;数据格式验证;定义与验证商业逻辑规则;对数据进行各种加工处理。

View:负责所有呈现在用户面前的东西,简单的说法就是输入与输出。

输出:从Controller取得数据,并显示在用户界面上,而数据是参考自Model的定义;负责界面的排版、字形、颜色、美观与各种呈现技术;

输入:负责将数据送回Controller;HTML窗体通过get或者post输出数据;决定将数据应该送到哪个Controller的Action中;前端基本的数据格式验证;验证功能等。

Controller

决定于”用户“的沟通管道,以ASP.NET为例就是http或者https;

决定系统运作流程,例如从Controller接收到数据后就要立即转向(Redirect)到另一个页面;

负责从Model取得数据,可以在Controller的类别中利用Model提供的类别来取得数据;

决定应该显示哪个View。

1.2彼此的关联

Controller与View的关联性彼此都是双向关系,但Controller的主动性较高。

View与Model的关联性:彼此都是双向关系,View是站在比较主动的一方。

Model与Controller的关联性:单向关系,Controller永远属于主动的角色。

1.3彼此的独立性

Controller与View之间的独立性:当View尚未被构建时,Controller其实可以先撰写程序,当Controller尚未被构建时,View也可以先撰写程序。

View与Model之间的独立性:View不需要Model也可以运行,只是这样View就会缺乏Model所能提供的数据型别定义,就会造成View在开发时没有那么方便。

Model与Controller之间的独立性:在没有Model的情况下Controller与View一样可以运行得很好。

1.4为什么要使用ASP.NET MVC ?

优点

清楚的关注点分离,代码易维护;(关注点分离概念:当你在进行软件开发时,可以只关注与当前的对象上一次仅关注一个较容易理解与解决的部分,不要受到相同系统中其他对象的干扰,也包括对象所作出的修改不会影响到其他对象的运作,能够专注完成手边的工作,不但容易提升软件质量也可加快程序代码的理解的速度。)

开放特性(完全开放源代码)

社群支持(当前国外社群非常活跃)

可轻易控制http的输出特性(比Web Forms好太多了

优秀的开发效率

易于测试的架构

易于分工的架构

缺点:

相较于web form来说,mvc较缺乏工具支持;

开发人员必须面对HTML、CSS、JS在View上的配置;

缺乏成熟的组件化技术支持;

1.5必须要舍弃WebForm哪些东西

MVC不能使用的技术:

ViewState

ASP.NET页面追踪机制(Page Trace)

ASP.NET事件驱动模型(Event Model)

服务器控件,大部分不能用

Default SiteMap Provider

时间: 2024-08-01 14:58:17

ASP.NET MVC 小牛之旅1:何谓MVC的相关文章

ASP.NET MVC 小牛之旅2:体验第一个MVC程序

了解了什么是MVC之后,接下来用一个非常简单的留言板程序概要的了解MVC网站开发的过程,对MVC开发有个大致的轮廓.第一个项目将不会提到过多与数据库相关的技术,因此将以Framework Code First开发技术进行数据访问,核心在于体验MVC开发的过程. 2.1利用ASP.NET MVC4项目模板创建项目 开启Visual Studio2012,选择“文件”→“项目”的菜单命令 在打开的“新建项目”对话框中展开web→“ASP.NET MVC4 Web 应用程序”,修改一下名称为“MvcG

ASP.NET MVC 小牛之旅4:ASP.NET MVC的运行生命周期

ASP.NET MVC的运行生命周期大致分成三大过程:(1)网址路由对比. (2)运行Controller与Action. (3)运行View并回传结果. 4.1网址路由对比 当iis收到http请求后,会先通过UrlRoutingModule模块处理所有与网址路由有关的运算.默认情况下,如果该网址可以对应到相对于网站根目录下的实体文档,则不会通过ASP.NET MVC进行处理,会自动略过所有的网址路由对比,而是直接交给IIS或ASP.NET运行. 如果要改变这个UrlRoutingModule

ASP.NET MVC 小牛之旅3:Routing——网址路由

网址路由(Routing)在ASP.NET MVC中有两个主要用途,一个用途是匹配通过浏览器传来的HTTP请求,另一个用途则是响应适当的网址给浏览器. 3.1匹配通过浏览器传来的HTTP请求 首先我们来看下第一个用途,也就是匹配通过浏览器传来的HTTP请求. 客户端对ASP.NET网站发出请求时,能够通过Routing找到合适的HttpHandler来处理网页,大致的处理流程为: 如果HttpHandler是由MvcHandler来处理的,那么,此时就会进入ASP.NET MVC的执行生命周期,

[ASP.NET MVC 小牛之路]01 - 理解MVC模式--转载

PS:MVC出来很久了,工作上一直没机会用.出于兴趣,工作之余我将展开对MVC的深入学习,通过博文来记录所学所得,并希望能得到各位园友的斧正. 本文目录 理解一般意义上的MVC模式 MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为以下三个基本部分: 模型(Model):模型用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法.“模型”有对数据直接访问的权力,例如对数据库的访问.“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会

[ASP.Net] 转 > ASP.NET MVC 小牛之路

URL: http://www.cnblogs.com/willick/ 看到了不错的学习笔记,MVC.Net学习之路展开 [ASP.NET MVC 小牛之路]18 - Web API [ASP.NET MVC 小牛之路]17 - 捆绑(Bundle) [ASP.NET MVC 小牛之路]16 - Model 验证 [ASP.NET MVC 小牛之路]15 - Model Binding [ASP.NET MVC 小牛之路]14 - Unobtrusive Ajax [ASP.NET MVC 小

[ASP.NET MVC 小牛之路]18 - Web API

原文:[ASP.NET MVC 小牛之路]18 - Web API Web API 是ASP.NET平台新加的一个特性,它可以简单快速地创建Web服务为HTTP客户端提供API.Web API 使用的基础库是和一般的MVC框架一样的,但Web API并不是MVC框架的一部分,微软把Web API相关的类从 System.Web.Mvc 命名空间下提取了出来放在 System.Web.Http 命名空间下.这种理念是把 Web API 作为ASP.NET 平台的核心之一,以使Web API能使用在

[ASP.NET MVC 小牛之路]05 - 使用 Ninject实现依赖注入

在[ASP.NET MVC 小牛之路]系列上一篇文章(依赖注入(DI)和Ninject)的末尾提到了在ASP.NET MVC中使用Ninject要做的两件事情,续这篇文章之后,本文将用一个实际的示例来演示Ninject在ASP.NET MVC中的应用. 为了更好的理解和撑握本文内容,强烈建议初学者阅读本文前先阅读依赖注入(DI)和Ninject. 本文目录: 准备工作 新建一个名为BookShop的空白解决方案.在该解决方案中分别添加一个名为BookShop.WebUI的MVC空应用程序,和一个

ASP.NET MVC4入门—2、第一个MVC程序

目录 ASP.NET MVC4入门—1.ASP.Net的两种开发方式 ASP.NET MVC4入门—2.第一个MVC程序 开发环境:VS2012 .SQL Sserver2008 1.打开VS,文件——新建项目Guestbook 点击确定后,会出现如下对话框,进行模版的选择,在这里你还可以选择是否创建单元测试,为了养成一个良好的习惯,这里我勾选了“创建单元测试项目” 这时会创建两个项目:Guestbook和Guestbook.Tests,将Guestbook设置为启动项目,然后,按Ctrl-F5

003. Asp.Net Routing与MVC 之一: 请求如何到达MVC

前言 本文用到的基础知识:URL.HttpModule 与 HttpHandler.IIS7.0的请求处理过程. URL      参见<基础URL>, HttpModule与HttpHandler请读<HttpModule .HttpHandler> IIS7.0的请求处理过程请读<IIS7的><IIS架构> OK,现在我们来看请求如何到达MVC: 一.请求如何到达Asp.Net Routing 我们知道IIS网站的配置可以分为两个块:全局 Web.Con