摘要:
Factory 模式是一种非常基本同时也是被广泛使用的设计模式, 我在这里就不多说了,这种模式在框架程序设
计中经常被采用,今天就说一下在.NET 框架下的一个使用例子。 阅读全文
摘要:
由于最近有了宝宝,导致夜里写文章的时间越来越短,而白天又忙于开发。没办法,只有挤时间去写东西了。
前些天在园子里看到了这篇文章,http://www.cnblogs.com/Yahong111/archive/2007/07/18/822946.html,
对里面写的内容浏览了一下,这里首先对作者的实践精神表示赞赏。我这里只是从别的角度阐述一下AbstractFactory
在这种应用场景下的发展,内容不多,希望大家见谅。 阅读全文
摘要:
最近有时间下载并在本地安装了 AjaxControlToolkit , 在运行里面的示例时,发现所生成的源文件时发现有几个“特别”的地方。
因为本人对Microsoft Ajax未曾做过什么研究,因此就想看看微软的这个产品中是有什么奥秘。现在就把我所看的源码以及相关的理解记
录如下(本文以SampleWebSite/DragPanel/DragPanel.aspx为例),以便与大家交流,希望大家多提意见。 阅读全文
摘要:
今天上班,比平时要早20分钟起床(因为怕堵车)。可是等做着751路巴士到天通苑时,不
愿看到的情象还是出现了。只见去往立水桥方向道路(并排4 车道)在天通西三区就开始排大队。
看着大家都下车步行四站地去立水桥做城铁,马路上人流黑压压一片。虽然我在的公司对准时上
班打卡要求不那么严,但如果经常晚到本人也觉得不好意思了。但因为上周刚加完班,这周又要
上正常班,感觉比较累所以就放弃了步行到城铁的想法,正当在车上座着无事可做时,一个想法
忽然进入脑海。因为很长时间没写随笔了,正好在路上想想写点什么好。而眼前的情况不禁让我
浮想连篇,这就是写这篇文章的初衷。 阅读全文
摘要:
今天早上有幸看到DUDU的这篇BLOG。
其实在一早加入DISCUZ之初,这方面的疑惑也是有的。
但当时我和雪人谈论这个问题时,主要是出自几个方面的考虑。
一是如何让使用我们程序的站长非常容易的理解和使用我们所定制的模版。因为大多数站长必定不是程序高手,
如果让他们理解类,名空间以及控件,委托之类的东西,他们一定会很不爽的。那就需要一种非常“傻瓜”的
“语言标记”能够让用户非常容易理解和使用。而同时又想到以前的站长用的程序有asp的代码, 因此语言上
的设置特性最好也有asp特性的一些考虑。(但模版语言本质却不完全相同) 阅读全文
摘要:
最近有时间看一些.net的框架代码,发现一个有意思的问题,就是HttpModule中的
Init函数下的事件绑定,因为事件的绑定在事件发生后相应的处理委托即为null,但
下面的代码(功能:地址的重定向)为什么只是绑定一次后就能在每个WEB请求过来
时都能运行ReUrl_BeginRequest事件呢。
public class HttpModule : System.Web.IHttpModule
{
public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(ReUrl_BeginRequest);
....
}
private void ReUrl_BeginRequest(object sender, EventArgs e)
{
....
} 阅读全文
摘要:
摘要:通过重构实现、趋向和去除模式,这是我从Kerievsky那本叫Refactoring to Patterns的书中看到的。
而今天文章的内容是一种对其思想的实践案例。有趣的是在这篇文章中所说到的代码开发和重构过程发生在
2006年7月份, 而我看到的这本书的相关内容只是两天前的事。我在这里不是想说自已的思想与作者已经走
到了一起,而是想说作者的思想也是从实践中来的,而我们的编程也是一种实践,这必然会有相交的可能。
这也是为什么实践类的文章会如此受欢迎的原因。 阅读全文
摘要:
大家好,大约半年多没在园子上发贴子了,主要是跳槽到新公司后一直在开发新产品,现在就要发布正式
版了,是一个论坛软件,官方站点是http://nt.discuz.net。
不多说了,还是言归正传,前一阵子在网上看System.ComponentModel名空间下的一些类,主要是
Component,Container,IServceContainer,ISite,一时兴起想好好看看这几个类的关系和如何使用,但因为MSDN
上可用的资料不是很充足,而在BAINDU,GOOGLE上搜的基本上也只是一些只言片语,只有几个网页写的不错
(基本上是老外),但也是偏重于讲底层的逻辑关系或从Injection方面讲的,而实例又相对复杂或与我感兴趣的
方向无太大关系,当读上瘾之后文章就嘎然而止。这的确很郁闷,没办法,只有去用reflector 去反向.NET框架中
的代码了,这才有了些领悟,也就是今天文章中要说的内容。这篇文章旨在抛砖引玉, 园子里的朋友肯定有精通此
方面内容的,如果看到这篇文章,欢迎留下只言 阅读全文
摘要:
第三重: [无模式]
这里我说的无模式,不是当“压根就没有模式”讲。相反,这是一个无穷量,就像我们在大
学时使用的Limit 极限一样。这一层面上永远没有终点,一切只是像坐标轴一样,只有原点,没
有终点。另外,当年张三丰教张无忌太极拳时对张无忌说的,什么时候全忘了,什么时候就全会
了。因为只有满足了应用需求的软件才是好软件,而使用什么设计模式,那是只有程序员才关心
的事。
当你在设计中遇到了问题,在多年经验的基础上,写出了高度可扩展,灵活,效率高,BUG
极少的软件时,而此时设计模式只是被无形中应用于开发过程里。这时你会不知不觉就使用了设
计模式中的思想和好处,而这一切只是基于你的开发习惯,也许只有到这一步才是真正的“融会
贯通”了。
阅读全文
摘要:
第二重: [模式合成]
在学习并使用了一段时间的设计模式后(大约四个月到半年),发现设计模式在代码形式上
的一些近似完全可以成为整合一种或两种以上设计模式的桥梁 [当然也要参见和在上面说的那种
模式之间关联图上的说明]。这时在使用设计模式上就要有一定的突破了, 既不能死守代码解释
固步自封,也是能过于激近,甚至把某种设计模式上的优势人为去掉而让自己的代码取而代之,
这都会让自己最后设计的的东西不令人满意[特别是你自己]。那么什么时候才能确定要采用模式
合成呢,我这里给出两个建议,这也是我在去年做一个计费系统时所采用的:
阅读全文
摘要:
第一重:[模式 呀 魔式]
本人在刚开始学习设计模式时只看了几个,包括:Strategy,Composite,Singleton,Factory
这四个模式,从一开始感觉的头大到后果看到了这几种模式给程序设计和修改以及调试所带来的
便利好处,让我对那四位大仙真是伸大指佩服。再以后就是又看了其余的一些模式,但越研究越
发现,这些模式就像是一堆同父异母的孩子,有些地方长得很相以,如果不是很了解这一家人,
有时很容易就会张冠李戴了,举个例子:Abstract Factory,bridge,Strategy这三个就有点相似,
如果大家不相信,可以看一下相关的图文说明[特别是图的右半部分]。我想这也是在这一时期大
家有时感到迷糊的原因之一,到底该如果去分清呢?在一些偶然的机会下,我去下载一份
RedSword软件工作室的设计模式迷你手册[因为本人的模式资料只是从网上获取],最开始的一个
图表引起了我很大的兴趣,图如下:
阅读全文
摘要:
二个月前看到了VS2005下面的WebPart控件可以让用户在网页正在运行时进行用户页面定制,
觉得非常有意思,因为它里面使用了类似于portal 的技术,从而给用户以耳目一新的感觉。由
于在 Sharepoint Portal Server 中也有这样的东西,同时也感到了sharepoint 作为一种共享
类型的服务站点给大家带来的巨大方便,所在准备在WebPart这个组件上好好看看。但后来由于
开发任务有点紧,就放下了。好在最近1期项目做完了可以休息一下,所以开始研究一下这个东西。
因为以前看惯了sharepoint的菜单后,才发现VS2005 中的WebPart与那个sharepoint的
WepPart不太一样。特别是在WebPartZone菜单下的用户定制很不相同。有关sharepoint下的菜
单订制请参见http://www.cnblogs.com/ocean/archive/2005/03/17/120093.html。
后来在网上没有见到太多关于VS2005 We 阅读全文
摘要:
google的地图测试版发布已有一段时间,但是这两天我才有时间来看这个东西,
通过简单的使用,发现这个服务还不错,我现在就把如何申请MAP API KEY,和简
单使用的步骤写在这里,希望大家看到后能有些帮助。同时,我还发现了一个网站,
那里的作者在google的地图基础上加载了一切国内的行政区划和城市地图的功能,
那位作者写的代码功能真的很不错,我这里只是把他所使用的javaScript脚本和图片
内容进行相关修改后,打包放在了这里,大家可以在自己的程序中加入这个功能,
就能在自已的站点上加入这些功能了,另外希望大家多支持那位作者,因为现在这
样的程序员真的不多了。
步骤1:进入http://www.google.com/apis/maps/ 中点击Sign up for a Google Maps API key链接后,在当前页面上输入您要使用的网站链接(本人使用的是http://www.imhero.com/map)后点击Generate API Key按钮后得到如下图所示的页面。图1 阅读全文
摘要:
大家好,首先我要声明的是:本人不曾对CodeSmith有过任何偏见,相反,在以后我做的几个项目中,
曾大量使用它来生成一些代码。但是由于本人最近在研究IOC类型框架Castle时,为了生成符合我要求的
数据表类型CS文件,发现去定义自己的CodeSmith模版太麻烦了,因此动了使用网页ASPX生成CS文件的念
头[可能有点BT],但是在完成这个程序后发现,这个东西非常好用。虽然目前只能进行SQLSERVER2000数
据库文件生成,但相信扩展到其它数据库类型并不难,但由于本人精力有限,目前只能做到此步。相信
有使用ORACLE,MYSQL等数据库的朋友完善它。
闲话少叙,马上开说。 阅读全文
摘要:
最近在看vs2005上关于泛型的介绍,同时考虑到手头上使用的DBSERVICE库中文件过多(共7个CS文件),想利用泛型技术对它进行“瘦身”,最后系统只有2个文件。现把相关文件做一简单说明:
说明:DbAccess.cs文件, InitailDB函数采用反射进行相关信息搜集
阅读全文
摘要:
在开发网站的过程中,总是在不停的在设置窗口过程中堆放一个又一个的校验控件,虽然
不是很麻烦,但还是有些头上飞苍蝇的感觉,由于最近的项目进行的比较顺利, 同时又有时
间剩余,就想着写一个控件,让它通过设置完成一些功能,如邮箱,数字,电话号码,非空
等校验,基本上用了一天半就写完了,同时又把以前常用的上传文件的功能也加入到了这个
控件库中,并进行了测试,基本上没什么问题,在这里特把源代码提供下载,希望有兴趣的
朋友有空研究一个,如果有什么建议或改动,请及时通知我,谢谢大家。
阅读全文