.NET程序员应该熟悉的开发模式

最容易变化也最应该变化的是数据的呈现方式。   在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很强大, 。 。

posted on 2011-04-04 23:05  青青啊  阅读(206)  评论(0编辑  收藏  举报

导航