zoukankan      html  css  js  c++  java
  • ASP.NET MVC概述

    原文:http://www.asp.net/mvc/tutorials/older-versions/overview/asp-net-mvc-overview

    这篇文章帮助你了解关于ASP.NET MVC应用程序和ASP.NET Web Forms的不同。学习如何确定何时创建一个ASP.NET MVC应用。

     

    模型-视图-控制器(MVC)架构风格将应用程序分为了3个主要的部分:模型、视图和控制器。ASP.NET MVC框架提供了一个ASP.NET Web Forms风格的新的选择来创建基于MVC的Web应用。ASP.NET MVC框架是一个轻量级、容易测试表现层的框架(跟基于Web Form2-based应用一样),将现有的ASP.NET特性,比如母版页和基于Membership授权集成在一起。MVC框架被定义在System.Web.Mvc命名空间中,它是一个基础,受到System.Web命名空间的支持。

     

    MVC是一个许多开发者都熟悉的标准的设计模式。有一些Web应用程序都从MVC框架中受益。其它应用程序将会继续使用基于Web Forms和postbacks(回传)机制的传统的ASP.NET应用程序风格。其它类型的Web应用将会合并这两种方法。不是谁替代谁。

     

    MVC框架包含以下部分:

     

    Invoking a controller action that expects a parameter value
    图01:调用一个控制器动作时需要一个参数值
     
    模型:模型对象是应用程序的部分来实现应用程序逻辑的数据域。通常的,模型对象检索和存储模型都在数据库中。举个例子,一个产品对象可能从数据库中检索,执行它,然后在SQL Server中写回更新信息到产品表。
    在小型应用程序中,模型通常是将物理模型转化为概念模型。举个例子,如果应用程序只读一个数据集并把它发送给视图,应用程序并没有一个物理模型层和相关类。这样的话,数据集充当模型对象的角色。
     
    视图:视图是显示应用程序用户接口的组件。典型的,用户接口是从模型数据创建的。一个例子就是一张产品表显示基于产品对象当前状态的文本框、下拉框和复选框。
     
    控制器:控制器是用来处理用户交互、与模型工作并最终选择一个视图用来呈现用户接口的组件。在一个MVC应用程序中,视图只是用来显示信息;控制器处理和响应用户输入和交互。比如控制器处理查询字符串的值以及把这些值传给模型,模型可以使用这些值查询数据库并返回给控制器。
     
    MVC风格帮助你创建一个松耦合的、分离不同方面(输入逻辑、业务逻辑和用户接口逻辑)的应用程序。这个风格确定每个逻辑应该在应用程序中处于的位置。用户接口逻辑在视图中。输入逻辑在控制器中。业务逻辑在模型中。当你创建一个应用程序时,这种分离会帮助你管理复杂的应用,因为它能够帮助你将你的注意力一次集中在一个方面的实现。比如,你可以专注于视图而不用关心它的业务逻辑。
     
    除此以外,管理复杂的应用,MVC风格比基于Web Forms风格的ASP.NET Web应用程序更容易测试。举个例子,在基于ASP.NET Web应用程序中,一个单独的类被用来显示输出,同时也用来响应用户输入。书写基于Web Forms的ASP.NET应用程序的自动化测试会变得复杂,因为测试一个独立的页面,你必须实例化页面类、所有它的子控件和额外的应用程序中的独立的类。因为如此多的类在运行页面时被实例化,在独立部分的应用程序中集中的、完全的书写测试将会变得困难。基于ASP.NET应用程序的测试因此将会比在一个MVC的应用中更困难。更多的,测试基于Web Forms的ASP.NET应用程序需要一个Web服务器。MVC框架解耦这些部分并且使得接口更加容易使用,在独立的其余框架部分测试成为可能。
     
    在MVC应用程序的3个主要部分解耦,也可以提升并行开发。比如,第一个开发者可以做视图,第二个开发者可以做控制器逻辑,第三个开发者可以专注于模型业务逻辑。
     
    决定何时创建一个MVC应用
    你必须认真考虑是使用ASP.NET MVC框架还是ASP.NET Web Forms模型来做一个Web应用。MVC框架并不是替代Web Forms模型。你可以使用其中的一种来做Web应用(如果你有一个现成的基于Web Forms的应用程序,最好还是使用已经拥有的技术来继续工作)。
     
    在你觉得使用MVC框架还是Web Forms模型来做一个特定的网站,权衡每一种方法的优点。
     
    基于MVC架构的Web应用的优点
    ASP.NET MVC框架提供了如下一些优点:
    • 它通过将应用程序分为模型、视图、控制器等几个部分,来使得管理复杂的项目更容易。
    • 它不使用ViewState和基于服务器端的Forms。这使得MVC框架对于想完全控制应用程序行为的开发者来说很理想。
    • 它使用一个前端控制器风格通过一个单控制器来处理Web应用程序。这帮助你设计一个支持路由的应用程序。更多信息,参考MSDN网站上的Front Controller
    • 它提供了更好的测试驱动开发支持(TDD)。
    • 它对控件团队开发者和设计者之间的工作提供了支持。
    基于Web Forms的Web应用的优点
    基于Web Forms框架提供了如下一些优点:
    • 它支持事件模型来保持HTTP通信,这使得Web应用开发从单线业务中受益。基于Web Forms的应用应用提供了大量的服务器端控件的事件。
    • 它使用一个页面控制器风格,增加功能到独立的页面。更多信息,参考MSDN网站上的Page Controller
    • 它使用ViewState和基于服务器端的Forms,这能更容易的管理状态信息。
    • 对于Web开发者和设计者团队来说,可以更好的使用大量的服务器端控件来进行快速应用开发。
    • 一般来说,会降低应用程序开发的难度,因为组件(页面类、控件等等)都高度集成,比MVC模型所需要的代码量更少。
    ASP.NET MVC框架的特性
    ASP.NET MVC框架提供了如下的特性:
    • 分离应用程序任务(输入逻辑、业务逻辑和用户接口逻辑),更容易测试并且原生支持测试驱动开发(TDD)。所有在MVC框架中的核心交互都基于接口,并且能够使用模拟对象行为的模型对象进行测试。你可以不用运行ASP.NET进程中的控制器就可以进行单元测试,这使得单元测试很快而且灵活。你可以使用任何兼容.NET框架的单元测试框架进行测试。
    • 一个可扩展的支持注入的框架。ASP.NET MVC框架组件被设计以至于他们能够容易替换和自定义。你可以在你自己的页面引擎中使用注入,URL路由策略,Action方法参数序列化以及其它部分。ASP.NET MVC框架同样支持依赖注入(DI)和控制反转(IOC)。依赖注入允许你在类中注入对象,取代依靠类来创建对象自身。控制反转确定另一个对象,第一个对象应该通过外部源比如配置文件来获取第二个对象。这使得测试更容易。
    • 一个强有力的URL映射组件使得你创建应用程序更容易阅读并被搜索。URL并不会必须包含文件名扩展,来被设计成支持URL命名风格更好的工作,并对搜索引擎优化(SEO)和REST地址支持更好。
    • 支持一个现有的ASP.NET页面,用户控件以及母版页标签文件作为视图模版,你可以用ASP.NET MVC框架使用到现有的ASP.NET特性,比如内嵌母版页,单行表达式、服务端控件、模版、数据绑定、全球化等等。
    • 支持现有的ASP.NET特性。ASP.NET MVC允许你使用如下特性,比如:Forms授权和Windows认证、URL授权、Membership和角色、输出和数据缓存、Session和Profile状态管理、health监控、配置系统以及Provider架构等。
  • 相关阅读:
    ACM的算法分类 2015-04-16 14:25 22人阅读 评论(0) 收藏
    初学Larevel 2014-08-21 11:24 90人阅读 评论(0) 收藏
    初学PHP&MySQL 2014-05-31 12:40 92人阅读 评论(0) 收藏
    codeforces 570 E. Pig and Palindromes (dp)
    codeforces 570 D. Tree Requests (dfs序)
    poj 2157 Maze (bfs)
    cf 570 C. Replacement (暴力)
    cf 570B B. Simple Game(构造)
    cf 570 A. Elections
    hdu 1429胜利大逃亡(续) (bfs+状态压缩)
  • 原文地址:https://www.cnblogs.com/guwei4037/p/3538174.html
Copyright © 2011-2022 走看看