bindsang

工作五年,长期从事于asp.net方面的编程,业余爱好VC编程,温和、谦虚、自律、自信、善于与人交往沟通
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2008年7月28日

摘要: 使用C#也好几年了,从一开始的囫囵接收,到后来积累到一定程度后再回过头去细细思考,这期间也发现了一些恍然大悟,矛塞顿开的情况.我.NET的事件触发的原理的认识就是这样走过来的. 在刚使用C#的时候(vs2003),没有多少参考资料,没有Reflector,只有一个随着IDE一起的MSDN,所有的东东基本上都需要从那上去去找,那个时候对.NET里面的事件一直有几个不明白的地方: 1. 事件本质上是一个委托,为什么在声明的时候没有给事件初始化,但是挂接事件的时候却可以直接用+=给事件增加一个处理函数,这个时候却不会报NullReference异常,而单独声明一个委托引用直接这样使却会报错? 2. 为什么基类声明的事件在派生类里没法直接调用触发事件? 3. 为什么在Framework中,对于一个没有密封(sealed)的类,每个声明的事件基本上都有一个On+事件名称的protected的函数(有时候还是虚函数)? 阅读全文

posted @ 2008-07-28 16:13 兵 阅读(416) 评论(0) 推荐(0) 编辑

摘要: CSS开发辅助工具:Internet Explorer Developer Toolbar 是一款基于IE的开发辅助工具。(简称为IE Developer Toolbar)   以前有个CSS开发辅助工具Web Developer插件是基于FF环境的,但是在许多开工调试中,主要还是面对IE,这款工具对于CSS辅助开发非常有益,大家可以试试它的功能。 阅读全文

posted @ 2008-07-28 11:43 兵 阅读(796) 评论(0) 推荐(0) 编辑

摘要: 在我们日常的编程当中,常常会遇到判断某个整数属于奇数还是偶数的情况。 一般我们都是用的取模的操作,前几天在网上看到了一种称作快速有效的判断做法,利用2进制进行判断。 阅读全文

posted @ 2008-07-28 11:42 兵 阅读(1084) 评论(1) 推荐(0) 编辑

摘要: 很多人首先会想从服务器缓存方面着手对程序进行优化,许多不同的服务器缓存方式都有他们自己的特点,像我曾经参与的一些项目中,根据缓存的命中率不同使用过 Com+/Enterprise Libiary Caching/Windows服务,静态文件等方式的服务器端缓存和 HTTP Compression技术,但客户端缓存往往却被人们忽略了,即使服务器的缓存让你的页面访问起来非常地快,但她依然需要依赖浏览器下载并输出,而当你加入客户端缓存时,会给你带来非常多的好处.因为她可以对站点中访问最频繁的页进行缓存充分地提高 Web 服务器的吞吐量(通常以每秒的请求数计算)以提升应用程序性能和可伸缩性。 阅读全文

posted @ 2008-07-28 11:40 兵 阅读(2678) 评论(2) 推荐(1) 编辑

摘要: Left Anti Semi Join Showplan 运算符 当第二个(底端)输入中没有匹配行时,Left Anti Semi Join 运算符返回第一个(顶端)输入中的每一行。如果 Argument 列内不存在任何联接谓词,则每行都是一个匹配行。 阅读全文

posted @ 2008-07-28 11:37 兵 阅读(354) 评论(0) 推荐(0) 编辑

摘要: C#作为一种纯面向对象的话言,为它编写的整个代码里面到处都离不开对象。一个对象的完整的生命周期是从开始分配空间到初始化,到使用,最后是销毁,使用的资源被回收。要想真正写出面高质量的代码,我们就得对这期间每一个阶段是怎么样一个状态,framework都做了些什么,我们又能够做些什么都要有些了解才行。一般来说大部分程序员对于一个创建好了的对象怎么使用都是比较清楚的,所以本文也就不想就这一部分做太多的说明,重点就集中开对象的创建和销毁这两个阶段,这也是程序员最容易范错误的阶断。本文首先来讲一讲对象成员的初始化,至于对象的释放和销毁,我想放到另外一篇文章里去讲。虽然本文是以C#2005 为例的,但推而广之,对于其它的基于CLS规范的语言应该也是一样的。 阅读全文

