.NET Framework设计模式与实践

原创 2004年07月02日 20:19:00


设计模式一直是流行的话题,在.NET Framework的学习过程中,我们可以发现其中使用了大量的设计模式,本专题重点讨论两个方面的内容:
1、揭示设计模式在.NET Framework中的应用;
2、设计模式在.NET应用程序中的实践。

欢迎大家积极参与,将你学习过程的新发现和心得呈现出来与同道们共享。
下面介绍ASP.NET中的Model-View-Controller(MVC)模式:

大家都知道Web网页最初显示静态内容,随着需求的快速变化,后来出现了大量的动态内容的网页设计。在ASP.NET中,你可以向以往的ASP一样把要显示的内容以及逻辑控制代码写在一个aspx文件中,我们称这种设计为单页式设计,这种设计通常对于小的应用程序来说是好的,但是如果页面内容显示逻辑比较复杂,或者说要经常更新页面的显示方式,那么这种混合着代码和内容的设计,很难维护和扩展。
Code-Behind与MVC:
MVC设计模式的目的是提供一个分离视图(View,内容的显示)、模型(Model,数据内容)、控制器(Controller)的解决方案,通过这种分离,使得内容的表现和内容本身分开,这样做得好处是明显的,首先:不同的开发人员可以专注于各自的任务,例如:界面设计人员可以负责页面的外观设计部分;程序设计人员可以只负责数据的处理。ASP.NET中的Code-behind采用的就是这种设计模式:*.aspx是View的部分,*.aspx.(cs/vb..)是Model部分,那么你可能要问Controller在哪里?那么我可以告诉你,那个你继承的Page对象就是一个Controller,在ASP.NET的缺省实现中,Page对象扮演着一个Controller的角色,它负责接收用户的行为,并且以事件的方式通知View和Model进行相应的操作,同时正如你我所看到的Controller在ASP.NET中并不是十分明显。下面是MVC设计模式的关系:
            +----------------------<View
        Controller                   |
            |                        +
            +----------------------<Model
Controller接收客户端的输入,把输入传递给Model, Model根据输入的指令,对数据进行操作(取数据、更新数据等),Controller通知View,View更新自己。
在ASP.NET中还有其他的设计模式的实现,上面仅仅是一个方面的简要介绍,我的砖算是抛出去了,希望大家把玉扔过来,:-)
第二块砖:.NET 中的Observer设计模式
Observer(观察者模式)属于GOF 23个设计模式中的行为型模式,它被用来处理当一个对象更新的时候,其他的一系列对象自动得到更新。可以结合上面提到的MVC模式一起使用。它的基本结构是:
           主题<--------观察者
下面链接的MSDN的一篇文章,详细论述了Observer设计模式:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/observerpattern.asp

通过阅读该文,我发现.NET中的Event和Delegate实际上就是Observer设计模式的应用,event相当于主题对象,而delegate则充当观者者。如果你熟悉Observer模式,你会发现它们的Solution是何其相似。反过来说,如果你了解了event和delegate的工作机制,那么你同时也就了解了Observer设计模式。那么使用Observer设计模式有什么好处呢?实际上当我说明了event和delegate就是Observer设计模式的时候,这个问题已经显得多余了。

 


MVC是在JSP上产生的。jsp有一套机制来支持它。
在asp.net上有一些新的特点,它可以有新的方法。

借用MVC,偶是这样来理解asp.net
.aspx 是view,它继承自.aspx.cs 在运行时产生客户端页面代码。
.aspx.cs 是controller,它根据.aspx 返回的_viewstate,获得用户的输入,包括事件,调用相关的代码,并将结果返回。
.asmx,.cs 是model 偶更喜欢把处理的业务逻辑层和数据层,以类库,Web Services和Remoting 形式发布。

【学习笔记javascript设计模式与开发实践----1】

个人吐槽 读了不少的关于js的基础书箱,有必要在js的编码结构和编码效率上有所提高(个人资质很差,所以只代表个人观点。如有说的不对的,还请大神们见谅……),个人一直觉得,不会用设计模式不代表你就不是一...
  • pigpigpig4587
  • pigpigpig4587
  • 2015年09月21日 18:09
  • 2144

《Android源码设计模式解析与实战》读书笔记(二十六)

第二十六章、MVP应用构架模式1.MVP介绍 MVP模式是MVC模式的一个演化版本,MVP全称Model-View-Presenter。目前MVP在Android应用开发中越来越重要了。 在And...
  • qq_17766199
  • qq_17766199
  • 2016年01月27日 08:58
  • 5486

【.NET】EF框架之Entity Framework的核心--EDM设计器

上篇博客初步认识EF,总是在说EDM,到底什么是EDM呢?下面我们就来揭开它神秘的面纱:   xml中那些"乱七八糟"的代码.             Entity Data Model 就是所谓的...
  • zhuanzhe117
  • zhuanzhe117
  • 2014年12月08日 20:26
  • 9766

.NET Framework中已使用的设计模式

——适合有一定设计模式基础和.NET基础的人阅读。 写在前面 “设计模式”我一向是敬而远之的态度,不会去写这方面的文章,原因有二:第一,要想写好设计模式的文章太难,需要笔者丰富的经验;第二,没有深...
  • lile010
  • lile010
  • 2015年02月11日 11:07
  • 270

.NET Framework事件模型规范实践

事件模型准则下面的准则中斜体字“Custom”是自定义部分,请用你的实际名称来代替。l 事件的名称应该采用PascalCasing命名方式,以CustomEvent命名。l 声明事件委托时,使用voi...
  • wengel
  • wengel
  • 2011年05月25日 12:31
  • 222

仅当使用 Microsoft .NET Framework 4 或更高版本时,才支持对 x64 进程进行混合模式调试

低于 4 的 .NET Framework 版本不支持对 x64 进程进行混合模式调试。 这意味着,当您进行调试时,无法从托管代码单步执行到本机代码,也无法从本机代码单步执行到托管代码。 问...
  • kingmax54212008
  • kingmax54212008
  • 2015年01月06日 15:34
  • 3079

仅当使用 Microsoft .NET Framework 4 或更高版本时,才支持对 x64 进程进行混合模式调试

低于 4 的 .NET Framework 版本不支持对 x64 进程进行混合模式调试。 这意味着,当您进行调试时,无法从托管代码单步执行到本机代码,也无法从本机代码单步执行到托管代码。 问...
  • dogquill
  • dogquill
  • 2016年04月15日 10:10
  • 644

用.NET Framework 2.0创建Form设计器

 Microsoft .NET Framework 1.0提供了一个非常通用的设计时框架,但是没有提供任何实现代码来完成一个设计器,Visual Studio? .NET实现了所有的复杂逻辑,要第三方...
  • ggw128
  • ggw128
  • 2011年03月17日 21:09
  • 1179

如何理解 async 和await 设计模式 和如何应用到.net 4以下的framework

因为开发了一些silverlight的东西,对于异步编程是深恶痛绝,把逻辑撕裂,非常难受。 今天在stackOverflow网站看到一个很好的解释,摘抄并发挥一下, It works si...
  • cjq1234
  • cjq1234
  • 2012年05月05日 05:01
  • 2001

2008微软认证-.NET Framework2.0程序设计

  • 2008年09月15日 11:40
  • 664KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.NET Framework设计模式与实践
举报原因:
原因补充:

(最多只允许输入30个字)