摘要:
自.NetFrameWork开源以来已经一段时间了,以下是我关于这些开源代码的一点理解,本篇主要讨论了Page类本身,和生命周期中的初始化与加载阶段在Page类代码中的体现.借此篇只是希望抛砖引玉,让大家能够更多的关注与源代码的研究,让我们在开发的时候能够有更深层次的理解.对于出现的Error等,我们能够更加清晰的理解这个机制.由于水平有限,不足之处望其谅解!当然希望大家能够指出.^_^!... 阅读全文
摘要:
1:意图 为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。 2:类图 3:代码 namespace Bll.ChainOfResponsibility { public class MSGEntity { //信息内容 private string conte... 阅读全文
摘要:
Terrylee,2006年3月 摘要:面向对象的思想很好地解决了抽象性的问题,一般也不会出现性能上的问题。但是在某些情况下,对象的数量可能会太多,从而导致了运行时的代价。那么我们如何去避免大量细粒度的对象,同时又不影响客户程序使用面向对象的方式进行操作? 本文试图通过一个简单的字符处理的例子,运用重构的手段,一步步带你走进Flyweight模式,在这个过程中我们一同思考、探索、权衡,通过比较而得... 阅读全文
摘要:
概述 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。那么如何应对这种“迁移的变化”?如何既能利用现有对象的良好实现,同时又能满足新的应用环境所要求的接口?这就是本文要说的Adapter 模式。 意图 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作... 阅读全文
摘要:
世界是巨大的枷锁,你不得不重复自己或是别人的生活。 记得长辈说过:年轻是一种罪过。他们说我们不成熟。 真切地为自己的不俗喝彩,在深切的郁闷中,突然就看懂了《大话西游》的开头: 一位才华横溢又无法无天的青年(孙悟空),根本不喜欢世人摊派给他的大事业(西天取经)。他尤其受不了师父(唐僧)的唠唠叨叨,可世俗条规(观音)又不放过他。为让他悔悟,心甘情愿地去取经,唐僧和观音达成妥协:让他五百年后... 阅读全文
摘要:
选择SOA就意味着将业务流程或功能用服务来表达,而服务的颗粒度直接影响到服务的质量,包括灵活性和效率等诸多方面。 因此,选择合适的颗粒度对服务设计是至关重要的。因为老被人问起,节前就有了就“服务颗粒度”问题写点东西的想法,没想到却因此困扰了我整个国庆节。回头想这其中很重要的一个原因,就是业界并没有就此形成一个非常清晰的答案。一个服务应该选择怎样的颗粒度,目前来看基本上还是一个主观的度量,并没有一个... 阅读全文
摘要:
SOA 参考架构 (Reference Architecture) 是一个框架,使各个项目都有一个遵从的依据,借以促进一致性、最佳实践典范,和标准化。参考架构并不受限于目前的 IT 现况,而应该针对一个经过深思熟虑的愿景目标,可以说是 IT 指导未来所有的新开发工作,借以实现该目标的参考依据。一般来说,2-3 年的规划,是一个比较合适的涵盖范围,既能提供足够的时间来达成面向服务的转型,而... 阅读全文
摘要:
阅读全文
摘要:
要想从一名普通程序员发展成为优秀的架构师,“个人特性”与“技术技能”缺一不可;而“技术专业能力”、“人际关系能力”和“业务能力”更是优秀架构师重要的三种能力。 文 / 周爱民(《程序员》2008年4月刊) 引子 究竟是什么让你在同一个位置上——例如程序员或技术负责人——工作了三年、五年或者更久,而仍然得不到任何的发展空间?你觉得自己已成为技术圈中的大牛,并信心满满地去拿明天就要颁发的某某大奖... 阅读全文
摘要:
序列化和反序列化我们可能经常会听到,其实通俗一点的解释,序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的时候把这个文件再转化成原来的对象使用。 我想最主要的作用有: 1、在进程下次启动时读取上次保存的对象的信息 2、在不同的AppDomain或进程之间传递数据 3、在分布式应用系统中传递数据 ...... 在C#中常见的序列化的方法主要也有三个:BinaryFormat... 阅读全文
摘要:
在以前传统的开发中我们都知道,一个应用程序对应一个进程,并为该进程指定虚拟内存,由操作系统来映射实际的物理内存,有效的维护了进程之间的安全性。但另一方面,每一个进程都会消耗一定的系统资源,降低了性能,并且进程间的通信也比较麻烦。 在.Net中推出了一个新的概念:应用程序域(AppDomain)。可以理解成很多应用程序域都可以运行在同一个.NET的进程中,可以降低系统消耗,同时不同的域之间互相隔离,... 阅读全文
摘要:
在软件开发尤其是框架和底层开发时,为了更灵活的控制代码,常常需要进行一些动态的操作。比如根据用户的输入等动态的调用类中的方法或者根据数据库表结构、用户要求动态的生成一些类,然后再动态的调用类中的方法。当然使用这些方式时会对性能有一点影响,具体使用过程中可以根据实际情况来定,不过一般的B/S开发中主要的瓶颈还是在数据库操作和网速方面,这点影响应该可以忽略的 下面我就从这两个方面来说说动态代码的使用:... 阅读全文
摘要:
匿名方法相信很多人都听过,它是C#2.0的一个新特性,顾名思义,匿名方法就是没有名称的方法。那么在C#中的匿名方法有哪些好处,在C#中如何使用呢? 匿名方法最明显的好处就是可以降低另写一个方法的工作量,另外一个好处就是可以访问调用者的变量,降低传参数的复杂度,下面就通过一些使用例子来具体看看。 1、在事件中使用匿名方法 下面是一个定时器的小例子,我们常规的写法如下: 常规写法 Code highl... 阅读全文
摘要:
C#中提供了三种类型的计时器: 1、基于 Windows 的标准计时器(System.Windows.Forms.Timer) 2、基于服务器的计时器(System.Timers.Timer) 3、线程计时器(System.Threading.Timer) 下面我就通过一些小实验来具体分析三种计时器使用上面的异同点,特别是和线程有关的部分。 实验例子截图: 一、基于 Windows 的标准计时... 阅读全文
摘要:
相信以前用过VB、Delphi,特别是VC的程序员应该对钩子程序都不陌生。在C#中我们同样可以使用钩子程序来实现特殊效果,比如当用户按下某个特殊键时提示,比如关闭应用程序前提示等。 当然使用方法相对VC来说要稍微复杂一点,有的地方还不太方便,下面的例子中实现两个基本功能: 1、按下Alt+F4时使窗口最小化 2、关闭应用程序前提示 不过目前只能捕获消息,不能屏蔽消息,我正在实验,也希望知道的高... 阅读全文
摘要:
ViewState的使用比较简单,一两句话就可以了。 赋值:ViewState[key] = value; 取值:value = ViewState[key]; 最主要的作用就是可以在当前页面保存值,ASP.NET的页面状态维护就是使用ViewState来实现的,基本上每一个ASPX页面都可以看到如下类似的html代码: 也就是说ViewState中的值实际上都是通过一个hidden来保存的... 阅读全文
摘要:
在一个aspx页面请求时后台到底做了什么?当然asp.net做了很多事情,过程也比较复杂,本文主要分析一下大体的流程。总体流程如下: 请求一个页面时首先被WWW服务截获(inetinfo.exe进程),这个进程首先判断页面的后缀,然后根据IIS中的配置来决定调用哪个扩展程序,比如aspx的页面就会调用c:\windows\microsoft.net\framework\v2.0.50727\asp... 阅读全文
摘要:
.NET Remoting是.NET平台上允许存在于不同应用程序域中的对象相互知晓对方并进行通讯的基础设施。调用对象被称为客户端,而被调用对象则被称为服务器或者服务器对象。简而言之,它就是.NET平台上实现分布式对象系统的框架。 传统的方法调用是通过栈实现,调用方法前将this指针以及方法参数压入线程栈中,线程执行方法时将栈中的参数取出作为本地变量,经过一番计算后,将方法的返回结果压入栈中。这样我... 阅读全文
摘要:
首先来看一下在Castle项目中用于示范其Ioc功能的一个小例子: 1: public interface IEmailSender 2: { 3: void Send(String from, String to, String message); 4: } 5: 6: public interface ITemplateEn... 阅读全文
摘要:
1:概述 在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,可以实现二者之间的松耦合。这就是本文要说的Command模式。 2:意图 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行... 阅读全文
摘要:
在敏捷开发过程中,我们还需要对系统架构进行设计吗?事实上,Martin Fowler在《Is Design Dead?》一文中已经给出了答案,那就是我们同样不能忽略对系统架构的设计。与计划性的设计(Planned Design)不同,我们需要演进式的设计(Evolutionary Design)。在敏捷开发的生命周期中,我们通过每一次迭代来丰富与更新我们的设计方案,以使其最大限度地符合客户对系统的... 阅读全文
摘要:
1:意图 表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 2:类图 3:代码 namespace Bll.Visitor { //实体 public class EntityMessage { private string msg; private DateTime date... 阅读全文
摘要:
1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS 变量1 INTEGER :=0; 变量2 DATE; BEGIN END 存储过程名字 2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 ... 阅读全文
摘要:
一:类在内存中的结构 每当在堆中创建对象时,每个对象都会获得两个与它关联的附加开销字段。 第一个开销字段MethodTablePointer 包含类型的方法表的内存地址。 基本上,该指针使获得有关堆中的任何对象的类型信息成为可能。实际上,当您在内部调用 System.Object 的 GetType 方法时,该方法会按照对象的 MethodTablePointer 字段来确定该对象的类型。 ... 阅读全文
摘要:
public class BaseDisposable : IDisposable { ~BaseDisposable() { //垃圾回收器将调用该方法,因此参数需要为false。 Dispose(false); } /// /// 是否已经调用了 D... 阅读全文
摘要:
/// /// 计算程序的运行时间 /// class StopWatch { private int mintStart; public void start() { mintStart = Environment.TickCount; } public long elapsed() { return Environment.Ti... 阅读全文
摘要:
ajax资料收集-Ajax文章(教程和实例)---Ajax资源下载(源码和教程)---Ajax规范标准 CSDN Blog Ajax文章搜索: http://search.csdn.net/search/ajax/1/blog/ 专题:Ajax技术应用开发 http://www.51cto.com/html/2005/1121/11736.htm http://www.edufans.com... 阅读全文
摘要:
其实现的原理并没有本质的区别,在应用开发层面上有以下区别: 1、Remoting可以灵活的定义其所基于的协议,如果定义为HTTP,则与Web Service就没有什么区别了,一般都喜欢定义为TCP,这样比Web Service稍为高效一些 2、Remoting不是标准,而Web Service是标准; 3、Remoting一般需要通过一个WinForm或是Windows服务进行启动,而Web S... 阅读全文