大家给我说说MVC的好处,相对于传统的。有理的给分不管你说到几点这样让我对学习MVC更加有热情和动力  散80分

解决方案 »

  1.   

    MVC的唯一一个好处就是让你有了一个学习的方向
      

  2.   

    之前我曾写了一篇文章讲这个问题。MVC的好处在于,给某一特定人群(掌握C# 3和4 的语法,善于精确控制Web程序的请求和响应,使用敏捷、持续继承和测试驱动开发的项目运作模式,前端和后端分离,将MVC作为架构并且遵循最佳实践,青睐Restfull,最后,将这些实践作用在微软平台)一种方便可用标准的开发库。这个群体一般以欧美开发者居多,且经验丰富。对产品的品质有严苛的要求,同时又需要轻量的开发体验,需要快速交付他们的产品,MVC框架如同其它平台的同类产品一样,恰逢其时。但是MVC并不适合新手入门,也不适合那些用惯了WebForms和以控件来思考程序运作方式,围绕界面编程的程序员。所以,MVC并非具有“好处”,如果说好处,也是那一整套开发实践本身的“好处”,MVC只是为特定人群提供了他们需要的一样东西而已。如同裙子比较裤子有什么好处。当然裙子美观、优雅、舒适,但是前提是用户群体为女性。
      

  3.   

    小曹,你对MVC的理解狭隘了,MVC无处不在,从哈勃望远镜到你开的汽车,从你用的电脑到家用电器
    仅仅针对OOAD领域,
    MVC的V既可以是asp.netMVC,也可以使asp.netWebForm,也可以是winform,SL,或者html+js
    更换一个UI平台,不需要修改M和C
    只需要更换对应的视图驱动器(就好比是换个显卡).当然你可以同时像pc和移动客户端提供同一种业务的服务(这就好比同时使用多个显卡或者多个显示器)所以说,asp.netMVC根本就不是MVC,只不过名字中含有这些字母,
    当初还害的我们把自己的MVC系统的命名空间修改,以避免和微软的命名的冲突
      

  4.   

    微软的ado技术,还有整个.net系统,本身就是MVC思想的实现,
    应该说,这些技术为我们从业者提供了最佳设计的典范,活教材
      

  5.   

    如同在这个论坛里面没有人会把 asp 理解成 application service provider
      

  6.   

    呵呵,我们的架构设计的时候,微软还没有发明asp.netMVC这个东东
      

  7.   

    我只想说,ASP.NET MVC的诞生纯粹是微软觉得既然各大平台都有MVC框架,那么必然用微软平台的人中也有这样的需求。有的人说,ASP.NET MVC 1 2 3更新很快,之后就慢了,这也好理解,因为该抄的都抄完了。
      

  8.   

    我记得我曾问过Scott Hanselman,what is the thing that ror can do but asp.net ca not do.
    Scott说,貌似没有。的确是这样,表面上看,是asp.net mvc 和 ror 之争,其实是微软平台和开源平台之争。
    表面上看是asp.net webforms 和 asp.net mvc 之争,其实是不同的实践之争。如同海尔空调绝对不是因为比格力空调多了一个功能而作为卖点,反过来也是。
      

  9.   

    小曹,你可能误解我的意思了,
    讨论MVC思想的时候,我很少去讨论UI的东西,
    因为UI是数据无关,业务无关的,
    谈OOAD基本上不涉及这些,
      

  10.   

    现在你们好像把asp.net MVC说的一无是处,能不能说点好的,例如从操作数据的效率上,开放项目的效率上等等都可以啊
      

  11.   

    恩,MVC是不错呢,以后可能是一个趋势呢!看好MVC,支持SaaS新企业发展!
      

  12.   

    MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能。   
      

  13.   

    MVC的优点
      大部分用过程语言比如ASP、PHP开发出来的Web应用,初始的开发模板就是混合层的数据编程。例如,直接向数据库发送请求并用HTML显示,开发速度往往比较快,但由于数据页面的分离不是很直接,因而很难体现出业务模型的样子或者模型的重用性。产品设计弹性力度很小,很难满足用户的变化性需求。MVC要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。 
      首先,最重要的是应该有多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。例如,订单模型可能有本系统的订单,也有网上订单,或者其他系统的订单,但对于订单的处理都是一样,也就是说订单的处理是一致的。按MVC设计模式,一个订单模型以及多个视图即可解决问题。这样减少了代码的复制,即减少了代码的维护量,一旦模型发生改变,也易于维护。 其次,由于模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口的使用。 
      再次,由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变。一个应用的业务流程或者业务规则的改变只需改动MVC的模型层。 
      控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起完成不同的请求,因此,控制层可以说是包含了用户请求权限的概念。 
    最后,它还有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。MVC的不足
      MVC的不足体现在以下几个方面:
      (1)增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
      (2)视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。
      (3)视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。
      (4) 目前,一般高级的界面工具或构造器不支持MVC架构。改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成使用MVC的困难。
     
      

  14.   

    让你在web开发这块,多了一个选择
      

  15.   

    MVC的优势在于可复用价值,可扩展性,可替换性,
    开发效率随着项目的增加而呈指数级增加,
    当企业库稳定后,就很少需要编写代码了
      

  16.   

    给你一个链接,作为MVC入门的例子看看,
    http://www.cnblogs.com/zwycool/articles/462474.html
    只不过这个例子看来是临时写的,作者没有透露他们的企业库下面这个链接的观点虽然我不完全认同,但至少是在讨论MVC理论,而不像CSDN很多讨论不着边际:
    http://www.cnblogs.com/ego/archive/2009/03/06/1404328.html
      

  17.   

    老板问你会MVC吧,你说不会,
    老板说,那么明年在给你涨工资吧。
      

  18.   

    在ASP.NET中,前台代码为HTML源码,.aspx设计页面等文件;中间层为.cs文件或者web文件编译而成的,.dll文件或组件;后台为数据库服务器。
    前台为中间层传递参数,并接收中间层的参数;数据库通过中间层来连接并进行相关操作。
    MVC三层分为:表示层、业务层、数据层,分别实现:提供应用的用户界面;实现应用程序的业务功能;提供对外部系统的访问。有三层的思想,让开发的思路很明确,很方便调用。
      

  19.   

    MVC支持敏捷开发,使软件开发更加规范化!更加侧重于软件设计的思想方面,要更灵活!
      

  20.   


    MVC和RoR不同,它本身没有任何数据库访问的支持,也不约定某个数据库访问框架,所以你可以用EF也可以用Linq2SQL也可以用ADO.NET或者NHibernate。问MVC操作数据库的效率好比问用微波炉的人是否会写程序。至于什么网站运行效率,也和MVC一点关系也没有。说实话你提的问题都没尤问到点上。你目前要理解的是什么是MVC。
      

  21.   

    MVC和三层一点关系都没有。又是一个基本概念都没有就夸夸其谈误导他人的。算了,不说了。大家拜托能不能稍微学习下再来发表高论。
      

  22.   

    ASP.NET MVC概述·mvc的优点:
      1.通过把项目分成model view和controller,使得复杂项目更加容易维护。
      2.没有使用view state和服务器表单控件,可以更方便的控制应用程序的行为
      3.应用程序通过controller来控制程序请求,可以提供丰富的url重写。
      4.对单元测试的支持更加出色
      5.在团队开发模式下表现更出众
      ASP.NET MVC概述·web窗体的优点:
      1.采用事件驱动模式来控制应用程序请求,由大量服务器控件支持
      2.采用页面控制机制,可以为单个页面添加事件处理函数。
      3.使用view state和服务器端页面,使管理页面状态信息更加轻松。
      4.对人数较少的想使用服务器端控件的开发团队,使用起来更加方便
      5.开发起来比mvc模式要轻松简单一些
      ASP.NET MVC概述mvc框架特色:
      1.分离任务(输入逻辑,业务逻辑和显示逻辑),易测性和默认的测试驱动组件。所有mvc用到的组件都是基于接口并且可以被mock对象测试到,你可以不必在asp.net进程中运行controller就可以使用测试。使得测试更加快速和简捷。
      2.可扩展的简便的框架。mvc框架被设计用来更轻松的移植和定制功能。你可以加入自己的视图引擎,url重写策略。重载action方法等。mvc也支持Dependency Injection (DI) and Inversion of Control (IOC)
      3.强大的url重写机制让你更方便的建立容易理解和可搜索的url。url可以不包含任何文件扩展名,并且可以重写url使其对搜索引擎更加友好。
      4.可以使用asp.net现有的页面标记、用户控件、模板页。你可以使用嵌套模板页,嵌入表达式<%=%>,声明服务器控件、模板,数据绑定、定位等等。
      5.对现有的asp.net程序的支持,mvc让你可以使用如窗体认证和windows认证、url认证、组管理和规则、输出、数据缓存、session、profile 、health monitoring、配置管理系统、provider architecture特性。
      

  23.   

    你没有理解我的意思。MVC从来不是作为更好的WebForms出现的。所以你这个问题从根本上问的毫无意义。
    如果你试图将它和你之前用的东西去比较,比如什么方便URL重写,或者提高效率之类的优点,那些经验丰富的ASP.NET传统程序员会告诉你,这些根本不需要MVC也可以做得很好。
    如果你试图说什么便于单元测试,便于敏捷开发之类的优点,他们会说为什么这个算优点?难道敏捷开发就是优点么?
    这样就陷入了无休止的毫无意义的讨论中。我想说MVC是你在众多Web开发架构下的选择。对于这个选择的判断应该在你讨论“MVC的好处”之前就得出,而不是相反。我不觉得你的理解差了点,而是你没有耐心看完我说的话。请你务必看懂这样一个比喻:今天晚上我们吃什么呢?吃火锅还是吃烧烤?我们不是因为火锅比有烧烤的优点而选择火锅,或者也不是因为烧烤比火锅有优点而吃烧烤。事实上可能你平时既吃火锅也吃烧烤。恰恰相反,你决意吃火锅,然后你关注的是王府井的火锅和西单的火锅相比有什么优点,比如便宜或者好吃,这个才有可比性。MoneySoft的讨论是偏题的,但是才是有价值的,你可以说ASP.NET MVC作为一种MVC的实现有什么优点,和其他同类方案,比如MonoRails相比,有什么优点。你完全不能拿MVC和非MVC的东西比,如同火锅店水平的好坏决定了你吃这家火锅还是那家,但是火锅的好坏不决定你是吃西餐还是烧烤还是火锅。相反那些围绕你这个问题煞有介事讨论什么MVC优点的人,恰恰他们说的都是废话,抑或不怎么理解MVC的用处只会背书。而背诵的内容同样是那些不经过思考的人说的东西。
      

  24.   

    而且,理解这一点非常关键。如果你一直抱着MVC比ASP.NET Web Forms好的观点,或者下意识比较两者,将两者互为替代品在选择的时候,这种观点使得你使用ASP.NET MVC会出现大问题。一方面你会发现那些信口跟你说MVC如何如何好的人说的优点要么在你用的时候,优点不明显,要么你发现这些所谓的优点是很多缺点换来的。很多很多初学者学习MVC框架遇到最大的问题就在于,他们试图在MVC框架上找回ASP.NET WebForms上原有的东西,因为他们的想法是,既然MVC是WebForms的替代品,尤其是更好的替代品,那么WebForms上有的,MVC上就一定要有,否则就是MVC不好。我记得你问过很多这样的问题,比如怎么使用下拉控件,比如怎么往客户端回写JS脚本实现消息框弹出,这些问题会让你越发郁闷,没准最终让你发现MVC真的很难学,为什么MVC那么难用。而且陷入恶性循环,你越要把MVC改造成WebForms的替代品,你会发现越困难。事实上你遇到的困惑正说明现在讨论这个问题的必要性和价值。MVC作为WebForms的替代品来说它只有坏处没有一个好处。就像你把火锅当作烧烤的替代,问吃火锅的时候怎么搭烧烤架子,怎么排油烟,调料里面孜然竟然不是默认提供的还要找,你发现火锅的好处了么?严重地说,因为火锅店没有提供叉子和烤炉,你要在火锅店吃烧烤可能最后什么也吃不到。
      

  25.   


    那我可以问MVC这种框架相对于以前的框架的有点
    这样可以把
      

  26.   


    如果你对TDD 敏捷完全没有概念,如果你还不清楚什么是Restfull,如果你并非能够清楚理解客户端服务器端会话的本质,停留在所谓“前台后台”的认识水平上,如果你对MVC架构一无所知,你不会存在这种“实际的需求”。对你来说,ASP.NET WebForms才是唯一能满足你需求的东西。为什么说WebForms能满足你的需求,因为你的需求是完全从用户界面的设计角度去理解程序,开发方式就是先想象界面,再安排代码逻辑。(这里说的并不是对这种方式的批判)事实上WebForms的优点就是将Web开发的复杂性完全隐藏起来。使得对HTTP协议、HTML一窍不通的人也能搭建他们的程序。
      

  27.   

    代码混排方式的时代过去了,现在必须分层,MVC从根本上把(视图 控制 模型)各层分开,除非你的网站不用架构,如果用架构的话MVC创建网站是最快的很多人对三层架构一知半解,如果你用MVC就不用考虑三层架构是怎样的实现,它就是天然的三层架构,但形式与传统的三层架构如petshop当然有些不同,但我认为MVC显然分得更加合理,你会遇到的问题MVC都会给你考虑到,是一个非常好的架构