Fork me on GitHub

2012年10月19日

摘要: 摆脱烂项目2012-10-19 16:51 by 鲜宏, 564 阅读,8评论,收藏,编辑 有没有这样觉得,以前做过的,刚做完的,或者正在做的项目,简直就是狗屎,不想去维护,不想去看以前写的代码?如果有,那么我们可以继续下面的内容. 分析一下原因,项目为什么会烂,从纯技术上去看无非有以下两个问题 1.项目架构烂 2.代码质量差 下面我们各个击破,分别说说我的一些愚见,项目架构往往是项目经理,架构师,团队中技术较好程序员,或者呆公司较久程序员的事,由于对架构的理解不同,做事方式不同,项目的周期不同,技术选型不同,所以架构也就形形色色,但以我看来较鲜明的也就是较为守旧的数据库先行... 阅读全文
posted @ 2012-10-19 22:36 HackerVirus 阅读(309) 评论(0) 推荐(0)
摘要: 深入浅出SQL ServerReplication第一篇:走近Replication(上)对于很多的SQL Server DBA而言,Replication不是什么新鲜的事物了,也是大家常常说的“复制”,很多的朋友已经在项目中使用。正如其他技术一样:有人可以使用的好,有人会抱怨技术不行。我们AgileSharp团队也经过了不少高可用的案例, Replication还是非常有价值的。因此,我们整理了很多的资源,我们决定发布一系列的Replication文章,一是为了帮助大家了解Replication,另外也是为以后的讲述高可用做个铺垫。另外,有关高可用的一些问题,请参看这篇文章谈谈SQL Ser 阅读全文
posted @ 2012-10-19 15:11 HackerVirus 阅读(212) 评论(0) 推荐(0)
摘要: 这不是一个真实的浏览器事件,不过的确曾经存在这样一个事件满足我们的需求。很多时候,我们需要对文本域的值进行变化检测,不论是这变化是用户通过键盘敲打引发的,或是通过el.setAttribute("value","aaa")引发的,还是el.value = "bbb"引发的,还是用户通过复制粘贴引发的,更恶心的是HTML通过语音输入引发的。只要里面的文字发生变化,我们希望都能比较及时调用相应的程序进行处理。在旧式IE(IE6-8)下,onpropertychange可以满足上述所有需求(由于IE不支持input[speed]),因此不用 阅读全文
posted @ 2012-10-19 15:06 HackerVirus 阅读(255) 评论(0) 推荐(0)
摘要: 对于在IIS中通过W3SVC或WAS寄宿的WCF Service,其在浏览器中显示的地址(Web地址),与其配置文件中的BaseAddress和EndPoint Address有什么关系呢?让我们来分析一下。 第一,在IIS中寄宿时,不管WCF Service的EndPoint用什么协议向外暴露,它在浏览器中显示的地址不会变。该地址是WCF Service的可浏览地址(Web地址),它取决于WCF Service在IIS中的虚拟路径。该地址是面向浏览器的,只支持Http协议,例如http://localhost/WcfSrvDemo4/OrderProcessorService.svc。此时( 阅读全文
posted @ 2012-10-19 15:03 HackerVirus 阅读(185) 评论(0) 推荐(0)
摘要: 最近要实现访问远程主机的共享目录中的一个文件。遇到了权限问题。google了一下,找到了几种解决方法,记录如下:一、调用Net use命令 // 使用方法: //if (Connect("192.168.1.48", "用户名", "密码")) //{ // File.Copy(@"\\192.168.1.48\共享目录\test.txt", @"e:\\test.txt", true); //} public bool Connect(string remoteHost, string use 阅读全文
posted @ 2012-10-19 10:54 HackerVirus 阅读(212) 评论(0) 推荐(0)

2012年10月18日

摘要: 为了在各线程之间高效的传递消息,必须设计一种高效率的消息队列,传统的做法是mutex加queue,这种做法在每次执行push和pop时都要加锁,效率相对较低。其次还有使用循环队列,可以做到完全无锁,但只能实现1:1的消息传递。还有一些lock-free队列的实现,但基于其实现的相对复杂性,我不打算使用。我的队列设计是使用tls维护一个local list,每个线程执行push时,首先将元素放入属于本线程的local list中,此时是无需加锁的,然后检查队列中元素的总数,如果发现总数超过一个阀值,则将local list中的所有元素一次性提交到share list中,此时需要加锁,share 阅读全文
posted @ 2012-10-18 20:53 HackerVirus 阅读(197) 评论(0) 推荐(0)
摘要: 引自msdn侦听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件。使用FileSystemWatcher监视指定目录中的更改。可监视指定目录中的文件或子目录的更改。可以创建一个组件来监视本地计算机、网络驱动器或远程计算机上的文件。下面的示例创建一个FileSystemWatcher,以便在运行时监视指定的目录。组件设置为监视LastWrite和LastAccess时间方面的更改,以及目录中文本文件的创建、删除或重命名。如果更改、创建或删除文件,文件路径将被输出到控制台。在文件重命名后,旧路径和新路径都输出到控制台。在此示例中使用System.Diagnostics和System.IO 阅读全文
posted @ 2012-10-18 17:35 HackerVirus 阅读(123) 评论(0) 推荐(0)
摘要: FileSystemWatcher可以使用FileSystemWatcher组件监视文件系统,并对文件系统的改变作出反应。通过使用FileSystemWatcher组件,在特定的文件或目录被创建、修改或删除时,可以快速和便捷地启动业务流程。例如,如果一组用户在合作处理一个存储在服务器共享目录下的文档时,可以使用FileSystemWatcher组件编写应用程序来监视对共享目录的更改情况。当检测到更改时,该组件可以运行处理过程,通过电子邮件通知每个用户。可以配置组件来监视整个目录及其内容,或特定目录下一个特定的文件或一组文件。若要监视所有文件中的更改,应将Filter属性设置为空字符串(&quo 阅读全文
posted @ 2012-10-18 17:29 HackerVirus 阅读(216) 评论(0) 推荐(0)
摘要: using System;using System.Collections.Generic;using System.Text;using System.ComponentModel;using System.Security;using System.Security.Principal;using System.Runtime;using System.Runtime.InteropServices;using System.Web;using System.Web.Security;namespace Impersonate{ [StructLayout(LayoutKind.Seque 阅读全文
posted @ 2012-10-18 14:01 HackerVirus 阅读(721) 评论(0) 推荐(0)

2012年10月17日

摘要: Table of Contents1 概述2 技术方案2.1 要考虑的问题2.2 总体架构2.3 负载均衡器选型2.4 高可用方案2.5 会话保持方案2.6 URL资源的统一规划2.7 方案扩展3 实施计划1概述信息中心网络组已经对应用服务器所在的网络进行划分,应用系统的节点分别部署到网络的接入层、应用层和数据层。这样的划分能够提高应用系统和敏感数据的安全性,但是增加了应用系统部署的复杂性。根据网络规划,接入层作为用户(包括内部用户和外部用户)与关键服务器的隔离层,直接接收用户的请求,并转发给应用服务器。作为一种尝试,目前在接入层已经开始使用nginx对应用服务器进行反向代理,并支持多个应用服 阅读全文
posted @ 2012-10-17 21:28 HackerVirus 阅读(1176) 评论(0) 推荐(0)