MVC框架

	前段时间,一直跟着师父做一个项目。整个系统的框架都是师父搭建好的,作为新手,刚开始以为我们只是跟着了解了解需求,后来,没想到,师父也给了我们参与到代码的编写的机会,从而见到了整个系统的真正框架。
	系统的框架是MVC+WCF+EF。这几个英文缩写其实自己也不是第一次见,之前在浏览师哥师姐们的博客里,经常见到。这一次亲身经历,学习的机会便不约而至了。这篇博客就从MVC说起。
	一.什么是MVC?
	(宏观认识)
	MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。
	它是用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
	(细节把握)
	Model(模型)表示应用程序核心,是应用程序中用于处理应用程序数据逻辑的部分,负责在数据库中存取数据。
	View(视图)显示数据,是应用程序中处理数据显示的部分,是依据模型数据创建的。
	Controller(控制器)处理输入,是应用程序中处理用户交互的部分通常负责从视图读取数据,控制用户输入,并向模型发送数据。
    	对于MVC,自己在整个项目中,接触的多的只是Controller和View,模型都是师父搭建好的,所以自己的工作难度也就大大降低了。一般都是在Controller中写好需要实现的业务逻辑,然后界面层通过引用自己写的js,从而实现各部分功能。
	二.MVC的特点?
	(优点)
  • 耦合性低:三个部件相互独立,改变其中一个不会影响其它两个。
  • 重用性高:MVC模式允许使用各种不同样式的视图来访问同一个服务器端的代码,多个视图能共享一个模型。
  • 生命周期成本低:使开发和维护用户接口的技术含量降低。
  • 部署快:开发时间大大缩减,使业务逻辑人员和界面程序人员都精于各自的领域即可。
  • 可维护性高:分离视图层和业务逻辑层使得Web应用更易于维护和修改。

(缺点)

  • 没有明确的定义;
  • 不适合小型、中等规模的应用程序;
  • 增加系统结构和实现的复杂性。

    对于MVC的优缺点,现在自己认识的并不是很深刻,这还是第一次接触。
    但对于其优点的耦合性低和重用性高,体会比较深刻一些。
    在调试程序的过程中,如果是功能没有实现,那么我就会直接从Controller或是后台方法去找问题,比如提示“变量的值不能为空”等;如果是用户界面样式没有达到理想要求,那么我就会从View或View引用下的js出发,比如显示的界面并不是EasyUI的效果那样;如果涉及到的问题是与数据库有关联,比如提示“键的信息不能删除”等,那么我就会直接去看模型,看是不是有什么不对的地方。这正是因为MVC大大降低了这几层之间的耦合性,什么层该干什么,都很清楚。
三.MVC与三层架构的区别?
    不知道对MVC了解到这里,大家有没有想起过它与我们接触的什么知识有着很大程度上的相似呢。
    可能大家都会想到经典的三层架构,但其实,它们根本不是一个概念。
    下面就说说它们两个的区别:
(1)概念不同:一个项目的开始,我们需要先进行架构设计,而我们一般采用的就是分层式,也就是我们所说的三层。而在确定了架构之后,我们就需要进一步确定我们是否需要使用各种框架模式或是设计模式,而MVC就是我们说的框架模式下的一种。
(2)层次不同:我们可能一下就会在脑海中产生这样一种关系:M对应着D层,V对应着U层,C对应着B层。而实际上这样是不对的。我从网上看资料的时候,看到了下面一张图,诠释的还是很清楚的:
(3)重点不同:三层架构的目的着重点是“高内聚,低耦合”,即解耦。MVC的目的则是实现Web系统的职能分工,即职责划分。
  其实职责划分也是解耦,但是三层侧重的是整体的一个解耦,而MVC侧重的是web系统的解耦,即侧重jsp和Servlet的一个解耦。
    我们之所以会把MVC与三层混淆在一起,是因为两者都是“三层”,一个是UI、BLL、DAL,一个是View、Controller、Model。而MVC中总是伴随着三层架构,它们两者是一起出现的。另外,它们都是为了解耦和。
