MVC系列之开始

简介: MVC系列之开始

4月5号晚本来应该写出来的,这几天迷上了炉石传说,打得有点疯,明天又得上班了,收拾心情还是得写出来。上星期5晚上回家的时候,不得不吐槽一下的确有点背。6点下班冲去江夏地铁站,赶7点15分到江门的轻轨,到了南站到机子取票的时候,心中N只草泥马跑过,人真多。不得不跑去柜台,眼看赶不上了还有7分钟,打算改签,工作人员竟然要我试下。。。。。我还真打算试下,准备上电梯的时候发现,怎么电梯只有下,没有上。。。。一问工作人员,跟我说:电梯坏了,你可以去西门上,或者在那排队坐升降电梯。。。。。我看看排着长龙的升降电梯,望望的没有尽头的西门。绝望的走向地铁口,去省站搭大巴去 - -!天无绝人之路啊,搭了最后一班车,回到家了。。。。。。


  废话那么多,只是看看有没有和我差不多经历园友啊,把我不开心的事,说出来让你们开心开心,让大家平衡平衡。


  去了新公司,又要用回MVC,刚毕业出来用过一段时间,不过基础方面不怎么扎实,所以打算看书,重新好好学一遍。C#系列还是会持续更新的,除了学好一门语言,还得精通一套框架啊。。。不然好好的语言用在哪呢?


前言


  谈到框架,我们就先谈谈web form 和 MVC 的区别。这两个框架现在比较流行的,都是基于asp.net平台构建的,支持.net上任何语言。web form拥有可视化界面,我们可以拖拉控件,进行快速的页面布局,接着针对对应的控件编写事件,达到快速开发。可是对前台的HTML控制,并不理想,不知道大家有没有试过点开F12看看。。反正我是看晕了。。。另外,web form有‘视图状态’这个概念,如果控制不好,每次post后回传不必要的数据,就会浪费资源,如果数据量比较大,还会造成页面阻塞。


  正因为Web Form 的各种原因,因为MVC诞生了,从架构上面来看分三层,隔离就是为降低模块间耦合性,前端与后台的隔离,使设计与开发职责更明确;开发人员针对模块业务编写,提高代码质量,使程序更容易维护、更好的扩展。


image.png

  其实,两个框架都是基于.NET平台构建的,Web Form能实现的,ASP.NET MVC也可以,反之也成立。另外,Web Form是事件驱动了,而ASP.NET MVC是路由驱动的。我认为,Web Form适合于企业内部系统,企业系统对于页面的要求并不大,更注重后台业务逻辑,快速简洁的开发,可以减少成本。而MVC 前后端的分离,对HTML CSS JS良好控制,设计出更漂亮的页面,更适合于门户网站。不过这些不是绝对的,也有公司利用MVC和 easyui 之类的框架做企业内部系统,也是根据公司业务和开发人员技能来决定的。


新的开始


  两者的区别大致了解之后,还是得开始创建我们的项目。


  image.png

  点击创建新的ASP.NET MVC 4 项目后,会见到模板有6个选项,空模板,基本模板,Internet应用程序,Intranet应用程序,移动应用程序,web api。

  空模板


  •   这个空模板不算空哈- -!有基本的MVC的文件夹结构、配置文件,还有ASP.NET MVC基本需要的程序集。

  基本模板

  •    这个模板表明了,创建ASP.NET MVC 所需的最低标准的资源,和空模板比起来,多了两个文件夹,Content和Scripts。

  Internet应用程序

  •   其实这个模板就是在空模板的基础上扩展的DEMO,有登陆注册功能,初学者可以去看看,学着里面敲一敲。

  Intranet应用程序

  •     跟Internet应用程序有点相同,使用了基于windows的验证机制。

  移动应用程序

  •   这个模板主要是针对移动设备的优化,里面有JQuery Mobile 框架。

  web api

  •   web api集成在ASP.NET MVC里,直接可以把ASP.NET MVC当成一个web服务框架来用,特别方便。之前的公司用corona进行开发移动软件,我也是用MVC搭建的服务。


  视图引擎我选择了Razor,其实对于Razor来说不是什么新技术啊,我对它的理解是,在视图里写.net代码,打@之后随意敲。。。。。比aspx方便多了。。。。。=。=


  image.png

  既然自己弄着玩,那我就用基本模板好了,创建出来就见到上图的架构:


  • App_Data,这是数据的物理存储区。此文件夹的作用与它在使用 Web 窗体页面的 ASP.NET 网站中的作用相同。
  • App_Start,这个放着的是路由配置,原本是在Global.asax里的,在MVC4分离出去了。
  • Controllers,控制器,要求所有控制器的名称均以“Controller”结尾。
  • Models,通常包括定义对象以及定义与数据存储交互所用的逻辑的代码。
  • Scripts,存储支持应用程序的脚本文件,js,jq等。
  • Views,存储视图,里面还有个share文件夹,存放的是母版。
  • Global.asax,程序第一次执行的时候就是从这里开始,调用了App_Start里的路由配置。


  在Controllers文件夹添加一个HomeController,打开可以看见有个默认的Action ——Index,然后在Model文件夹添加一个类文件。每当我们接触一门新技术的时候,都习惯性的对这个陌生的世界打个招呼,那这次我们也不例外,HomeController 和 Model 里分别编写一下代码。


image.png

image.png

  添加Index视图,并且转入,将ViewData["hw"]编写进去,Ctrl+F5运行一下,可以看见我们写的Hello Word在页面上展示给我们看了,我们在地址栏上添加上/Home/Index,发现和原来的页面一样。其实这个是因为路由配置的默认设置,将/Home/Index设置为默认路径。


  image.png

总结


  上面大概了解了MVC的基本情况,我们知道Model是编写数据逻辑的,由Controller进行调用,然后再由Controller决定返回哪个View,最后将数据展示给用户。这里另外提一提,就是这个Model,很多时候会另外建一个类库,作为一个数据层进行使用。

image.png


目录
相关文章
|
6月前
|
存储 前端开发 Java
MVC知识分享
【6月更文挑战第6天】MVC知识分享
42 0
|
7月前
|
前端开发 搜索推荐 数据格式
什么是MVC
什么是MVC
|
前端开发 网络架构
什么是MVC-02
什么是MVC-02
65 1
|
存储 前端开发
什么是mvc
什么是mvc
213 0
|
前端开发 Java
|
设计模式 前端开发 Java
|
设计模式 JavaScript 前端开发
浅析MVC
浅析MVC
134 0
浅析MVC
|
前端开发 程序员 API
浅析 MVC
MVC是三个字母的缩写,分别是Model(模型)、View(视图)和Controller(控制) 这个模式认为,程序不论简单或复杂,从结构上看,都可以分成三类对象。 所有的页面都可以使用MVC来优化代码结构.
175 0
浅析 MVC
|
前端开发
艾伟_转载:[一步一步MVC]第六回:什么是MVC(上)?
本系列文章导航 [一步一步MVC]第一回:使用ActionSelector控制Action的选择 [一步一步MVC]第二回:还是ActionFilter,实现对业务逻辑的统一Authorize处理 [一步一步MVC]第三回:MVC范例大观园 [一步一步MVC]第四回:漫谈ActionLink,有时“胡搅蛮缠” [一步一步MVC]第五回:让TagBuilder丰富你的HtmlHelper [一步一步MVC]第六回:什么是MVC(上)? 引言 所谓MVC,其实就是M、V、C而已。
1009 0