posted @ 2008-07-28 11:03 兵 阅读(3248) 评论(15) 推荐(0) 编辑

摘要: 一个多表查询的报表,三种不同的SQL解答,谁的性能更好呢 阅读全文

posted @ 2008-07-28 10:46 兵 阅读(401) 评论(0) 推荐(0) 编辑

摘要: 众所周知,在.NET下面专门有个Regex类是处理正则表达式的。本人几年的编程经历,多多少少也接触了一些正则表式处理字符串的问题,可以说对于写正则表达式还算是小有心得。 这几年一直在.NET下面编程,与Regex类接触的也挺多的,老早就发现RegexOptions选项中有很多是其它语言(如C/C++,JS)的正则表达式中没有的,像是Compiled,ExplicitCapture,RightToLeft,Singleline几个就比较特别的。而Singleline和Multiline这两项单从字面上的意思来说是“单行模式”和“多行模式”,具体什么意思我也不会多解释了吧,用正正则表达式的人都知道。在我的潜意识里一直认为这两项是互斥的,不能同时存在,一直在下意识的避开同时去使用。 阅读全文

posted @ 2008-07-28 10:43 兵 阅读(1077) 评论(0) 推荐(0) 编辑

摘要: IE7中表单提交后再用xmlhttprequest的send没有响应. 阅读全文

posted @ 2008-07-28 10:41 兵 阅读(720) 评论(0) 推荐(0) 编辑

摘要: Firebug插件提供了一整套web开发所必需的工具。从HTML的编写,到CSS样式表的美化调优,以及用javascript脚本开发,亦或 是Ajax应用,Firebug插件都会成为你的得力助手。所谓工欲善其事,必先利其器。在Web2.0的时代,言必称Ajax,动辄就是用户体验提升, 如果把Firebug工具用好,必能让你如虎添翼,将HTML、CSS、javascript整理得服服帖帖,从此成为web开发中的专家级人物。 阅读全文

posted @ 2008-07-28 10:40 兵 阅读(2960) 评论(0) 推荐(0) 编辑

摘要: 在IIS 6.0的Web园中,我们不必创建额外的Web网站,只要指定用于某个应用程序池的工作进程就可以了。具体的配置步骤是:打开应用程序池的“属性”对话框,转到“性能”页,在“Web园”下面的“最大工作进程数”输入框中输入进程数量,如图八。当服务器的负载较小,不需要额外的工作进程时,IIS 6.0在一定的时间后(默认20分钟,可配置)自动缩减实际的工作进程数量如果负载变大,需要额外的工作进程,IIS 6.0再次增加工作进程数量。这一切操作都自动进行,不需要管理员干预。 阅读全文

posted @ 2008-07-28 10:24 兵 阅读(1414) 评论(0) 推荐(0) 编辑

摘要: 一起来看看有关应用程序池的一些问题。应用程序池的“属性”对话框有四页——回收,性能,运行状况,标识,如图六所示。在这些选项页中,最引人注目的恐怕就是 “回收”页,使用该选项页可以管理工作进程的回收。在工作进程隔离模式中,IIS可以配置成定期重新启动应用程序池中的工作进程,从而更好地管理那些的工作进程。这确保了池中的应用程序运行正常,并且可以恢复丢失的系统资源。为了回收工作进程,失败工作进程接收请求的能力将被限制,直到它处理完存储在请求队列中的所有剩余请求。为了排出当前请求,可以给予进程配置限制。同一命名空间组的替换工作进程在旧的工作进程停止前启动,从而防止服务中断。旧的进程完成其未决的请求,然后正常关闭,或者如果在达到了配置的时间限制、请求数、设置的时间计划,或当达到指定的内存用量限制后仍没有关闭,则明确地终止进程。默认情况下,应用程序池每隔1740分钟(29小时)回收一次。 阅读全文

posted @ 2008-07-28 10:22 兵 阅读(2189) 评论(1) 推荐(1) 编辑

摘要: 应用程序池呢?这是微软的一个全新概念:应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置。因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响 阅读全文

