摘要:
对ServiceStack.Redis的连接池进行故障转移改造使用ServiceStack.Redis的连接池在操作多台Redis的时候并不会对出现故障的Redis进行排除切换,这样就会导致应用会还是会分配到故障的Redis服务中导致应用处理错误.这次对ServiceStack.Redis连接池的改造主要实现两个功能:1)对故障的Redis服务在轮循的时候排除,2)定期检测故障的Redis服务,如果服务正常则恢复到轮盾环节中.(ServiceStack.Redis的代码结构还是很不错修改起来也很方便)增加基于Host的连接池功能ServiceStack.Redis连接池的连接存储结构相对简单,
阅读全文
posted @ 2013-05-24 15:58
HackerVirus
阅读(268)
推荐(0)
摘要:
ASP.NET UserControl 通信最近在SharePoint2007中用到了WebPart通信技术,个人觉得2007版本里面的ConnectionConsumer和ConnectionProvider没有2010版本那么好用,于是换了一种思想去实现通信:WebPart容器中装一个UserControl控件,这样只要UserControl可以通信,就实现了WebPart之间通信。下面我就用ASP.NET的UserControl模拟SharePoint UserControl通信,两者的本质,思想和实现方式都不变。UserControl是用户自定义控件,我们可以在UserControl中
阅读全文
posted @ 2013-05-24 15:53
HackerVirus
阅读(162)
推荐(0)
摘要:
持续改进-《高效程序员的45个习惯》读后感原书标题为《Practices of An Agile Developer》。中文名为《高效程序员的45个习惯-敏捷开发修炼之道》。敏捷这个词已经烂大街了,关于敏捷的书籍俯拾皆是。很多人是敏捷的狂热粉丝,而另一些人却讨厌敏捷,认为只是个噱头。我觉得很可能的原因之一是敏捷这个名字没起好。它的原名为“轻量型软件开发过程”(”lightweight process”),但后来阴差阳错成了agile(敏捷)。既然书名是敏捷开发者的实践,那么就必须认识敏捷。只有深入的理解了这些实践的来源和目的,才能更好的践行甚至改进实践。敏捷可以用一句话来概括:敏捷开发就是在一
阅读全文
posted @ 2013-05-24 15:31
HackerVirus
阅读(242)
推荐(0)
摘要:
重构之践上个月个人有机会重构正在开发的一个系统代码,在完成后团队使用中还有效果的情况下,觉得有必要将总结一下。简介 这个系统功能是一个工业设计软件,通过一些参数的配置,自动生成客户所需要的模型。采用C#开发,winform系统,该系统现为单机版,不存在服务端开发。其代码实现主要是模型生成,数据库参数读取都相对简单,现阶段代码量不是很大,配置界面大概有十个左右,业务操作代码估计有一万五左右吧。开发模式主要是敏捷开发,前期对系统进行简单设计,具体详细设计主要是由编码人员实现。原因由于该系统正在开发中,不易系统新增功能,甚至有些功能无法新增;核心功能修改困难,只有开发自己可以修改;该系统是公司计划.
阅读全文
posted @ 2013-05-24 15:29
HackerVirus
阅读(122)
推荐(0)
摘要:
再谈Prism中的EventAggregator--DDD接[从Prism中学习设计模式之Event Aggregator模式]一文,上文中从源码的角度分析了Prism中EventAggregator的实现。Lz想通过本文再深入谈下EventAggregator,将自己对Prism项目组的设计意图的理解做下记录,并希望和其他对Prism有兴趣的兄弟一起探讨。对于Prism的设计团队来说,设计EventAggregator肯定是经过一番详细考虑的,不会像我们平时在项目中图怎么简单怎么偷懒怎么来~[耻远了]。通过对Prism的源码进行阅读,给Lz一个很强的感觉就是Prism大量运用了设计模式和领域
阅读全文
posted @ 2013-05-23 22:51
HackerVirus
阅读(390)
推荐(0)
摘要:
Visual Studio 2010的网站局域网发布功能(Publish)以前部署asp.net网站时都是复制、粘贴,最近做了bat一键安装mysql和tomcat的setup。就想vs有没有更酷更方便的功能呢?果然有,上午研究了下vs的远程发布asp.net网站的功能。1,准备 一台开发机,安装了vs2010(vs2012也行) 一台局域网中的服务器(虚拟机也行),必须已经安装iis7(iis 7.5,8也行) 检查服务器8172端口是否能否访问(做测试就先把服务器防火墙关掉也可以,但是最好自己配置防火墙的例外) 我用的是英文版,麻烦童鞋们自己对照下中文版2,在局域网中的服务器上安装...
阅读全文
posted @ 2013-05-23 22:50
HackerVirus
阅读(1344)
推荐(0)
摘要:
SQL-Server索引漫谈一. SQL-Server数据存储基本单位 这篇文章讨论的主题是索引,但在正式进入索引的内容前,想简单介绍一下关于SQL-Server数据存储的一些简单认识,这将帮助我们更好地理解索引的结构。在SQL-Server中,数据存储的基本单位是页,一页的大小是8KB(共8192字节)。 1. 页首 页首固定占用每个数据页的96字节,保存了页面系统信息。下表列出了部分具体信息: pageID: 数据库中该页的文件编号和页编号 nextPage:如果该页位于一个页链中,则该字段表示下一页的文件编号和页编号 pervPage:如果该页位于一个页链中,则该字段表示上...
阅读全文
posted @ 2013-05-23 22:46
HackerVirus
阅读(239)
推荐(0)
摘要:
.NET平台4.0 发布网站流程及出错总结1、 进入解决方案的web项目下,右击项目选择 "发布(B)"2、发布方法选择“文件系统” 目标位置选择发布到本机上的位置3、将WS.db3拷贝到发布的目录下,换连接数据的对象的话就需要这一步操作,(之前需要修改配置文件,将服务器的数据库添加到本机)4、设置文件夹的权限 4.1 右击已发布的文件夹,选择“属性” ,tab上选择“安全”,点击“编辑”进入em的权限,选择“添加(D)”进入选择用户或组,选择“高级(A)” 4.2 点击“立即查找”,在下面的列表中选择“Everyone”,双击返回选择用户或组界面,确定5、进入IIS设置,
阅读全文
posted @ 2013-05-23 22:44
HackerVirus
阅读(172)
推荐(0)
摘要:
epoll + 多线程实现并发网络连接处理简介触发方式 条件触发 边沿触发主要的应用接口1 Epoll的创建 根据man手册介绍, epoll_create(int size) 用来创建一个epoll实例,向内核申请支持size个句柄的资源(存储)。Size的大小不代表epoll支持的最大句柄个数,而隐射了内核扩展句柄存储的尺寸,也就是说当后面需要再向epoll中添加句柄遇到存储不够的时候,内核会按照size追加分配。在2.6以后的内核中,该值失去了意义,但必须大于0。epoll_create执行成功,返回一个非负的epoll描述句柄,用来指定该资源,否则返回-1。例子: int epo...
阅读全文
posted @ 2013-05-23 22:39
HackerVirus
阅读(1573)
推荐(0)
摘要:
Linux进程地址空间之初探:一引言:现代操作系统提供了一种对内存的抽象概念,叫做虚拟存储器,它为每个进程提供了一个大的,一致的,和私有的地址空间。通过一个很清晰的机制,虚拟存储器提供了3个重要的能力:1)它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,它高效的使用了主存。2)它为每个进程提供了一致的地址空间,从而简化了存储器管理。3)它保护了每个进程的地址空间不被其他进程破坏。Linux操作系统同样也采用了虚拟内存技术,对一个进程而言,它好像可以访问整个系统的所有物理内存,更重要的是,即使单独一个进程,它拥有的
阅读全文
posted @ 2013-05-23 22:38
HackerVirus
阅读(185)
推荐(0)