Category Archives: .NET

C# 3.0 一行求方差

某python程序员说用C#求方差需要五十行。于是我试了试 pythondef variance (*l):      return sum([(i – sum(l) * 1.0 / len(l)) ** 2 for i in l]) / len(l) C# Func<List<double>, double> variance = numbers => (from n in numbers select Math.Pow((n – numbers.Sum() / numbers.Count), 2)).Sum() / numbers.Count; … Continue reading

Posted in .NET | Leave a comment

.NET 点滴 — ADO.NET Type Conversion

3/9/2006, 8:06 PM Arrix Type conversion I’ve been happy with the constructor public SqlParameter (string parameterName,Object value) since I started programming .NET. But the other day, when I passed the literal 0 as the 2nd parameter, the Value was not … Continue reading

Posted in .NET | 3 Comments

怀疑WebConfigurationManager.GetSection有Bug

  环境: Windows Server 2003 Enterprise Edition with SP1 Microsoft .NET Framework v2.0.50727 Microsoft Visual Studio 2005 Version 8.0.50727.42 (RTM.050727-4200)   一句话摘要:System.Web.Configuration.WebConfigurationManager.GetSection的返回值不能cast成对应的类型,怀疑其返回类型不正确,是bug。估计System.Configuration.ConfigurationManager.GetSection有类似问题,不过没有测试过。   System.Web.Configuration.WebConfigurationManager静态类提供了操作Web Application配置文件的很多实用方法。 WebConfiguration.GetSection用于返回一个ConfigurationSection,很奇快MSDN里面说其返回值是Object,既然用于返回ConfigurationSection,为何要用Object作为返回类型而不返回ConfigurationSection类型?System.Configuration.Configuration.GetSection就返回ConfigurationSection。 文档里面说要将返回值Cast成section的实际类型,还推荐使用as:  "Notes to Implementers The return value must be cast to the expected configuration … Continue reading

Posted in .NET | 4 Comments

Visual Studio 2005 IDE中测试程序速问题

忙了大半天,总算是把beta卸了,2003也卸了,装好了2005 Pro版RTM。 立刻把DigitalImageProcessing的项目转到VS2005下。 结果没兴奋多久,发现在IDE里调程序慢得不行。 追查原因,发现是Gray8bppImage类在拖速度,这个类将一个Bitmap的像素一一转换为灰度,复制到一个byte[,]里。郁闷之余,离开IDE直接双击Debug目录下的exe执行,完全正常,速度满意。后来用Release试,结果一样。初步判定,VS2005 IDE里测试某些程序时,速度和直接运行相差极大。 注:Ctrl+F5(Start Without Debugging)没有此问题。 —————————————— 测试环境 AthlonXP 2500+ oc 3200+  512MB DDR400 Dual Channel Windows Server 2003 with SP1 and Oct 2005 updates installed .NET Framework 2.0.50727 Visual Studio 2005 8.0.50727.42 RTM   测试方法,用DateTime.Now取执行开始和结束时间,相减得TimeSpan,以毫秒显示耗时。为了方便,没有采用多次测试取平均,下面给出典型结果,单位为毫秒。 ————–Test1——————— … Continue reading

Posted in .NET | 6 Comments

用一张表存贮树形结构/Tree Structure in a Table

一看图便知,这是要表示树形结构。这是数据库设计中的一个基本技法。 我在数据库设计方面确实缺乏经验。微软Duwamish7数据库中的这个表,用IsLeaf来标识叶子,省得用循环来判断是否还有子节点,大大提高效率。想起我以前写的一个类似的……真是惭愧*_* 基础是最重要的,方法才是真正的价值所在。任何没有基础的技术,例如没有OO思想就直接上C#,不懂美术就直接玩Photoshop,都是筑高台于浮沙,必将走向大溃败。 不要因为有了GDI就对Bresenham不屑一顾。 科技一词,轻科学,重技术。通常科学是基础研究,而技术是热门领域。软件开发人员的技术要求固然很高,然而理论的东西才是根基,决定你是一个建筑师还是泥瓦匠。 —————————————————————————— 创造的神秘,有如夜间的黑暗--是伟大的。而知识的幻影却不过如晨间之雾。The mystery of creation is like the darkness of night–it is great.Delusions of knowledge are like the fog of the morning.

Posted in .NET | 1 Comment

翻译: Script Callbacks in ASP.NET 2.0 by Dino Esposito

为什么翻译? 因为有约稿,须向组织交篇技术文章。然而近半年几乎没有研究什么微软技术,只好翻出以前别人推荐的一篇文章来翻译。时间紧迫,匆匆完成。 ————————————————————————————- ASP.NET 2.0中的脚本回调(Script Callback) 原作者:Dino Esposito 出处:codeguru http://www.codeguru.com/columns/Experts/article.php/c9321/ 发表时间:2005-2-28 翻译:Arrix <arrix@163.com>          让我们面对这个事实吧:Web开发人员愿意付出一切来换取一种可以让他们避免页面刷新的开发工具。想想这个常见的情景:你在一个ASP.NET页面上添加了一个grid控件(control)用来显示用户导航栏。每当用户为了显示几行新的数据而点击时,页面将回传(postback)服务器,由服务器处理后又原封不动地重现(除了grid控件(control)中的几行新数据)。这个过程导致了严重的性能问题,尤其是对于复杂的大页面。开发者们不禁要问:为什么每次处理用户事件都非要下载50Kb的内容(而且还得上传其中的相当一部分同样多次)?        不用回传(postback)整个页面就能上传客户端数据是web开发者们一个期待已久的梦想。理想情况下,他们应该能触发客户端代码调用服务器来处理事件,并用返回的数据仅仅更新页面中受影响的部分。        ASP.NET 1.x 以及传统的 ASP 都可以实现这个功能,但开发人员必须使用ActiveX控件(ActiveX control)或者至少是Java小程序(Java applet)来做中介(intermediary)。这种中介(intermediary)的作用是接收客户端脚本的调用,并建立一个并行而不被用户察觉的连接到某个服务器页面。服务器页面根据接收到的输入产生相应输出。输出经连接返回到客户端,客户端便可通过DHTML对象模型(Dynamic HTML object model)来更新页面显示。        ASP.NET 2.0 抽象了建立服务器连接并解析返回数据的逻辑。ASP.NET 2.0中的脚本回调(script callback)提供了一种成熟而立即可用的机制,从而大大简化了上面的过程。更为重要的是,脚本回调(script callback)隐藏了很多实现细节并且帮我们解决了一大堆浏览器兼容性问题。   使用脚本回调(script callback)的要求        … Continue reading

Posted in .NET | 1 Comment