posted @ 2008-07-28 10:18 兵 阅读(11570) 评论(0) 推荐(0) 编辑

摘要: 本人现在长期从事于.NET下的开发,因为工作的关系,间断的做过一些C++,DELPHI的程序,对后两者的程序语言有一定的了解,因此在平时也经常遇到有人问我关于C#和另外两种语言相比有哪些特点。我所了解的其中很大一个特点就是C#里没有指针,所有的对象全部通过引用来访问。引用的类型之间不能随便进行转换,避免了程序运行过程中出现的转换可能发生的问题(例如把一个整型转成一个指针进行访问等类似的潜在危险)。普能对象可以通过指针来引用,可是对于C++,DELPHI中的函数指针作为参数传送这样的函数调用形式在C#里面又应该怎么来表示呢。答案就是Delegate。同C++/DELPHI 用函数指针来实现事件(Event)和回调函数类似,在C#中是通过Delegate来实现。 阅读全文

posted @ 2008-07-28 10:14 兵 阅读(2231) 评论(5) 推荐(0) 编辑

摘要: MSDN Library for Visual Studio 2008 下载地址 阅读全文

posted @ 2008-07-28 10:12 兵 阅读(1313) 评论(1) 推荐(0) 编辑

摘要: 在2008中,重点提一下里面的JS智能感知功能,通过加入类似C#的XML注释格式可以让IDE做到对JS的智能感知,这是一个很有用的功能,基本上再也不用一个一个的去找那一大堆的难以记住的JS函数和参数了。可是我在使用的时候发现了一个问题,就是调用同一个文档(包括JS和html)中的函数,最多只是列出函数声明的时候的参数表,怎么也不会出函数的注释内容和参数的注释内容,但是一但把被调用的函数移到另一个JS文件中,并在调用的文件中加入引用注释,就可以正常显示。。。 阅读全文

posted @ 2008-07-28 10:10 兵 阅读(443) 评论(0) 推荐(0) 编辑

摘要: 网上现在很多JS的编辑器都提供了对JS代码的Intellisense支持,不过这只是部分支持,仅限于单个函数的支持。对于现在网上比较流行的AJAX编程,JS的面向对象的编程,大多数都用到了命名空间的型式来组织代码,或者是以prototype的形式来定义类型,这种代码组织形式在一般的JS编辑器里面就无能为力了,但是在VS2008的编辑器里照样可以正确的提示出来,这点我认为是最爽的。不过试了几次发现有个小问题是当被引用的JS文件发生改动的时候,在当前JS文件的提示中不能及时的反应出来,有些延迟。不知因为版本的问题还是我的机了太慢了(R60中的极品呀) 阅读全文

posted @ 2008-07-28 10:04 兵 阅读(1431) 评论(0) 推荐(0) 编辑

摘要: 今天终于有时间下载VS2008team suite版了里面的js脚本编辑器,号称是全面支持智能感知和函数描述,参数说明,按帮助给的方式试了一下,觉得还不错,连ajax写的希奇古怪的js脚本都可以正常提示出来顺便搭配使用一下DOTNET Framework的开源代码 阅读全文

posted @ 2008-07-28 09:41 兵 阅读(636) 评论(0) 推荐(0) 编辑

摘要: 抽象类和接口是编程语言中的两种定义抽象类的方式,它们之间有很大的相似性。但是对于它们的选择却又往往反映出对于问题领域中的概念本质的理解、对于设计意图的反映是否正确、合理,因为它们表现了概念间的不同的关系(虽然都能够实现需求的功能)。这其实也是语言的一种的惯用法 阅读全文

posted @ 2008-07-28 09:32 兵 阅读(298) 评论(0) 推荐(0) 编辑

摘要: 很久以前就知道面向对象设计有一些公认的基本原则,可都是零零碎碎的了解一部分,虽然在实践的过程中也有意识的用到了一些,可是从来没有系统的总结过,这是我从网上找到的比较详细的介绍,就当是读书笔记吧 阅读全文

posted @ 2008-07-28 09:29 兵 阅读(777) 评论(2) 推荐(0) 编辑