摘要:
上一篇讲了复合控件的基础知识,本来接着要继续讲复合控件样式的使用,让我们暂时回到前面第五篇的时候,继续讨论关于属性方面的一些知识.写第五篇的时候,我一步步的加上元数据(特性),使得设计时效果更加好,如对复杂属性应用以下特性,使属性浏览器支持扩展/折叠效果,使你更加容易编辑子属性,但接着我又遇到了问题,所以必须去解决1.认识默认属性浏览器支持让我们再认识一下属性,大家知道每个属性都是有类型的,最熟...
阅读全文
posted @ 2006-09-18 16:59
伊凡
阅读(379)
推荐(0)
摘要:
上一篇写了复合控件基本的概念,这次就继续上次的话题,来学习复合控件如何触发事件 有一些复合控件直接把按钮触发事件所需的事情封装好,另外一种则是自定义事件,更具灵活性,当然这是根据需要设计的。以下会以例子来说明的.下面我们假设我们控件中有两个按钮.以下不列出所有代码,具体可在文章最后下载代码. (1) 直接实现按钮事件 在控件中(以下代码并非实现复合控件)直接实现事件则无需自定义事件,如下代码(...
阅读全文
posted @ 2006-09-18 16:58
伊凡
阅读(186)
推荐(0)
摘要:
上一篇写了控件样式的一些基础的东西,接着我们继续讨论asp.net控件开发的一些东西.这次我们要讨论的是复合控件.本文无法一步到位完整介绍,因为讨论的篇幅比较大,所以分两次写,这次就先讲些基本概念吧,剩着的下次写.好象复合控件网上已经有很多教程了,相信大家也看过很多.如果看过的朋友就当我再废话一便,没看过的朋友希望能给你带来帮助.1.复合控件概念复合控件跟用户控件有很多相似点,最大不同就是用户...
阅读全文
posted @ 2006-09-18 16:58
伊凡
阅读(296)
推荐(0)
摘要:
上一篇讲了关于属性方面的一些东西 ,这次讲的是关于样式.位于WebControls命名空间的style类为顶级样式类.大部分标准控件都拥有其样式属性.1.下面为设置样式方法(1)你可以直接设置控件样式 Button1.BackColor = System.Drawing.Color.Red;(2)通过获取web控件的样式集合来设置 Button1.ControlStyle.BackColor =...
阅读全文
posted @ 2006-09-18 16:57
伊凡
阅读(445)
推荐(0)
摘要:
上一篇简单的讲了从WebControl继承的控件(好象我讲的都是简单的,嘿嘿).本次讲的更简单,主题是是属性,只当分享经验,希望对大家有帮助我们根据属性的不同表现形式,把其区分为简单属性和复杂属性下面来看下属性的表现形式简单属性表现形式如下,大家都很熟悉 属性中含有子属性,称之为复杂对象,如Font属性复杂属性的表现形式如下,(1)连字符的表现形式 (2)内镶属性的表现形式,如定义样式 ...
阅读全文
posted @ 2006-09-18 16:56
伊凡
阅读(210)
推荐(0)
摘要:
上一篇写了有关回传的一些东西,这次我本来不知道该写什么的,因为各方面的关联太多了,最后我还是想,还是慢慢一点点的写吧.这次讲WebControl一.从继承WebControl开始在第二篇教程中,重点介绍了Render()方法的使用,用来呈现控件,但从Control类继承的控件尚未发挥asp.net控件的作用.大家知道web服务器控件分为HTML服务器控件(如这样的形式)和标准服务器控件(就是这...
阅读全文
posted @ 2006-09-18 16:56
伊凡
阅读(209)
推荐(0)
摘要:
上一篇:http://www.cnblogs.com/Clingingboy/archive/2006/08/01/465397.html上次讲了在继承Control类的时候为什么需要重写Render方法本次来介绍控件的事件处理. 我们知道Button控件有OnClick事件,DropDownList控件有SelectedIndexChanged事件.一.回发事件和客户端回发下面来看一个最简单的...
阅读全文
posted @ 2006-09-18 16:55
伊凡
阅读(310)
推荐(0)
摘要:
上一篇:http://www.cnblogs.com/Clingingboy/archive/2006/07/30/463471.html或许大家还对为何要重写Render方法存有疑惑,希望大家看看我举的例子,能够明白Render方法和其他两个方法的作用,然后真正明白为何一般情况下只须重写Render方法我们知道我们每次编写控件时,都需要重写Render方法,我们发现在Control类中很多方法可...
阅读全文
posted @ 2006-09-18 16:54
伊凡
阅读(261)
推荐(0)
摘要:
asp.net本身提供了很多控件,提供给我们这些比较懒惰的人使用,我认为控件的作用就在此,因为我们不想重复工作,所以要创建它,这个本身便是一个需求的关系,所以学习控件开发很有意思. wrox网站上有本书 Professional ASP.NET 2.0 Server Control and Component Development 现在还没有出版,但网站上放出了代码,所以正好下载过来学习一下....
阅读全文
posted @ 2006-09-18 16:53
伊凡
阅读(214)
推荐(0)
摘要:
让我们假设这样一个场景:一年以前,Media公司开发出一套通过电脑接收广播的Radio仿真软件产品。(有这样的产品吗,能真正接收广播的软件?我表示怀疑)这个产品早已投入市场,客户已经在使用了。后来,Media公司将开发重心转移到数字媒体上。于是他们投入了大量的人力物力,最后开发出了完美的媒体播放器软件。这个播放器支持大多数媒体文件,包括音频媒体和视频媒体。该产品取得了成功,也得到了用户的好评。 不...
阅读全文
posted @ 2006-09-07 00:38
伊凡
阅读(257)
推荐(0)
摘要:
可否使用Visitor模式实现系列二的例子呢?经过我的悉心研究,结论是Visitor模式对于本例而言,可行但不可爱! 我们先看看本例最初的类图: 我们可以将这个类图看作是一个树形结构。那么各个类即可以看作是树的枝叶节点了。这样一说,似乎和Composite模式有些关系了。其实不然,因为我所谓的树枝节点,如AudioMedia类,与MP3及WAV类并非是聚合的关系。认识到这一点很重要,为避免混淆视...
阅读全文
posted @ 2006-09-07 00:36
伊凡
阅读(428)
推荐(0)
摘要:
一、考察对象的Adapter模式 从上文看到,经过引入Adapter模式,原有的结构得到了改进。但我们还需要从客户的角度分析程序,使结构更加地合理。(这里,我们仅限于考察对象的Adapter模式。类的Adapter模式不存在下述问题。这也印证了一个事实,就是:对象的Adapter模式和类的Adapter模式各有优势,也各有缺点,设计时应根据实际情况考察。) 1、扩展的功能是否合理? 假设用户希望调...
阅读全文
posted @ 2006-09-07 00:35
伊凡
阅读(338)
推荐(0)
摘要:
在系列一中, RM和MPEG类继承了VideoMedia抽象类,而VideoMedia类又实现了IMedia接口,该接口仅仅提供了Play()方法。冰汽水的意思是希望为RM,MPEG提供与AudioMedia不同的属性和方法。例如,对于视频媒体而言,应该有一个调整画面大小的方法,如Resize()。而这个方法是IMedia接口所不具备的。 那么怎样为RM,MPEG类提供IMedia接口所不具备的R...
阅读全文
posted @ 2006-09-07 00:34
伊凡
阅读(328)
推荐(0)
摘要:
源代码: 点击这里下载。 有了翅膀才能飞,欠缺灵活的代码就象冻坏了翅膀的鸟儿。不能飞翔,就少了几许灵动的气韵。我们需要给代码带去温暖的阳光,让僵冷的翅膀重新飞起来。结合实例,通过应用OOP、设计模式和重构,你会看到代码是怎样一步一步复活的。 为了更好的理解设计思想,实例尽可能简单化。但随着需求的增加,程序将越来越复杂。此时就有修改设计的必要,重构和设计模式就可以派上用场了。最后当设计渐趋完美后,你...
阅读全文
posted @ 2006-09-07 00:33
伊凡
阅读(520)
推荐(1)
摘要:
一、模式概述 在面向对象设计时,我们常常需要辨认对象的职责。理想的状态下,我们希望自己建立的对象只具有一个职责。对象的责任越少,则该对象的稳定性就越好,受到的约束也就越少。职责分离,可以最大限度地减少彼此之间的耦合程度,从而建立一个松散耦合的对象网络。 职责分离的要点是对被分离的职责进行封装,并以抽象的方式建立起彼此之间的关系。在C#中,我们往往将这些可能变化的对象抽象为接口和抽象类,从而将原来...
阅读全文
posted @ 2006-09-07 00:24
伊凡
阅读(258)
推荐(0)
摘要:
一、模式概述 描述Composite模式的最佳方式莫过于树形图。从抽象类或接口为根节点开始,然后生枝发芽,以形成树枝节点和叶结点。因此,Composite模式通常用来描述部分与整体之间的关系,而通过根节点对该结构的抽象,使得客户端可以将单元素节点与复合元素节点作为相同的对象来看待。 由于Composite模式模糊了单元素和复合元素的区别,就使得我们为这些元素提供相关的操作时,可以有一个统一的接口...
阅读全文
posted @ 2006-09-07 00:22
伊凡
阅读(334)
推荐(0)
摘要:
一、模式概述 也许Factory Method模式是设计模式中应用最广泛的模式。在面向对象的设计中,关于对象的管理是其核心所在,而其中对象的创建则是对象管理的第一步。对象的创建非常简单,在C#中,只需要应用new操作符调用对象的构造函数即可,然而创建对象的时机却非常重要。 首先我们从对象的特征来看,代表抽象关系的类型,如接口和抽象类,是不能创建的,换句话说,我们要创建的对象都是与具体的对象类型...
阅读全文
posted @ 2006-09-07 00:19
伊凡
阅读(288)
推荐(0)
摘要:
4.1.Net平台AOP技术概览 .Net平台与Java平台相比,由于它至今在服务端仍不具备与unix系统的兼容性,也不具备类似于Java平台下J2EE这样的企业级容器,使得.Net平台在大型的企业级应用上,常常为人所诟病。就目前而言,.Net平台并没有提供AOP技术的直接实现,而微软在未来对于.Net的发展战略目标,我们仍未可知。但我相信微软对于目前炙手可热的AOP技术应该不会视而不见。也许在...
阅读全文
posted @ 2006-09-07 00:13
伊凡
阅读(1081)
推荐(0)
摘要:
3.1 Java平台AOP技术概览 3.1.1 AOP技术在Java平台中的应用 AOP在实验室应用和商业应用上,Java平台始终走在前面。从最初也是目前最成熟的AOP工具——AspectJ,到目前已经融和在企业级容器JBoss中的JBoss AOP,均建立在Java平台上。 前面已经描述到,AOP的目的就是将核心关注点和横切关注点分离,实际上这就是一种分散关注(seperation of co...
阅读全文
posted @ 2006-09-07 00:12
伊凡
阅读(410)
推荐(0)
摘要:
2.1 AOP技术起源 AOP技术的诞生并不算晚,早在1990年开始,来自Xerox Palo Alto Research Lab(即PARC)的研究人员就对面向对象思想的局限性进行了分析。他们研究出了一种新的编程思想,借助这一思想或许可以通过减少代码重复模块从而帮助开发人员提高工作效率。随着研究的逐渐深入,AOP也逐渐发展成一套完整的程序设计思想,各种应用AOP的技术也应运而生。 AOP技术在...
阅读全文
posted @ 2006-09-07 00:12
伊凡
阅读(338)
推荐(0)
摘要:
1 引言 软件设计因为引入面向对象思想而逐渐变得丰富起来。“一切皆为对象”的精义,使得程序世界所要处理的逻辑简化,开发者可以用一组对象以及这些对象之间的关系将软件系统形象地表示出来。而从对象的定义,进而到模块,到组件的定义,利用面向对象思想的封装、继承、多态的思想,使得软件系统开发可以向搭建房屋那样,循序渐进,从砖石到楼层,进而到整幢大厦的建成。应用面向对象思想,在设计规模更大、逻辑更复杂的系统...
阅读全文
posted @ 2006-09-07 00:11
伊凡
阅读(297)
推荐(0)
摘要:
前言:在Remoting中处理事件其实并不复杂,但其中有些技巧需要你去挖掘出来。正是这些技巧,仿佛森严的壁垒,让许多人望而生畏,或者是不知所谓,最后放弃了事件在Remoting的使用。关于这个主题,在网上也有很多讨论,相关的技术文章也不少,遗憾的是,很多文章概述的都不太全面。我在研究Remoting的时候,也对事件处理发生了兴趣。经过参考相关的书籍、文档,并经过反复的试验,深信自己能够把这个问题阐...
阅读全文
posted @ 2006-09-07 00:10
伊凡
阅读(323)
推荐(0)
摘要:
一、远程对象的激活 在Remoting中有三种激活方式,一般的实现是通过RemotingServices类的静态方法来完成。工作过程事实上是将该远程对象注册到通道中。由于Remoting没有提供与之对应的Unregister方法来注销远程对象,所以如果需要注册/注销指定对象,微软推荐使用Marshal(一般译为编组)和Disconnect配对使用。在《Net Remoting基础篇》中我已经谈到:...
阅读全文
posted @ 2006-09-07 00:08
伊凡
阅读(250)
推荐(0)
摘要:
一、Remoting基础 什么是Remoting,简而言之,我们可以将其看作是一种分布式处理方式。从微软的产品角度来看,可以说Remoting就是DCOM的一种升级,它改善了很多功能,并极好的融合到.Net平台下。Microsoft® .NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架。这也正是我们使用Remoting的原因。为什么呢?在Windows操作系统中,...
阅读全文
posted @ 2006-09-07 00:08
伊凡
阅读(368)
推荐(0)
摘要:
六、定义DataContract 我在介绍如何定义一个ServiceContract时,举了这样的一个例子,代码如下:[ServiceContract]public class BookTicket{ [OperationContract] public bool Check(Ticket ticket) { bool flag; //logic to check whether the ti...
阅读全文
posted @ 2006-09-07 00:04
伊凡
阅读(258)
推荐(0)
摘要:
示例代码下载:DuplexSample.rar 四、Service Contract编程模型在Part Two中,我以“Hello World”为例讲解了如何定义一个Service。其核心就是为接口或类施加ServiceContractAttribute,为方法施加OperationContractAttribute。在Service的方法中,可以接受多个参数,也可以有返回类型,只要这些数据类型能...
阅读全文
posted @ 2006-09-07 00:03
伊凡
阅读(192)
推荐(0)
摘要:
三、WCF的技术要素作为基于SOA(Service Oriented Architecture)的一个框架产品,WCF最重要的就是能够快捷的创建一个服务(Service)。如下图所示,一个WCF Service由下面三部分构成: 1、Service Class:一个标记了[ServiceContract]Attribute的类,在其中可能包含多个方法。除了标记了一些WCF特有的Attribut...
阅读全文
posted @ 2006-09-07 00:03
伊凡
阅读(262)
推荐(0)
摘要:
前言:WCF是微软基于SOA(Service Oriented Architecture)推出的.Net平台下的框架产品,它代表了软件架构设计与开发的一种发展方向,在微软的战略计划中也占有非常重要的地位。了解和掌握WCF,对于程序员特别是基于微软产品开发的程序员而言,是非常有必要的。对于WCF,笔者也是初窥门径,抱着学习的态度作这样的一个介绍。文中的内容主要参考了微软官方的文档、资料,以及众多介绍...
阅读全文
posted @ 2006-09-07 00:02
伊凡
阅读(316)
推荐(0)
摘要:
设想这样一个需求,我们需要为自己的框架提供一个负责排序的组件。目前需要实现的是冒泡排序算法和快速排序算法,根据“面向接口编程”的思想,我们可以为这些排序算法提供一个统一的接口ISort,在这个接口中有一个方法Sort(),它能接受一个object数组参数。对数组进行排序后,返回该数组。接口的定义如下: public interface ISort{ void Sort(ref object...
阅读全文
posted @ 2006-09-07 00:01
伊凡
阅读(232)
推荐(0)
摘要:
考虑一个日志记录工具。目前需要提供一个方便的日志,使得客户可以轻松地完成日志的记录。该日志要求被记录到指定的文本文件中,记录的内容属于字符串类型,其值由客户提供。我们可以非常容易地定义一个日志对象: public class Log{ public void Write(string target, string log) { //实现内容; ...
阅读全文
posted @ 2006-09-07 00:00
伊凡
阅读(226)
推荐(0)
摘要:
软件设计最大的敌人,就是应付需求不断的变化。变化有时候是无穷尽的,于是项目开发就在反复的修改、更新中无限期地延迟交付的日期。变化如悬在头顶的达摩克斯之剑,令许多软件工程专家一筹莫展。正如无法找到解决软件开发的“银弹”,要彻底将变化扼杀在摇篮之中,看来也是不可能完成的任务。那么,积极地面对“变化”,方才是可取的态度。于是,极限编程(XP)的倡导者与布道者Kent Beck提出要“拥抱变化”,从软件工...
阅读全文
posted @ 2006-09-07 00:00
伊凡
阅读(213)
推荐(0)
摘要:
五、const、readonly和static 在第四节中,我介绍了常量的定义,其关键字就是const。在定义常量时,必须赋予其初始值。一旦赋予了初始值后,就不能修改其值。也就是所谓的常量值不能更改的含义。由于C#是一门纯粹的面向对象语言,并不存在一个常量或者变量游离于对象之外,因此,这些定义,必然都是在一个类型内完成的。 关于常量的使用,除了会用作一些算法的临时常量值以外,最重要的是定义一些全局...
阅读全文
posted @ 2006-09-06 23:58
伊凡
阅读(384)
推荐(0)
摘要:
四、定义C#的类 既然类类型是C#中最重要、最常见的类型,因此它是我要介绍的重点,实际上,C#中的许多特性都可以通过类类型来体现。 前面已经介绍,一个类对象中,主要包括字段、属性和方法。不过除此之外,在类类型中还可以定义嵌套类,也可以定义一个常量。 对于一个没有任何编程知识的初学者而言,也许还应介绍一下常量与变量。不过从它们的名字就可以非常清晰地辨明二者的区别,常量其值是不可改变的,而变量的值则可...
阅读全文
posted @ 2006-09-06 23:57
伊凡
阅读(266)
推荐(0)
摘要:
三、对象的封装与C#的类 面向对象思想有三个核心要素:封装、继承与多态。如能正确理解这三要素,那么基本上可以算是在编程中建立了面向对象思想。在第二节中我曾介绍,在C#中,所有数据类型的实例都是“对象”,不过最能体现对象特质的类型,还是“类”,同时它也是C#中最重要、最频繁使用的类型。接下来,我将通过介绍C#的类,来充分理解对象封装的概念。 所谓“对象”,形象地说,我们可以把它理解为一块积木。设计积...
阅读全文
posted @ 2006-09-06 23:56
伊凡
阅读(325)
推荐(0)
摘要:
二、C#与面向对象编程语言 C#是纯粹的面向对象编程语言,它真正体现了“一切皆为对象”的精神。在C#中,即使是最基本的数据类型,如int,double,bool类型,都属于System.Object类型。此外,使用C#编程,不会存在与游离于对象之外的属于过程的东西。因此,学习C#,就必须具有面向对象思想,不明白所谓的“面向对象思想”,就不可能掌握C#的精髓,而对于C#的理解,就只能仅限于语言特色的...
阅读全文
posted @ 2006-09-06 23:55
伊凡
阅读(288)
推荐(0)
摘要:
前言:表弟想要学编程,我推荐他学习.Net和C#。这一推荐不打紧,我却承担上了指导的职责。我又出差在外,直接辅导是不行了,通过邮件也太麻烦。推荐了几本书,可惜他太菜了,总有无从下手的感觉。推及他人,在初学C#时,是否也有这样的感觉呢?所以,就有了这个系列文章。表弟是我把他带入计算机行业的,当初什么都不懂,我曾经打开计算机机箱,指点他哪里是硬盘、哪里是内存,是CPU,现在对于计算机硬件他早已可以做我...
阅读全文
posted @ 2006-09-06 23:54
伊凡
阅读(537)
推荐(0)
摘要:
谈及Corporation Objective,七要素中第一就是Profit1、个人待遇;2、未来发展;3、公司前景;4、企业文化; 不要小看企业文化,如果没有好的Enviroment,有好的待遇,好的position,也不一定能留住好的员工。
阅读全文
posted @ 2006-09-06 22:31
伊凡
阅读(324)
推荐(0)
摘要:
/* ------------------------------------------------------------------------------- 文件名称:check.js 说明:javascript脚本,用于检查网页提交表单的输入数据 版本:1.0 */ /* 用途:校验ip地址的格式 输入:strIP:ip地址 返回:如果通过验证返回true,否则返回false; ...
阅读全文
posted @ 2006-09-06 09:01
伊凡
阅读(358)
推荐(0)
摘要:
windows对象 每个HTML文档的顶层对象. 属性 frames[] 子桢数组.每个子桢数组按源文档中定义的顺序存放. feames.length 子桢个数. self 当前窗口. parent 父窗口(当前窗口是中一个子窗口). top 顶层窗口(是所有可见窗口的父窗口). status 浏览器状态窗口上的消息. defaultStatus 当status无效时,出现在浏览器状态窗口上的缺省...
阅读全文
posted @ 2006-09-06 08:59
伊凡
阅读(237)
推荐(0)