.net的MVC框架

概述

MVC是一种思想,基于这个思想有了很多的框架,像java中的Struts,那么这个思想到底是什么呢?

MVC思想

思想,也就是想法,要想知道这个想法是什么,就需要先知道这个想法因为什么产生了,要知道,没有无缘无故的恨,所以,想法也是不可能在没有任何因的情况下产生的,那么到底是什么触发了这个想法的产生,并且把它推到了高潮呢?

要想知道这个,首先,我们要分析一下在MVC真正到来之前,我们的Web编程世界的状况。当时的Web开发,主要以WebForm的开发模式,即以asp.net的事件驱动页面的方式开发,这样的开发方式使得给数据方和显示数据方紧紧的耦合在一起,使其两者变化时所给对方带来的影响非常的大。

举个例子:前台页面拖放一个服务器端控件,后台代码直接操作该控件,这样的话,如果我们的需求变成这个控件不需要显示了,那么,我们需要做的就是,去掉这个控件,并且找到后台操作该控件的代码,然后去掉。

看了这个例子后,可能听起来感觉不是很深刻,此时,你可以让它放大一下,让它的逻辑性更复杂性,如:后台代码有这个服务器端控件的很多事件,每个事件里,又操作了很多其他服务端控件(属性修改,调用方法),并且对前台也有相应的影响(返回js脚本修改样式等等),这样的话,你要去掉这个控件,相当于这个页面翻了天,当然,这仅仅是一个页面,如果说是多个这样的页面呢?这很有可能重新开发我们的UI层。

MVC思想就是使数据提供方(Control)和数据显示方(View)完全的解耦,即,把我们之前的asp.net页面分成了两个独立的块:A块和B块,A块和B块之间的桥是数据,A给B数据,B爱怎么那些数据就可以显示那些数据,完全不影响A,即,在MVC框架中,是无法使用asp.net中的服务器端控件的。

MVC框架开发的两种架构

使用MVC的时候,我们会经常听到关于使用MVC搭一个框架所以采用的方式,一般有两种,一种是MVC仅仅是UI层的一个架构,一种是VC是UI层,M是下面所有的层(具体下面有多少层,那要看你具体是如何搭建这个项目的),本人更倾向于第一种,即,MVC只是一个变现层的框架,为什么这么认为呢?上面也提到过,V和C之间的沟通是媒介是数据,这个数据就是M,从这里我们可以知道,C给V传递一个M,那么这个M里的属性应该包含V中所有要显示的数据,从这里来看,M其实就是FormModel(PageModel),跟三层架构中的实体层没有半毛关系。

约定大于配置思想

在.net的MVC框架实现中,有一个重要的思想就是约定大于配置,我们知道,我们使用MVC开发Web时,用户请求的都是C中的方法,然后,C中方法将相应的实体(可能是其它的东西,二进制流等)返回给一个V,这个时候,有趣的事情就来了,即:到底给那个V,这个的确定应该在哪里实现呢?是把它放到配置文件中配置,还是写在程序中,微软是写在了程序中,java的Struts是配置文件(这个自己没有实验)。

配置文件更加的灵活,但是,想一想,C中的一个方法,我就要在配置文件中写一条,我就有点冷;微软的写在程序中采用的思想是约定大于配置,即,C中方法创建V的时候,系统自动会创建一个文件夹(跟C同名),V的视图约定是跟方法名同名,同时,方法在再没有制定相应的V时,系统会自动查找和C同名文件夹中,和方法名同名的视图进行显示,当然,这个约定并不是死的,我们也可以通过写一些方法参数来制定相应的视图。

总结

在学习.net的MVC时,给我的震惊太多了,那些封装好的js代码,jquery库,校验(前后台),异步(隐式非隐式),HttpHelper,路由规则,等等,抽取的太好了,封装的太棒了。

.net的MVC框架,布布扣,bubuko.com

时间: 2024-10-18 15:54:31

.net的MVC框架的相关文章

使用Intellij Idea自定义MVC框架

今天我学习了自定义一个简单的MVC框架,这个我们首先要知道什么是MVC框架! MVC框架: MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 我们今天自己定义的

Java MVC框架性能比较

- by zvane 现在各种MVC框架很多,各框架的优缺点网络上也有很多的参考文章,但介绍各框架性能方面差别的文章却不多,本人在项目开发中,感觉到采用了struts2框架的项目访问速度,明显不如原来采用了struts1框架的项目快,带着这些疑惑,我对各类MVC框架的做了一个简单的性能分析比较,其结果应该说是基本符合预期的,可供大家参考. 测试环境:CPU:酷睿2 T5750,内存:DDR2-667 2G,Web容器:Tomcat6.0,最大线程数设置为1000,操作系统:WinXP-sp3 测

