MVC,MVP架构

本文详细探讨了MVC框架在大项目开发中的适用性,包括其优势、开发指导思想以及如何避免常见陷阱。通过对比传统三层架构与MVC的关系,提供了迁移至MVC框架的建议,并讨论了MVC与Webform开发的混搭问题。
摘要由CSDN通过智能技术生成

一.  MVC是谁提出的    
     模型-视图-控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件
设计模式,至今已被广泛使用。最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的
使用 ColdFusion 和 PHP 的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多
好处,但也有一些缺点。

    二.  MVC是否适合进行大项目的开发
    MVC框架肯定是适合于做大项目开发的,但并不是说有了MVC框架我们就可以开发大项目,听起来
有些绕,其实道理很简单,原因就是人(开发者)。如果你是一个对MVC框架的设计理念有深入研究
的人,那么你在使用MVC框架进行产品和项目开发的时候就会随时随地都要考虑一些问题:

    1.低耦合性(强调视图层和业务层分离)
    2.可测试性(这个非常重要)
    3.高重用性和可适用性
    4.有利于软件工程化管理等等。

    这里我很欣赏老赵的治学态度,因为在他的文章和代码中随时随地都在进行着思考,特别是其对
可测试性,单元测试(这里不是什么TDD)的思考,让我看起来有心灵相通的感觉。因为这些问题都
是在做中型甚至大型项目中要认真思考的,决不是说微软给的例子就是我们的唯一准则,必定里面有
对也有错,我相信在MVC面前,国内甚至微软内部的牛人都不是很多。

    说了这些,大家可以意识到了,如果在没有理解下面这张图以及对MVC的“所谓优点是从何处得
到的”有认识,而一上来就去拿MVC去开发大型项目的话,我想不仅不能发挥asp.net MVC框架的估
势,相反会时时受制于里面的约束,配置和功能特性,最后感觉还不如直接用asp.net webform开发
来的直接,不是吗?真要是到了这一境地,我想不仅无法使用MVC进行大型目开发,就连中小企业应
用都应付不来。

         

   

     三.  能不能使用MVC架构进行Webform的开发    
     在园子里有人尝试使用ASP.NET MVC 框架来进行webform方式的开发,我个人是不欣赏这种做法
的,这就好比在使用LINQ的项目中又同时使用SQL语句一样“怪异”,这在代码的整体风格上会让人
产生迷惑,不是吗?当然老赵也在他的视频课程中提到在webform页面中使用一些MVC功能(比如:
ModelBinder等),但我想老赵的本意决不是让这种混合方式的开发大行其道,必定这是“非主流”,
所以孰轻孰重还是要大家自己把握的。
   

     四. 传统的三(N)层架构与MVC,以及MVC与MVP关系    
     本文所说的三层架构指:表现层(显示层), 业务逻辑层, 数据访问层(持久化)。如果大家
非要“生搬硬套”的把它与MVC扯上关系的话,那我就只能在这里"强扭这个瓜"了,即:

     三层架构中"表现层"的aspx页面对应MVC中的View(继承的类不一样)
    
     三层架构中"表现层"的aspx.cs页面(类)对应MVC中的Controller,理解这一点并不难,大家想一想
我们以前写过的Redirect,当然它本身就是跳转了一些链接页面,而MVC中的Controller要做的更爽,
它控制并显示输出了一个视图。即然所起到的作用都是对业务流程和显示信息的控制,只不过是实现
手段不同而已。

      三层架构中业务逻辑层和数据访问层对应MVC中的Model(必定View和Controller已找到“婆家”,
剩下的Model只能是业务业务层和数据访问层的了,呵呵)。但其实微软的一些MVC示例项目中对这个
问题理解的并不是这样简单,这一点在我之前的
关于两个MVC示例的思考(MVCStore和Oxite) 已阐述
过,就不多说了。  
    
     其实明白了这个关系,就可以尝试把以前的三层结构迁移到MVC框架下,当然在这个过程中肯定
会遇到这样或那样的问题,但原则就是把将MVC的优势发挥到极致,要不然还不如不做。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值