请注明转载地址:http://www.cnblogs.com/arhat

  首先在这里我想声明一下,这个ASP.NET MVC3系列是我在授课过程中的一些经验,有什么不对的地方,请大家指出,我们共同的学习。

以前总是在课堂上讲解一些新技术,由于时间有限不可能全部都讲到位,所以我想在闲暇的时候能够把平时我的开发经验和学习的新知识传授给大家。那么这个Blog就诞生了,本来很早的时候就想把一些东西都写到Blog上,但是由于平时比较忙没有顾上,趁着年前有时间就弥补一下遗憾吧!
可能大家看到Blog上的随笔分类了,以为又是一位给微软拉票的,首先说明一下,用什么技术无所谓,我想我在这里体现的只是一个学习的精神和方法。好了,废话不多说了,开始《一步步学习ASP.NET MVC3》系列吧。

当我们提到MVC的时候,我们总是想起Java,因为在J2EE中大量使用的Struts技术,而这个技术则是以MVC为核心的。那么微软在看到MVC如此轻量级的开发,也开始进入到这个行业了,于是ASP.NET MVC诞生了,随着ASP.NET MVC的发展,从ASP.NET 1.0到ASP.NET 4.0,经历了4个版本,据说ASP.NET 5.0正在测试中,看来ASP.NET MVC发展的速度还是很快的嘛(嘻嘻,很喜欢哦)!

为什么从事B/S结构开发的程序员都喜欢MVC的方式开发呢,我个人认为,MVC之所以被程序员所青睐,是因为MVC是一个非常好的开发模式,提高了开发效率和维护工作。说了这么多废话,那么到底什么是MVC呢?

MVC:是开发时使用的一种“架构(框架)”。而这个框架被划分为了Model(模型),View(视图),Controller(控制器)。而每个部分都有自己功能和职责。

在一开始呢,我不想讲太多的概念,因为概念这个东西不是说看一遍就能懂的,必须通过不断的实验才能彻底的了解这个概念。所以,我想在以后的章节中慢慢的去解释这些概念。那么首先大家需要注意的是,在这个章节中只需要了解一下MVC三者之间的一个运行原理就可以了。

在通常情况下(ASP.NET),一个客户端请求发送到服务器,服务器根据请求找到对应的文件,然后进行解释并把结果输送到客户端。这里大家需要注意红色字体,请求的是文件。

换句话说,我们请求的资源是一个文件(Index.aspx),而这个文件包含了2个部分,一个是视图呈现,一个是逻辑代码。在学习ASP.NET知道,一个aspx页面包含了两个重要组成部门,一个是aspx页面显示,一个是aspx.cs文件逻辑代码。这样就有一个缺点,视图和逻辑代码没有被分开,起到了紧耦合的效果。

而在ASP.NET MVC中,颠覆了这种理念,那么MVC到底是怎么运行的呢?下面我们看一下MVC的运行图。

从图上可以看出,现在的客户端请求是请求的Controller,而不再是aspx文件了,然后Controller根据用户的请求,决定要调用那个View(视图,网页),如果有请求中需要有有数据,则Controller会把请求的数据交给View进行显示。那么请求的Controller到底是什么呢?

Controller:负责控制系统运行的流程,跟浏览器如何交互,决定网页操作的流程和动作,响应客户端的各种操作。可以这样说,Controller就是一个普通的“.cs”文件,这个文件中都是函数,那么客户请求就是Controller中的函数。

View:负责用户界面,包含输入输出。

Model:负责定义信息格式。是数据的载体。

可能说到这里,还是一头雾水。没关系,下节我来配置我们的ASP.NET MVC3来实现一个HelloWorld。

