摘要: (一)框架整体构想在应用程序开发过程中,存在很多模块重复开发的烦恼,于是收集资料开始动手,设计开发这插件系统框架,框架用于整合各个子插件。设计阶段一:将接口定义成单独程序集,让插件去实现这个接口,框架采用反射来完成子插件功能的读取。问题:1. 要定义若干接口。2. 对于现在已存的模块修改太大。设计阶段二:着力于对第一阶段第二个问题解决,在协议接口和插件间添加一个适配器,有了这样的结构,就能将现有已存在模块方便地与主机框架整合设计阶段三:在阶段二的启发下,解决在阶段一中的要事先定义若定义接口的问题。改进,在接口协议与主机框架间加适器,让接口协议义与主机开发断开问题:插件与协议,主机-协议藕合较大 阅读全文
posted @ 2013-05-06 11:13 luseike 阅读(749) 评论(0) 推荐(1) 编辑
摘要: 首先简单介绍下T4(Code Generation and Text Templates),也就是有一些文本模板和控制逻辑组成的混合体,可以使用这些模板生成程序中的部分源代码。 在Visual Studio中这些模板只是简单的文本而已,那么是如何解析这些文本生成代码文件的呢?生成的关键就在于文件的“自定义工具”属性,在Visual Studio中“文本模板”的后缀为.tt,添加“文本模板”文件,查看文件的属性,会发现“自定义工具“属性值为”“TextTemplatingFileGenerator”,如下图所示: 尝试修改其他文本文件的“自定义工具”属性为“TextTemplatingFileG 阅读全文
posted @ 2013-05-06 11:12 luseike 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 本文主要描述在C#中线程同步的方法。线程的基本概念网上资料也很多就不再赘述了。直接接入 主题,在多线程开发的应用中,线程同步是不可避免的。在.Net框架中,实现线程同步主要通过以下的几种方式来实现,在MSDN的线程指南中已经讲了几 种,本文结合作者实际中用到的方式一起说明一下。1. 维护自由锁(InterLocked)实现同步2. 监视器(Monitor)和互斥锁(lock)3. 读写锁(ReadWriteLock)4. 系统内核对象1) 互斥(Mutex), 信号量(Semaphore), 事件(AutoResetEvent/ManualResetEvent)2) 线程池除了以上的这些对象之 阅读全文
posted @ 2013-05-06 11:10 luseike 阅读(716) 评论(0) 推荐(0) 编辑
摘要: 修改my.ini文件加上default-character-set=gb2312设定数据库字符集alter database da_name default character set 'charset'1)设置数据库编码 /etc/my.cnf[mysqld]default-character-set=gbk...[client]default-character-set=gbk---------------------------------------2)按字符集导出$mysqldump -u root -p dbname --default-character-set= 阅读全文
posted @ 2013-01-10 09:23 luseike 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 大家都知道,xmlhttp在通信时采用的是utf编码,而国内很多网页的信息都是采用gbk编码,所以当直接通过ajax去连接网页,并将获取到的信息直接显示的话就会出现乱码的现象,有些时候无法改变服务器端网页的编码(例如获取别的网站的天气预报信息),在这种时候就只能在客户端通过js做编码的工作了.下面这段js就是用于将服务器端返回的gbk编码字符串转换为utf编码字符串:function gb2utf8(data){ var glbEncode = []; gb2utf8_data = data; execScript("gb2utf8_data = MidB(gb2utf8_data, 阅读全文
posted @ 2013-01-06 08:59 luseike 阅读(979) 评论(0) 推荐(0) 编辑
摘要: JavaScript引擎包括Google V8(Chrome,Node)都是专为快速执行大型JavaScript程序而设计的。在开发过程中,如果你在乎内存使用率和性能情况,那么你应该会关心在用户的浏览器中JavaScript引擎背后是怎么样的。无论是V8、SpiderMonkey (Firefox)、Carakan (Opera)、Chakra (IE) 还是其他,有了它们可以帮助你更好的优化应用程序。我们应该时不时地询问自己:我还能做些什么使代码更加有效?主流的JavaScript引擎做了哪些优化?什么是引擎无法优化的,我能期待利用垃圾回收进行清洁吗?快速的加载Web网页就如同汽车一样,需要 阅读全文
posted @ 2013-01-05 09:50 luseike 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 前段时间公司新写的自动升级服务端(Remoting)出现了内存不断飙升的情况,从最初的七八十兆一晚上竟然飙到了1G多,直接导致客户端连接服务端失败,这不科学,后来优化了各种可能造成占用内存的方法(数据库连接,I/O操作,引用类型释放),但效果不佳,这下可难为我们了,不知道问题的所在也就不知道该如何去修改。我们知道.NET是带有垃圾回收机制的,出现这种情况一般是由某些数据长期存活在内存中又不能被当成垃圾数据回收的原因造成的。后来就在各搜索引擎上进行了各种搜索,有说使用windebug分析dump,但需要大量时间琢磨,有人说是不是硬件问题,还有人说中毒了,最后找到了一款微软推出的CLRProfil 阅读全文
posted @ 2013-01-05 08:58 luseike 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 玩.Net 的人都知道,服务器对一个web请求的处理过程封装在一个叫做处理管道的“黑匣子”里面,这个“黑匣子”里面有很多针对一次请求处理的事件,其中微软只暴露出19个给我们程序猿使用(小弟下篇博文会对这个“黑匣子”进行个简单的整理)。19个事件中我们其实是可以通过事件注册来让它做我们想做的事,本文就简单来啰嗦下这个话题。一个动态的url请求到达IIS服务器之后,首先接待它的是HttpRuntime,该类很庞大,负责对一次完整请求的所有处理。因为一次处理过程其实是相当艰辛的,它一个人忙不过来,于是找HttpContext和HttpApplication两个伙计来帮忙而且两人各有分工,HttpCo 阅读全文
posted @ 2012-10-20 15:29 luseike 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 前台:<!--样式,隔行换色--><style type="text/css">.gridview{ border:0; background-color:#ccc;/*网格颜色*/}.gridview th{ border: 0; background-color:#eee; line-height:200%;}.gridview tr{ background-color:White}.gridview td{ padding: 6px 4px; border:0;}.gridview .dgItem:hover{background-color: 阅读全文
posted @ 2012-10-15 22:54 luseike 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 今天朋友问我一个js的问题,他是这么描述的:页面上有些许文本框,但是要求获得焦点后就必须为其输入数据. 如果光标离开,验证是否已经填入数据,如果没有填入数据就弹出提示对话框. 结束对话框后,要求该文本框获得焦点,可以继续输入.起初我没有在意,但是看了他的要求,我觉得应该很简单吧!后来看了看,似乎并不容易.问题出现在怎么添加事件执行代码. 先贴一段代码,为id为text的div标签下的所有文本框添加失去焦点的事件<html><head><title></title><script type="text/javascript" 阅读全文
posted @ 2012-10-15 21:55 luseike 阅读(1547) 评论(0) 推荐(0) 编辑