码迷,mamicode.com
首页 > Web开发 > 详细

浅谈我眼中的ASP.NET MVC

时间:2015-08-30 15:50:12      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

      坦白地说,学习MVC是前一段时间的事情了。但是,我当时虽然也实践过,却也不能很好的说出个所以然来。因此,也 一直没敢写点什么文字总结。最近,开始学习EF,也同时在使用MVC来结合EF实践增删改查。慢慢地也似乎可以说一点什么,现在也姑且先写下来,好与不好,比喻对或不对,也是成长的记录了。

第一点:什么是ASP.NET MVC?

          ASP.NET是一个开发框架,用于通过HTML、CSS、JavaScript以及服务器脚本来构建网页和网站的。

      ASP.NET支持三种开发模式:Web Pages、MVC、Web Forms。

      简言之,MVC是ASP.NET开发框架下所支持的一种开发模型。

第二点:MVC如何定义Web应用程序?

      MVC模型通过三个逻辑层来定义Web应用程序:

                Business layer(业务层、模型逻辑)

                Display layer(显示层、视图逻辑)

                Input control(输入控件、控制器逻辑)

这就类似于我们在学校的时候学习到的三层架构的样子。

第三点:MVC之所以叫MVC?

技术分享

     上图是VS2013建立的一个MVC项目。从中我们可以看到三个文件夹,分别为Controllers、Models、Views。

这三个文件夹,也是我今天主要和大家一起谈的东西。

     我想大家都不难看出,MVC之所以叫MVC是来源于这三个文件夹的。

     M:Models(模型),V:Views(视图),C:Controllers(控制器)。

    

Model:模型,可能说成是实体类,更容易让大家理解。但是它又不同于我们在校所学的普通三层的实体类,它在应用程序中也将处理

         程序数据逻辑部分的东西。

         换句话说,模型对象将会在数据库中进行存取数据的操作 。这也就对应了 Business layer(业务层)。

        用一个数学表达式:

                                Model=(普通三层架构的)实体类+(普通三层架构的)DAL+(普通三层架构的)BLL;

        (补充:实际操作中,为了使Model中的代码更为清晰等原因,我们仍旧会在项目中增加一个DAL。当然,这里我们不做讨论)

View:视图,顾名思义,它是一个可见的视觉图像。它是应用程序中处理数据显示的部分。

        如果简单的表述,我认为它就是程序反馈给大家的一个HTML页面,就是前台所展示的看得见东西,称之为视图。

        它对应的是Display layer(显示层),那么它Dispalay些什么呢?

        其实,View主要是将Model层所得到的数据展示给用户。显示用户界面组件。

Controller:控制器 。其是应用程序中处理用户交互部分。通常控制器从视图中读取数据、控制用户输入,并向模型发送数据。

        也就是说,Controller像一个桥梁连接着Model和View。更或者在我看来,它就像一个跑腿的信使,做这么一个传递的

        角色。

         它所对应的是Input control(输入控件)。

第四点:MVC是如何开展工作的?

            在第三点中,我多多少少也讲了一些MVC它们之间主要的工作协作。这里我们来看一张图,可能会更加直观的明白。

技术分享

与数据库进行直接交互的是Model.

USER能够看得见的是View.

Model与View直接并不能直接联系,而是通过Controller进行交流。

然而USER进行的任何操作,也都在通过Controller来处理交互,最终将Model所存取的数据,通过View展示,

最终出现在USER面前。

 

本文,先将MVC分享至此。有兴趣的同学可以针对MVC学习一下MVC的另一大重点:路由表。

 


 

        

 

     

浅谈我眼中的ASP.NET MVC

标签:

原文地址:http://www.cnblogs.com/xuyuanyuan/p/4770913.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!