满足?不满足!

chris 2012/4/25 15:04
我总是不满,总是觉得这个有问题,那个不好。这会让别人觉得我浑身是刺,因为我总是挑毛病。这对人际关系的影响比较大,我已经收敛了不少。但是不满就是不满,总得有所表示吧?而有人说他很满足,觉得现在很好,比以前好多了。是的,比以前好多了…但是,因为比以前好就能够满足了吗?[More]

杂谈

Windows 2008 R2 IIS 7 5011错误,并且w3wp进程会很快挂掉

chris 2012/4/19 12:04
这是一个很要命的问题,如果不解决网站根本没办法运行。辛亏这次解决问题的时间不是非常紧迫,否则有罪受了。 在做IIS负载均衡,有两台计算机都安装Windows 2008 R2,软件环境基本一致。使用共享文件夹共享IIS配置和IIS程序文件,但是有一台计算机可以正常工作而另外一台计算机则不断遇到WAS 5011错误。错误会连续发生,之后w3wp进程会崩溃(这个其实可以设置,是IIS 7.5健康监测发现w3wp在5分钟内发生了5次以上错误就将w3wp收回去了)。[More]

疑难杂症, .NET

使用T4生成实体类代码的一点思考

chris 2012/4/13 04:04
有一个项目采用T4根据数据库表生成实体类代码,刚开始的时候由于大家从手工编写无聊的实体类中解放出来都感到非常好用。但是慢慢的也发现了一些问题。首先,团队采用的是“中央开发数据库”,所有团队成员共用一个开发数据,另外有一个测试数据库。随着需求的增多,开发的特性越来越多,数据库里面的表也越来越多——感谢T4模板让我们少了很多机械编码——但是有时候给我们带来一些困扰:A为开发一个功能1修改了表1,B为开发功能2增加了表2,B为了测试必须生成实体类。当B生成实体类时会将A修改的表1的对应类也生成。于是B的代码可能必能编译因为A还没有完成开发不能提交代码。 为了解决这个问题,我们尝试将开发数据库分离,... [More]

杂谈, 疑难杂症, .NET

使用NServiceBus

chris 2012/4/10 02:04
NServiceBus算是一个比较复杂的框架,虽然NServiceBus已经为我们做了很多事情,要使用也不是件容易的事情。下面记录使用NServiceBus.Host.exe建立ServiceBus服务的一般步骤。[More]

.NET

将网站IIS文件放在共享目录上

chris 2012/4/06 14:04
如果我们将网站放入WebFarm中就要面临文件同步的问题。WebFarm由若干台服务器组成,每台服务上的IIS运行同样的程序。如果每次发布网站都要逐台服务器更新网站程序就显得很麻烦,我们可以把网站程序放在一个文件服务器上,Web服务器通过文件共享使用这些文件。[More]

ASP.NET, 软件使用

关于持续交付

chris 2012/3/28 15:03
在软件开发的一系列活动中,几乎每个活动都很容易出现错误。软件开发的最后一公里:部署同样容易出现错误。我经历过发布一个系统时是由两个人一起进行的,一个人手持一份清单,另一个人负责执行。每执行一个步骤在清单上画上一个勾。尽管小心翼翼,在发布完之后仍然出现了问题,甚至最后需要回滚,而回滚也不是一件轻松的事情。看了《持续交付》的书,感觉正是自己想要的。然而持续交付不是一件容易的事情,《持续交付》一书中虽然给出了“一般模式”,但是具体操作起来不容易。无疑,持续交付描述的场景显得很美好。但是真正需要自己实践持续交付的时候就会面临一些实实在在的麻烦:[More]

杂谈

检查当前计算机有多少个TCP处于TIME_WAIT状态

chris 2012/2/29 14:02
在繁忙的服务器上,其所能支持的TCP连接有限,如果大量连接没有关闭或者处于TIME_WAIT状态会影响网络程序的正常运行。严重的时候我们会遇到“由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。(An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.)”的问题。那么如何检查当前系统有多少个TIME_WAIT连接(或多少个活动连接)?[More]