MVC框架中的值提供(一)

在MVC框架中action方法中的Model数据的绑定的来源有很多个,可能是http请求中的get参数或是post提交的表单数据,会是json字符串或是路径中的相关数据;MVC框架中针对这些不同的数据来源抽象了IValueProvider接口; public interface IValueProvider { bool ContainsPrefix(string prefix); ValueProviderResult GetValue(string key); } IValueProvide

搭建基于spring MVC框架 + RESTful架构风格技术总结

实战篇: 在SpringMVC框架中搭建RESTful架构风格来完成客户端与服务器端的低耦合度.可扩展性.高并发与大数据流量的访问. 用RESTful架构的创建步骤: 1.创建一个全新的Web工程 2.导包,导入所需要的所有第三方jar包.(springMVC+Hibernate的基本包是必须的) 3.作配置,针对不同的项目需求和不同的搭建设计,开发人员可以按照自己的编码风格来设计符合项目开发具体 应该用多少篇配置文件.但是这几篇配置文件是必不可少的: 3-1.web.xml配置文件:最基本的配

关于 mvc框架

M model(模型) 处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据. 模型是应用程序的主体部分. 模型代表了业务数据和业务逻辑: 当数据发生改变时,它要负责通知视图部分:一个模型能为多个视图提供数据.由于同一个模型可以被多个视图重用,所以提高了应用的可重用性. V view(视图) 通常视图是依据模型数据创建的.视图是用户看到并与之交互的界面.视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理.视图可以向模型查询业务状态,但不能改变模型.视图还

Spring MVC 框架搭建及详解

一.Spring MVC环境搭建:(Spring 2.5.6 + Hibernate 3.2.0) 1. jar包引入 Spring 2.5.6:spring.jar.spring-webmvc.jar.commons-logging.jar.cglib-nodep-2.1_3.jar Hibernate 3.6.8:hibernate3.jar.hibernate-jpa-2.0-api-1.0.1.Final.jar.antlr-2.7.6.jar.commons-collections-3

开发自己的PHP MVC框架(一)

这个教程能够使大家掌握用mvc模式开发php应用的基本概念.此教程分为三个部分.如今这篇是第一部分. 如今市面上有非常多流行的框架供大家使用.可是我们也能够自己动手开发一个mvc框架.採用mvc模式能够大大降低我们开发应用的时间,并且能够更好的组织项目源码,并且当中的某些模块还可在其他项目中使用.如今我要教大家写一个简单的mvc框架.因为这个项目非常easy,轻量.所以可能并非最佳实践,也不具备安全性.还须要大家在实际应用中完好. 所用技术:php,面向对象开发方法. 開始 首先在站点根文件夹下

ASP.NET MVC框架下添加菜单栏及分页项目

原创声明:本文为作者原创,转载请注明出处:http://www.cnblogs.com/DrizzleWorm/p/7274866.html ,谢谢! 我是做前端开发的,之前用C#的三层架构(UI.BLL.DAL)做过一个网站,这是我第一次接触ASP.NET MVC框架,首先给大家分享别人整理的ASP.NET MVC框架的一组教程:http://www.cnblogs.com/powertoolsteam/archive/2015/08/13/4667892.html内容很齐全,我是在先看了其他

8 -- 深入使用Spring -- 7...2 MVC框架与Spring整合的思考

8.7.2 MVC 框架与Spring整合的思考 对于一个基于B/S架构的JAVA EE 应用而言,用户请求总是向MVC框架的控制器请求,而当控制器拦截到用户请求后,必须调用业务逻辑组件来处理用户请求.此时有一个问题:控制器应该如何获得业务逻辑组件? 最容易想到的策略是,直接通过new 关键字创建业务逻辑组件,然后调用业务逻辑组件的方法,根据业务逻辑方法的返回值确定结果. 在实际的应用中,很少见到采用上面的访问策略,因为这是一种非常差的策略.不这样做至少有如下三个原因: ⊙ 控制器直接创建业务逻

030.自定义的MVC框架

.LOG自定义的MVC框架 M: Model模型V: View 视图C: Controller 控制器 ASP.Net 1. Web窗体编程2. Mvc编程 IHttpHandler任何处理web请求的类必须实现此接口void ProcessRequest(HttpContext context)bool IsReuseable{get;} 使用IHttpHandler实现登录与注册1.新建UserHandelr:IHttpHandler接口2.web.config配置,处理 /user.do请