Monthly Archives: October 2008

C# 4.0 的新功能

Anders Hejlsberg在PDC 2008的演讲"The Future of C#"中描述了未来C#4.0的核心新功能:Dynamic 简单记录核心内容,为以后的学习提供方向. 1.Dynamic 语言和Static语言的比较 2. C# 4.0的核心功能 Dynamically Typed Objects Optional and Named Parameters Improved COM Interoperability Co- and Contra-variance 3.Variance in C# 4.0 对interface和delegate 类型的支持 Statically checked definition-site variance Value types are always invariantIEnumerable<int> … Continue reading

Posted in .NET CLR | Leave a comment

Windows Installer CleanUp Utility

http://support.microsoft.com/kb/290301 如果不是被SilverLight1.0折腾到发疯.我也许会错过这个MS最好的工具.有了它我才终于装上了SilverLight2.0,终于可以看PDC 2008http://microsoftpdc.com/了.

Posted in Programming | Leave a comment

精辟!中国言论整理版(zt)收藏

1、永远不要对少部分有头脑、有责任心的人可以改变世界表示怀疑。——人类学家玛格利.米德 2、做一个好人,其所为不外乎是降低别人的人生成本。——鲍尔吉.原野 3、做五官端正的干部。百姓对干部的期望:手不伸、腿不懒、耳不偏、嘴不馋、眼不花。 4、上至总统,下至平民百姓,看起来需要面对很多人,但其实不然。每个人真正需要应付的不过也就是七八个人。把身边这些人应付好了,日子就太平了。这七八个人摆不平,日子就不好过。这就需要拿出你的全部人生智慧来应付。 ——刘震云 5、①科学家失败99次,一次成功,可能获得诺贝尔奖;政治家成功99次,一次失败,也许就身败名裂。②德国人和中国人都爱好哲学。德国人在没有问题的地方凿出问题,中国人在有问题的地方擦掉问题。凿出问题是为了分别事物,擦掉问题是为了进入无差别境界。③在中国做事,最好只走半步:早半步或迟半步。早半步可得风气之先,晚半步不冒无谓的风险。但不能早一步或晚一步。早一步成为被枪打的出头鸟,晚一步就会别人牵牛你拔桩;早一步花还未开,晚一步瓜已落去。④现实中缺少英雄的时候,媒体上的英雄就会增加;媒体上的阴暗面缩小的时候,现实中的阴暗面便已扩大。媒体是扫帚,它干净了,房子就脏了。 ——吴稼祥 当男人陪女人购物时,100%的女人专注于商品,20%的男人专注于价格,剩下的80%专注于其他女人。——男女之间最大的区别在于:女人一旦结婚就开始重视她的老公;而男人一旦结婚就开始忽略他的老婆。 当了干部后,个月学完高中课程;当了科长后,半年即大专毕业;当了处长后,只一年就拿到了本科文凭;当了局长后,又顶起一个硕士头衔;现在计划两年内载上博士帽——为了升任厅长。——邻居一孩子有此一说:理想的念书程序是先当官后学文化,向他老爸学习——这孩子还说,这样可以节约很多时间和学费。 知道“爱情”的人越来越多,知道“艾青”的人越来越少;知道“周迅”的人越来越多,知道“鲁迅”的人越来越少:知道“马克”的人越来越多,知道“马克.吐温”的人越来越少;知道“景岗山”的人越来越多,知道“井岗山”的人越来越少;知道“比尔.盖茨”的人越来越多,知道“保尔.柯察金”的人越来越少;知道“关之琳”的人越来越多,知道“卞之琳”的人越来越少;知道“就要发(918)”的人越来越多,知道“九一八”的人越来越少。 高贵而勤俭,婉约而坚强。聪慧的头脑让拮据的生活泛现浪漫,优雅的双手为无邪的童年描绘异彩。“在这个不完美的世界里,母亲是最完美的。” 心中没有阳光的人,看不到阳光的明媚;脸上没有微笑的人,也发现不了微笑的魅力。 不描写内心,专描写内分泌。     ――作家余华评价现在某些作家的作品 我把心给了你,身体给了他。     ――王菲新专辑《将爱》中《不留》一曲的歌词 要采访我,必须先和我上床;在床上能用多长时间,我就给你多长时间的采访。     ――北京某媒体一男记者在向木子美提出采访要求时得到的答复 你泡了吗?你漂了吗?你干了吗?     ――一则洗衣粉广告 你愿意和我睡吗?     ――一家公司的床垫广告 有谁能告诉我,怎么才能变得不那么出名?!     ――姚明在新书《姚明闯荡美利坚》的序言里抱怨盛名之累让他失去了平常人自在的生活方式 我们实在不知道在中国买春是一种犯罪行为,以为那儿也如其他地方可以轻易“完事”     ――大阪建筑公司老板解释在珠海组团嫖妓事件 美女就象胡椒面,哪里人气不旺就撒一点     ――一名中国城市居民评价美女商业促销 奶牛分公母吗?     ――中华小姐选大赛时,窦文涛的提问,小姐答:可能吧 我不想等,要的是现货。     ――被称为“现货”的中年成功男人正在成为年轻女性的抢手货 千万不要和中年男人谈情说爱。     ――一篇小女子随笔的标题。作者认为,谈情说爱太浪费时间,关键是要做 起码要让500年后的人知道,“包二奶”不是姓包的人家的二奶奶。     ――网民如此立场鲜明地支持将“包二奶”收入汉语辞典 “小姐”今天剩下的唯一可以安全通用并且值得信赖的含义,似乎只有“女人”了。     ――专栏作家沈宏非分析“小姐”一词进行了广泛深入的语用学分析后得出的结论 难道说女人因为这个工具,可以和男人一样站着小便,就可以说男人和女人平等了?     ――李银河爱谈到有人发明“女用小便导流器”时的看法 … Continue reading