疑难杂症

将我的Blog源代码放在GitHub上

chris 2012/2/27 13:02
因为现在BlogEngine.net的代码已经升级到.NET 4.0,我的免费博客主机不支持.NET 4.0,只好自己重新找了份旧的代码然后自己修改了一些问题。现在将代码放在GitHub上面,地址是:https://github.com/fzhenmei/MyBlog [More]

ASP.NET, .NET

通过LINQ计算排名

chris 2012/2/27 12:02
有一个排名计算的需求,同时计算总排名和区域内排名,使用LINQ来写倒也不复杂。以前不知道LINQ查询还可以提供index。[More]

.NET, LINQ

怎么知道计算机上面是否安装了.NET 3.5 SP1

chris 2012/2/21 02:02
.NET 3.5 SP1相对于.NET 3.5有一些不兼容的地方,在SP1下能跑的程序放到没有安装SP1的机器上可能无法运行,比如某些序列化方法。要检查是否安装了.NET 3.5只要跑去C盘看一下就可以了,那么怎么检查电脑有没有安装.NET 3.5 SP1? 最简单的方法就是在控制面板--安装删除程序里面检查。 如果要写程序来检查也可以——可以检查注册表。 const string name = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5";RegistryKey subKey = Registry.Loca... [More]

.NET, 疑难杂症

LINQ的分组排序

chris 2012/2/13 06:02
在LINQ里面怎么做到这样的效果:一个列表,按照Group属性进行分组,在组之间按照每组Score属性最大进行排序。我对LINQ的Group不熟悉,最好在StackOverflow找到解决方法。原来很简单,不过不知道是否能够更加简单?[More]

.NET, 疑难杂症

随意的代码