一步步学习ASP.NET MVC3 (1)——基础知识的更多相关文章

  1. 一步步学习ASP.NET MVC3 章节总结

    请注明转载地址:http://www.cnblogs.com/arhat 对于<一步步学习ASP.NET MVC3>系列工15章,那么为了方便大家能够快速的预览,老魏在这里为这个系列提供一 ...

  2. 一步步学习ASP.NET MVC3 (3)——Razor(1)

    请注明转载地址:http://www.cnblogs.com/arhat 首先这个<一步步学习ASP.NET MVC3>前段时间有些忙,没有顾得上写文章,昨天呢写了3个和ASP.NET的相 ...

  3. 一步步学习ASP.NET MVC3 (12)——FileResult

    请注明转载地址:http://www.cnblogs.com/arhat 忙了两天,本来老魏昨天就应该写出新的文章,但是由于昨天雨夹雪而且加上昨天晚上加了班,到家都没饭吃了,一看时间都9点了,什么饭店 ...

  4. 一步步学习ASP.NET MVC3 (2)——入门程序

    请注明转载地址:http://www.cnblogs.com/arhat 在上一节中,我们只是简单的介绍了什么是MVC及MVC的运行原理.而本节呢,主要来实现下一ASP.NET MVC3的开发流程,并 ...

  5. 一步步学习ASP.NET MVC3 (14)——Route路由

    请注明转载地址:http://www.cnblogs.com/arhat 由于今天是星期六,所以多写几篇,感觉前几天的忙碌没有及时发布文章,趁着周末老魏尽力的多写几篇文章.因为本系列基本上快结束了,所 ...

  6. 一步步学习ASP.NET MVC3 (5)——View从Action中获得数据

    请注明转载地址:http://www.cnblogs.com/arhat 在上一章中,我们把Razor的模板技术给大家介绍了一下,当然模板中还有其他的知识点,这个以后我们还会继续讲解.本章我们主要讨论 ...

  7. 一步步学习ASP.NET MVC3 (6)——@helper,@functions

    请注明转载地址:http://www.cnblogs.com/arhat 在前一章中,我们讲述了View如何从Action中获得数据,并显示出来,但随着需求的变化,我们可能要对View中显示的数据作出 ...

  8. 一步步学习ASP.NET MVC3 (7)——Controller,Action,ActionResult

    请注明转载地址:http://www.cnblogs.com/arhat 前面几章我们讲解的都是关于View方面的知识,虽然还有很多关于View的知识没有讲,但是没关系,我们在后面使用到的时候在讲解, ...

  9. 一步步学习ASP.NET MVC3 (13)——HTML辅助方法

    请注明转载地址:http://www.cnblogs.com/arhat 今天老魏是在十分郁闷,我的一个U盘丢了,心疼里面的资料啊,全部是老魏辛辛苦苦积攒的Linux资料,太心疼,到现在心情还不是很爽 ...

随机推荐

  1. Android_menu_optionMenu

    xml文件:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns: ...

  2. percona-toolkit工具检查MySQL复制一致性及修复

    利用percona-toolkit工具检查MySQL数据库主从复制数据的一致性,以及修复. 一.             pt-table-checksum检查主从库数据的一致性 pt-table-c ...

  3. akka创建actor时报错:IllegalArgumentException: no matching constructor found on class $iwC$$iwC$$iwC$$iwC$

    在spark-shell中输入范例中的代码: import akka.actor.Actor import akka.actor.Props import akka.event.Logging cla ...

  4. 如何在Windows系统上用抓包软件Wireshark截获iPhone等网络通讯数据

    http://www.jb51.net/os/windows/189090.html 今天给大家介绍一种如何在Windows操作系统上使用著名的抓包工具软件Wireshark来截获iPhone.iPa ...

  5. PetaPoco更新记录方法

    /// <summary> /// Performs an SQL update /// </summary> /// <param name="tableNa ...

  6. partial与sorted

    import functools sorted_ignore_case = functools.partial(sorted,cmp=lambda s1, s2: cmp(s1.upper(), s2 ...

  7. 开启或关闭SQLSERVER服务的bat文件

    界面如下: 因为电脑的SQLSERVER服务没有自己启动,有时候又需要关闭SQLSERVER服务,就自己在网上找了下教程. 源码如下: @echo offchoice /t 3 /c yn /d y ...

  8. ajax跨域请求的解决方案

    一直打算改造一下自己传统做网站的形式. 我是.Net程序员,含辛茹苦数年也没混出个什么名堂. 最近微信比较火, 由于现在大环境的影响和以前工作的总结和经验,我打算自己写一个数据,UI松耦合的比较新潮的 ...

  9. angular2 select change 事件

    刚开始这是啥?(wrong!!!    change事件会在 选择option行为  之前执行prodDirId,是取不到选择后正确的id值的,取得是选择行为前prodDirId的值(有试过setTi ...

  10. 如何从零开始实现一个soa远程调用服务基础组件

    说起soa远程调用基础组件,最著名的莫过于淘宝的dubbo了,目前很多的大型互联网公司都有一套自己的远程服务调用分布式框架,或者是使用开源的(例如dubbo),或者是自己基于某种协议(例如hessia ...