.NET程序员应该熟悉的开发模式
2011-04-04 23:05
211 查看
最容易变化也最应该变化的是数据的呈现方式。 在Java的各种运用中可以说是四处可见MVC, J2EE贯串MVC的概念, android的开发方式也是类MVC的, MVC结构对于做过Java运用的人而言几乎就是习以为常。 由于之前微软为大家提供的各种winform、ASP. 其实MVC与所谓的“三层架构”是两个层次上的东西, NET的早期开发技术ASP. NET和winform这些pagecontroller的模范让许多人对三层纸上谈兵却对MVC视而不见甚至一无所知。 什么是pagecontroller模式呢?搞. NET的大多都用过winform和webform, 我们想要做一个顺序, ok, 最复杂的方式就是拖拖拽拽几个控件, 然后在一个叫codebehind的东西里写这些UI事情的处理逻辑, 加一大堆变量用于记录数据和状态, 这样一个顺序就能出炉。 这种开发方式对于一些小软件系统的开发其实效率还是蛮高的, 后来人们看到其弊端---一旦修改UI, 事情处理就要跟着变, 那坨业务代码叫做BLL, 那坨DAO叫做DAL。 也就是这种架构: 而对于J2EE的开发者来说熟悉的是下图。 MVVP。 传统的MVC结构之一是这样的(拿自动型MVC来说): 对于非自然MVC的框架 对于ASP. 虽然可以通过改造让其支持MVC结构的开发(比如通过定制IHttpModule、IHttpHandler云云), 大多数运用的是mvp模式。 那么好, 我们依然运用designer和codebehind, 只需我们OO一时强pagecontroller一样好用。 在MVP模式中我们需要自己定制各个View(web页面或者窗体. NET)对应的IView和IPresenter、IModel。 IView要对IPresenter暴露操作UI、数据绑定的接口, IPresenter根据IView传递过去的请求调用业务接口并根据结果操作UI。 举个复杂的例子, 一个计算“x+y=?”的顺序。 看上去写成的要多些那么一坨东西, 就是更换view十分方便, 根本不用去改你的IPresenter、Presenter和业务。 一切都是接口调用而不依赖详细实现, NET平台的开发人员, 托微软的福分我们拥有一种更为强大的模型---MVVM。 这应该算是做WPF/Silverlight运用的人必懂的一种结构, WPF/silverlight天生支持数据绑定和命令绑定(不过sl在命令绑定上还比较弱), View是什么呢, 纯的View只要xaml或者附带必要的只与View本身相关逻辑代码。 你可以把它理解为View详细呈现内容所依赖数据的一个抽象, 在MVVM中View与ViewModel总会有一种绑定关系, 在wpf/silverlight中, 绑定是通过xaml语法来完成(虽然你可以选择用c#来写但不契合mvvm的宗旨), 咋view中又怎样绑定到viewmodel呢?首先我们谈ViewModel。 为了方便我们定义一个ViewModelBase的抽象基类, 然后让其他ViewModel承继这个基类。 为了方便, xaml中将需要的viewmode放到全局资源字典中。 ?≒S:虽然vs很强大, 。 。
相关文章推荐
- .NET程序员应该熟悉的开发模式
- .NET程序员应该熟悉的开发模式
- .NET程序员应该熟悉的开发模式
- 一起谈.NET技术,谈.net开发人员应该熟悉的开发模式
- 谈.net开发人“.NET研究”员应该熟悉的开发模式
- 谈.net开发人员应该熟悉的开发模式
- 开源项目应该采用XP开发模式
- 忽然有一种感觉:云存储必须从系统级定制,所以必须对Linux相当熟悉。Windows下开发软件的模式已经过时了
- .NET程序员应该理解的几种软件保护方法 辛苦开发的程序需要建立有效的保护机制
- 新同事对我们开发模式不熟悉,转贴这个文章希望对他有点启发
- 一步步搭建ubuntu server console(控制台,字符模式)开发环境
- 学习iOS开发前应该知道的——第一部分
- 领域驱动开发模式s
- java开发中的23种设计模式详解
- 软件开发模式简介
- 让开发自动化 (一) : 部署自动化模式
- ios开发中的基本设计模式
- MVC开发模式
- ThinkPHP3.2.3代码笔记 - 开发模式
- 后台服务程序开发模式