chris 2012/2/06 05:02
我闲暇时会阅读一些国外开源项目的源代码,一般好的开源项目代码都很“工整”。接触国内的开源项目不多,偶然看到也是一些“小玩意”——我自己也没有在开源项目上贡献过代码,目前我觉得比较大的贡献代码的障碍是“沟通问题”。当然经常打交道的则是同事们的代码,由于公司并没有Code Review的传统,一般我会因为好奇看看同事们的代码,不过很快我就没有任何兴趣再看这些代码了。本来就算是写得很好的代码要理解也不是一件容易的事情,糟糕的代码就更加难以理解了。然而最让我难以忍受的是代码“不工整”,很随意,甚至格式化没都没有做好。比如最近看到一段这样的代码: public class FacadeClass {... [More]

杂谈

用CronTrigger做时间段较为复杂的Quartz Job

chris 2012/2/04 14:02
我现在非常喜欢用Quartz做一些定时任务,CronTrigger和Calender配合起来可以做一些时间段比较复杂的重复任务。 比如A任务的时间段是这样的: 9:30 - 11:30 13:00 - 15:00 每10分钟执行一次。 周六日不执行,遇到法定节假日也不执行。 B任务只有上午的时间段稍有不同,它是从上午的9:00开始,并且执行的频率是每10秒一次。 我采用的方法是使用8个CronTrigger和一个AnnualCalendar。AnnualCalendar指定假日和周末。 var holidays = new AnnualCalendar(new Weekly... [More]

架构和武器

chris 2012/1/22 10:01
做架构的人需要了解很多概念性的东西,也要了解这些有哪些武器(工具)可以让我们的开发生活更加简单。工作量尽量少,开发效率尽量高。 日志:      log4net NLog AOP: DI:      autofac      windsor castle      structmap Unit Test      moq      SR... [More]

杂谈

认识Topshelf

chris 2012/1/20 06:01
Topshelf是一个库,可以帮助我们写Windows Service程序。这是我以前很想要的一个软件或者模式,我经常写Windows Service,为了让Service运行起来我们需要为建立一个Windows Service工程,并为这个工程设定一系列的属性。为了方便,我们写一些bat脚本以帮助我们安装、卸载服务。由于Windows Service没有界面,要运行就得先安装,这使得开发期间很不方便,主要是Windows Service不好调试(因为Service需要安装、启动等等一系列操作,并且查看日志不方便。),相对来说控制台程序就方便多了。所以,我希望一个这个宿主程序可以安装为Wind... [More]

.NET, 软件使用

索爱X10成功刷上MIUI

chris 2012/1/18 05:01
贪鲜将X10的系统升级到最新的2.3.3,看起来是好多了,但是有个致命问题——系统不稳定,上网的时候系统经常自己重新启动。看着微博啥的突然就黑屏然后重启,非常令人不爽。经过一段时间的观察,一般重启的时候都是在上网。今天终于忍不住了,豁出去将系统刷成MIUI。 经过一个小时的折腾,终于看到了传说中的MIUI。 刷的是这个: http://www.miui.com/forum-viewthread-tid-218033-highlight-x10.html 稳定性似乎不行,换。 换了这个帖子的1.9.9。 http://www.miui.com/thread-249796-1-1.ht... [More]

手机

2012年第一篇

chris 2012/1/03 16:01
似乎2011年年会场景还历历在目,可是现在已经是2012年了。因为心中还有梦想,所以是时候总结一下过去,把握未来的方向。生活方面的总结在2011年12月31日晚上写完,文章写在时间跨了一年。这里只写工作方面的总结。 失败的架构设计 如果要我总结2011年的工作,我大概会脸红心跳的写上一句“参与某某系统的架构设计”。我不能说那不是在“架构”,但是我觉得“设计”两字则可以去掉。 这是架构设计? 某个项目我参与了“架构设计”,之所以打上引号是因为经过一年时间的观察,这根本就不是什么“架构设计”。年底正好因为一个代码的改动触动整个系统的多个地方,我不得不对代码的一些角落进行review,现在看... [More]

杂谈

远程桌面链接Console + 密码保存

chris 2011/12/22 05:12
如果经常使用Windows的远程桌面管理电脑,就可能会遇到这样的问题:遇到错误:“已超过允许的最大终端连接数”。要等其他帐号注销才能链接,有时候我们等不起啊,得立刻连上去。每次都要输入密码?为了安全,服务器的密码往往使用复杂的密码,每次都要输入令人不耐。如何解决?建一个批处理文件:mstsc /console "c:\my.rdp" 或者,直接在运行里面输入也可以。 my.rdp是预先保存起来的远程桌面配置文件。参考:http://www.360doc.com/content/10/0324/10/61497_20031899.shtml

软件使用

微软的CRM

chris 2011/12/09 16:12
今天终于见到微软Dynamic CRM 2011真容。看起来很有意思,跟我之前接触过的CRM风格完全不同,很多值得学习和借鉴的地方。秉承微软软件的一贯风格,Dynamic CRM也是重度依赖微软的各种软件,并且只能使用IE浏览器浏览。界面是类似Office 2010的风格,各种窗体也是类似Windows Form风格。这个软件是用ASP.NET做的,下载过其安装文件,配置项不是一般的多啊。 里面有很多设计上可以学习的地方,比如界面可以做各种定制,流程、角色、权限、表单都可以自定义。 Dashboard

软件使用

ASP.NET和负载均衡

chris 2011/11/28 05:11
ASP.NET和负载均衡用了负载均衡,有些具体实现方式就不同了。首先要注意的几个地方:    1. Session State存储的问题,如果网站需要使用Session,那么就不能将Session以InProc的模式存储。必须将Session存储在Session State Server或者数据库中。    2. Machine Key的问题。每台机器要使用相同的Machine Key。否则同一个客户会生成不同的SessionID。    3. 并发控制、数据同步的问题。参考资料:http://www.w... [More]

.NET, ASP.NET, 互联网, 疑难杂症 ,