四.如何在VS2013中创建MVC项目
(1)新建
新建一个采用MVC框架的项目,名为Demo
(2)选择
选择形成一个基本的MVC项目,选择视图引擎,它共有两个选择,一个是aspx,一个是Razor,这两者有什么区别,可以看看师哥写的一篇博客:ASPX和Razor (3)生成
生成解决方案,主要的就是两个文件夹,Controllers和Views,VS2013中不能从Controller中直接生成View,只有自己手动添加,所以必须保证该文件夹下同一业务逻辑的名称必须完全相同。
五.学习感受
第一次接触MVC框架,对于它其中的复杂的原理或者说是理论知识其实还是很模糊的,整个项目下来,自己通过对一个字典页面的管理,也算是知道了应该去做些什么。这个阶段也算是先培养培养代码感情,在以后做项目的时候也更容易上手。
一个新东西,摆在自己面前还是有些苦恼的,虽然师父让我照着一个师姐的模板去做,但照葫芦画瓢的工作还是很艰巨的,自己也是一边理解,一边实践,一条线一条线地去实现,到最后明白了很多,同样也还是遗留了很多问题。
总之,这一次真的是大开眼界了。

时间: 2024-08-21 22:45:55

MVC框架的相关文章

php-使用PHP搭建自己的MVC框架 搭建时出现的问题

问题描述 使用PHP搭建自己的MVC框架 搭建时出现的问题 你好,我按照<使用PHP搭建自己的MVC框架>上面的步骤来进行搭建这个框架,但是把所有的步骤都做完了,最后访问的时候提示找孙到页面,请问这个问题应该怎么解决呢,还是框架本身就有问题呢,求指教,谢谢! 解决方案 看看作者有没有提供完整的源代码,如果没有,这种例子根本不靠谱.看教程一定要找有完整代码的. 解决方案二: 重新核对看看有没有遗漏什么关键步骤.或者重新找个完整的示例代码. 解决方案三: 没有源码的,但是我看到有很多人在转,所以我

产品前端重构(TypeScript、MVC框架设计)

最近两周完成了对公司某一产品的前端重构,本文记录重构的主要思路及相关的设计内容. 公司期望把某一管理类信息系统从项目代码中抽取.重构为一个可复用的产品.该系统的前端是基于 ExtJs 5 进行构造的,后端是基于 Asp.net MVC 提供的 REST 数据接口.同时,希望通过这次重构,不但能将其本身重构至可用于快速二次开发的产品,同时还要求该前端代码要保证相对的独立,使得同时可以接入 .NET 和 JAVA 两个不同的后端平台所提供的数据接口.   旧代码的问题 老系统的前端代码如下图所示:

WebApp MVC 框架的开发细节归纳

  在前文<WebApp MVC,"不一样"的轻量级互联网应用程序开发框架>介绍了WebApp MVC的技术实现以及如何使用,而在本章进一步归纳了使用框架开发的一些细节,也给我们在开发具体功能的时候提供一个正确的方法:共归纳了三点,具体内容如下: 1.URL请求页面 1)使用Nvelocity显示页面 2)第一次页面加载中的Jqueryeasyui控件数据特殊处理   2.Form表单提交数据 1)action提交 2)action提交前进行数据验证 3)使用JQuerye

Struts VS Spring 两种MVC框架比较

比较 基于Web的MVC framework在J2EE的世界内已是空前繁荣.TTS网站上几乎每隔一两个星期就会有新的MVC框架发布.目前比较好的MVC,老牌的有Struts.Webwork.新兴的MVC 框架有Spring MVC.Tapestry.JSF等.这些大多是著名团队的作品,另外还有一些边缘团队的作品,也相当出色,如Dinamica.VRaptor等.这些框架都提供了较好的层次分隔能力.在实现良好的MVC 分隔的基础上,通过提供一些现成的辅助类库,同时也促进了生产效率的提高. 如何选择

