知识大全 浅谈ASP.NET开发下的MVC设计模式的实现
Posted 视图
篇首语:无名,天地之始;有名,万物之母。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 浅谈ASP.NET开发下的MVC设计模式的实现相关的知识,希望对你有一定的参考价值。
浅谈ASP.NET开发下的MVC设计模式的实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
ASP NET是微软最新推出的新型体系结构 NET框架的一部分 它为构造新一代动态网站和基于网络的分布式应用提供了强有力的支持 与以前的 Web 开发模型相比 ASP NET 提供了许多重要的优点例如: 简易性 安全性 可管理性等 而且与基于过程的ASP页面技术相比 面向对象技术在ASP NET中得到了完全实现 用传统ASP技术建立的Web应用实例中 在页面中同时实现显示 业务逻辑和流程控制 这从工程化的角度考虑 它有许多不足之处 用户界面承担著向用户显示问题模型和与用户进行操作和I/O交互的作用 用户希望保持交互操作界面的相对稳定 但更希望根据需要改变和调整显示的内容和形式 在 NET框架下ASP NET技术结合MVC设计模式很好地解决了上述问题MVC设计模式简介
MVC由Trygve Reenskaug提出 首先被应用在SmallTalk 环境中 是许多交互和界面系统的构成基础 MVC结构是为那些需要为同样的数据提供多个视图的应用程序而设计的 它很好的实现了数据层与表示层的分离 MVC作为一种开发模型 通常用于分布式应用系统的设计和分析中 以及用于确定系统各部分间的组织关系 对于界面设计可变性的需求 MVC(Model View Controller)把交互系统的组成分解成模型 视图 控制器三种部件
视图部件把表示模型数据及逻辑关系和状态的信息以特定形式展示给用户 它从模型获得显示信息 对于相同的信息可以有多个不同的显示形式或视图
控制器部件是处理用户与软件的交互操作的 其职责是控制提供模型中任何变化的传播 确保用户界面于模型间的对应联系 它接受用户的输入 将输入反馈给模型 进而实现对模型的计算控制 是使模型和视图协调工作的部件
模型部件保存由视图显示 由控制器控制的数据 它封装了问题的核心数据 逻辑和功能的计算关系 它独立于具体的界面表达和I/O操作
模型 视图与控制器的分离 使得一个模型可以具有多个显示视图 如果用户通过某个视图的控制器改变了模型的数据 所有其它依赖于这些数据的视图都应反映到这些变化 因此 无论何时发生了何种数据变化 控制器都会将变化通知所有的视图 导致显示的更新 这实际上是一种模型的变化 传播机制 模型 视图 控制器三者之间的关系和各自的主要功能 如图 所示
>
MVC设计模式的实现
ASP NET提供了一个很好的实现这种经典设计模式的类似环境 开发者通过在ASPX页面中开发用户接口来实现视图 控制器的功能在逻辑功能代码( cs)中实现 模型通常对应应用系统的业务部分 在ASP NET中实现这种设计而提供的一个多层系统 较经典的ASP结构实现的系统来说有明显的优点 将用户显示(视图)从动作(控制器)中分离出来 提高了代码的重用性 将数据(模型)从对其操作的动作(控制器)分离出来可以让你设计一个与后台存储数据无关的系统 就MVC结构的本质而言 它是一种解决耦合系统问题的方法
视图
视图是模型的表示 它提供用户交互界面 使用多个包含单显示页面的用户部件 复杂的Web页面可以展示来自多个数据源的内容 并且网页人员 美工能独自参与这些Web页面的开发和维护
在ASP NET下 视图的实现很简单 可以像开发WINDOWS界面一样直接在集成开发环境下通过拖动控件来完成页面开发本 本文中介绍每一个页面都采用复合视图的形式即 一个页面由多个子视图(用户部件)组成 子视图可以是最简单HTML 控件 服务器控件或多个控件嵌套构而成的Web自定义控件 页面都由模板定义 模板定义了页面的布局 用户部件的标签和数目 用户指定一个模板 平台根据这些信息自动创建页面 针对静态的模板内容 如页面上的站点导航 菜单 友好链接 这些使用缺省的模板内容配置 针对动态的模板内容(主要是业务内容) 由于用户的请求不同 只能使用后期绑定 并且针对用户的不同 用户部件的显示内容进行过滤 使用由用户部件根据模板配置组成的组合页面 它增强了可重用性 并原型化了站点的布局
视图部分大致处理流程如下 首先 页面模板定义了页面的布局 页面配置文件定义视图标签的具体内容(用户部件) 然后 由页面布局策略类初始化并加载页面 每个用户部件根据它自己的配置进行初始化 加载校验器并设置参数 以及事件的委托等 用户提交后 通过了表示层的校验 用户部件把数据自动提交给业务实体即模型
这一部分主要定义了WEB页面基类PageBase 页面布局策略类PageLayout 完成页面布局 用于加载用户部件到页面 用户部件基类UserControlBase即用户部件框架 用于动态加载检验部件 以及实现用户部件的个性化 为了实现WEB应用的灵活性 视图部分也用到了许多配置文件例如 置文件有模板配置 页面配置 路径配置 验证配置等
控制器
为了能够控制和协调每个用户跨越多个请求的处理 控制机制应该以集中的方式进行管理 因此 为了达到集中管理的目的引入了控制器 应用程序的控制器集中从客户端接收请求(典型情况下是一个运行浏览器的用户) 决定执行什么商业逻辑功能 然后将产生下一步用户界面的责任委派给一个适当的视图组件
用控制器提供一个控制和处理请求的集中入口点 它负责接收 截取并处理用户请求 并将请求委托给分发者类 根据当前状态和业务操作的结果决定向客户呈现的视图 在这一部分主要定义了HttpReqDispatcher(分发者类) HttpCapture(请求捕获者类) Controller(控制器类)等 它们相互配合来完成控制器的功能 请求捕获者类捕获HTTP请求并转发给控制器类 控制器类是系统中处理所有请求的最初入口点 控制器完成一些必要的处理后把请求委托给分发者类 分发者类分发者负责视图的管理和导航 它管理将选择哪个视图提供给用户 并提供给分发资源控制 在这一部分分别采用了分发者 策略 工厂方法 适配器等设计模式
相关参考
知识大全 浅谈ASP.NET MVC中TempData的实现机制
浅谈ASP.NETMVC中TempData的实现机制 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 浅谈ASP.NET MVC中的FluentHtml与连续接口
浅谈ASP.NETMVC中的FluentHtml与连续接口 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
知识大全 浅谈基于URL的权限控制ASP.NET MVC中的实现
浅谈基于URL的权限控制ASP.NETMVC中的实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
ASP.NET谈三层结构与MVC模式的区别 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在CS
微软发布ASP.NETMVC设计模板库 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 微软最近公
ASP.NETMVC4框架揭秘:总体设计 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 第章&n
Web开发模式的颠覆者:ASP.NETMVC 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 年月
Java开发下的设计模式简单说明 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 设计模式一个设计
ASP.NETMVC2.0之MVC框架简介 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Web
浅谈三层结构与MVC模式的区别 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 有朋友谈到三层与M