Posted in 摘抄转贴 | Leave a comment

UpdatePanel工作原理

UpdatePanel依赖于服务端控件ScriptManager和客户端脚本对象PageRequestManager。 Submit被页面上的PageRequestManager截获, PageRequestManager会判断是传统提交还是异步提交,如果是异步提交,就使用xmlhttprequest来提交,提交的内容除了传统提交的form外,还包含一个自定义的http header “x-myajax”来通知server端这是一个异步提交. 然后和传统提交一样走完完整的生命周期    Init    Load State    Process Postback    Load    Postback Events    Save State    PreRender    Render    UnLoad在Render阶段,ScriptManager如果看到http header “x-myajax”标记,就会替换掉Page对象的输出方式,输出需要刷新的UpdatePanel中的内容和一些ViewState. 在收到服务端的处理结果之后,PageRequestManager会通过操作DOM对象来替换需要更新的代码片段。需要执行的JavaScript也会在此时传送到客户端执行. 异步请求的内容数据大小没有任何减少– 采集Form中所有<input />并发送– 包含ViewState应该尽可能减少客户端接受到的数据大小– 使用多个UpdatePanel包含多个部分– UpdateMode尽量不要设为Always

Posted in Web Development | Leave a comment

DI vs IoC

Wikipedia对依赖注入有如下描述: Dependency injection (DI) is a programming technique, sometimes also (incorrectly) referred to as inversion of control or IoC, even though, technically speaking, dependency injection specifically refers to a limited-scope implementation of a particular form of IoC. Dependency injection is … Continue reading

Posted in Design and Architect | Leave a comment

ASP.NET AJAX In-Depth: Object Inheritance[笔记]

From ASP.NET AJAX In-Depth: Object Inheritance http://weblogs.asp.net/stephenwalther/archive/2008/03/05/asp-net-ajax-in-depth-object-inheritance.aspx <script type="text/javascript">  function BaseControl()  {      this._propA = "BaseControl propA";      this._propB = "BaseControl propB";  }   BaseControl.prototype =  {      get_propA : function() {return this._propA;},      set_propA : function(value) {this._propA = value; },       get_propB : … Continue reading

Posted in Web Development | Leave a comment

SQL Server 2005 Management Studio安装失败

错误现象:SQL Server 2005安装后仅能看到"Configuration Tools", 解决方案:运行光盘上的安装程序I:\SQL Server x86\Tools\Setup\SqlRun_Tools.msi,安装"Documentation and Tutorials",但此时会提示错误:"在ADD_LOCAL 属性中指定的组件已安装"进入控制面板->添加删除软件选择"SQL Server 2005"->"Change",仅仅移除"Workstation Components",再次运行SqlRun_Tools.msi,Management Studio成功安装!

Posted in Programming | 1 Comment

海角7号

世外桃源般海边小镇,每个人物都是那么生动,那么与众不同,为了目标而努力从不妥协,喜宴后可以在夜色如画的海边,抚琴聊天直到天明,劣马性格的年轻人也被这里淳朴的气息浸染,在这里恋爱是如此自然. 拿高跟鞋砸你家玻璃,美丽的爱情原来要从势不两立开始,当从仇人的床上醒来,看他在灯光下的侧影,敌意从此化为情愫. 7篇日记,也是7封情书,那个已经辞世的诗人留下的文字不论现在的人如何争吵,和好,恋爱,只管向自己的学生倾诉着诀别后的相思之苦,他和她渐行渐远,剧中人物却越走越近,冥冥中,所有人一起看到了天边的彩虹 可爱的茂伯,小镇上的第一贝斯手,不知贝斯的头在哪边,认为贝斯弦剪去两根才如月琴般趁手,觉得自己最能唱…称不上国宝也够得上活宝.

Posted in Entertainment | 1 Comment

堆栈Debug

K~*kb 显示所有线程的调用堆栈   !DumpStackObjects(!dso)遍历寄存器和栈空间并列出有效的托管对象。!dso的输出形如:OS Thread Id: 0xdf8 (3576)ESP/REG  Object   Name044df134 00b35688 System.String    –044df220 00ca9314 System.Net.LazyAsyncResult044df224 00b4672c System.String    Hello044df234 00ca9314 System.Net.LazyAsyncResult044df25c 00ca941c System.Threading.ManualResetEvent044df260 00b4672c System.String    Hello044df27c 00b4672c System.String    Hello044df280 00ca8b24 System.Net.HttpWebRequest044df284 00ca9314 System.Net.LazyAsyncResult ESP/REG列显示栈指针或寄存器的值 注意会有一些对象是重复的,这是由于这个对象同时作为别的函数的参数 !clrstack显示当前线程的stack信息!clrstack -a 查看所有信息,包括参数和局部变量 !clrstack -l 查看局部变量 … Continue reading

Posted in Debug | Leave a comment

Table sorting with JavaScript closure

出自<Professional JavaScript For Web Developers> ch12 实现对HTML table排序的原理:把table的所有行对象放到一个Array中,调用Array.sort()方法,传入一个比较函数(comparison function:par1应该在par2之前,返回-1,par1应该在par2之后,返回1,相等返回0),对Array中的row排序,再把人row放回table中 function compareTRs(oTR1, oTR2) {    var sValue1 = oTR1.cells[0].firstChild.nodeValue;    var sValue2 = oTR2.cells[0].firstChild.nodeValue;    return sValue1.localeCompare(sValue2);} function sortTable(sTableID) {    var oTable = document.getElementById(sTableID);    var oTBody = oTable.tBodies[0];    var colDataRows = oTBody.rows;    var aTRs … Continue reading

Posted in Web Development | Leave a comment