基于ASP.NET2.0的非HttpModule山寨版MVC框架的实现

在ASP.Net MVC框架中是使用地址拦截的,虽然很好用,但是装起来太大了,配置也麻烦.本文通过代码实践,在ASP.Net2.0框架下实现一套简易的MVC框架.MVC框架难于构建的地方在于Controller与View的分离以及分离后数据可以方便地传输.为了保持代码的简洁,将使用ashx文件作为Controller,用aspx页面作为View. 讲起来比较费劲,把项目文件放上来,而下面只作一个简单的说明.项目是VS2008的项目,大小15K. 下载地址:DotNetMVC.rar 首先构建一个

使用Annotations设计一个MVC框架

设计 当设计一个应用程序时, 清晰的分离该程序的不同逻辑组件, 总是被证明是有益的. 同时也存在许多不同的模式来帮助开发者实现这个目标.其中最有名同时也最常用的自然是Model-View-Controller (MVC)了, 它能够将每个应用程序(或者应用程序的一部分)分成三个不同功能的组件,并且定义了把他们联结在一起的规则.Swing本身就是基于这个模式的,而且每个使用Struts,这个流行的开发Web应用框架的人也都了解隐藏在MVC后面的理论. 这篇文章介绍了怎么样通过使用annotatio

浅谈MVC框架中View层的优雅设计及实例

设计 在基于B/S的应用程序开发中,从基本的技术分工上来说就是两大块,一是软件显示界面,另一个是程序逻辑.在N年前的脚本语言时代,无论是asp.php还是jsp,我们基本是都是把这两者柔和在一起的.尽管我们想方设法做好很多函数或者包含文件来努力达到软件的复用,但仍然无法满足多变的用户需求,这主要是因为以前的纯脚本编码方式无法很好支持及应用面向对象(OO)领域中的强大功能. 在常见的B/S软件项目中,界面的设计包括html界面.Wap界面及其它由文本字符协议为基本表示的界面等.以我们接触最多的ht

Spring MVC框架的高级配置

高级 本文将为您提供关于Spring MVC框架的配置技巧,以帮助管理基于Spring的web应用程序的多个实例.本配置管理主题常被学术界所忽略,但是,这对于现实的web开发尤为重要.本主题并不直接关联任何具体的技术,因此,我们将从最基本的概念开始对这个问题进行说明.下面,我们将根据Spring MVC框架,为基于本技术开发的项目提供一系列的解决方案. Spring配置 人们经常会在一台以上的主机上配置一种Web应用程序.例如,在生产中,一个网站可能只有一个实例.除了此实例外,开发人员可以在用于

对于Struts和Spring两种MVC框架的比较

比较 基于Web的MVC framework在J2EE的世界内已是空前繁荣.TTS网站上几乎每隔一两个星期就会有新的MVC框架发布.目前比较好的MVC,老牌的有Struts.Webwork.新兴的MVC框架有Spring MVC.Tapestry.JSF等.这些大多是著名团队的作品,另外还有一些边缘团队的作品,也相当出色,如Dinamica.VRaptor等.这些框架都提供了较好的层次分隔能力.在实现良好的MVC 分隔的基础上,通过提供一些现成的辅助类库,同时也促进了生产效率的提高. 如何选择一

理解PHP中的MVC编程之MVC框架简介

编程     [什么是MVC?] MVC是一个可以让你把"三个部分(即MVC的全称,Model.View.Controller)"谐调地组成一个复杂应用程序的概念.一辆汽车就是一个在现实生活中非常好的MVC例子.我们看车都看两个View(显示)部分:内部和外部.而这两个都离不开一个Controller(控制者):司机.刹车系统.方向盘和其他操控系统代表了Model(模型):他们从司机(Controller)那里取得控制方法然后应用到内部和外观(View). [网络上的MVC] MVC框