ILove's Dev Home - 休息的时候不要忘记 别人还在奔跑

  博客园 :: 首页 :: 新随笔 :: 联系 ::  :: 管理 ::
  18 随笔 :: 5 文章 :: 237 评论 :: 5 Trackbacks

.Net Framework

     摘要: 要想玩转Asp.Net,就一定不能因为“C#已经为我们做了”就不去做进一步的了解。汽车厂商把零件都帮我们拼装好了,如果我们想在城市里遨游,只要知道车坏了之后打哪个电话就好了,连发动机摆在哪里长什么样子都不用知道;但追求速度的赛车手,需要配备专门的性能调教师,自己也要能够从声音里面听出车子是否运转的良好、问题在哪里。所以,不同的追求有不同的要求。  阅读全文
posted @ 2008-06-18 20:41 没有昵称 阅读(1935) | 评论 (22)  编辑

     摘要: 近期决定写一些关于Asp.Net的文集分享给大家,传播知识的同时也巩固提高一下自己的水平。
初步整理了一下,可以写的内容好多,目录列出来自己都吓了一跳。慢慢来吧,^_^

这个目录只是个草稿,在写的过程中随时会更改。每写完一篇文章我就会把相应的地址加链接到目录中去。写的顺序也不一定按照目录。

这份文集的主要目的是帮助Asp.Net开发人员从“熟悉Asp.Net”走向“熟练掌握Asp.Net”,因此难度介于之间。太简单的就不浪费博客园的硬盘了,更难的如果我知道就加进来,不知道的我也没法子,

下面是目录:

…………  阅读全文
posted @ 2008-06-18 19:19 没有昵称 阅读(1585) | 评论 (23)  编辑

     摘要: 前几天在看《.Net框架程序设计》的时候,好像记得书中有提到说每个对象在创建后都会有一个字段保存了一个内存地址,这个内存地址指向对象实际类型的方法表,其中维护了类型每个方法的签名以及他们的入口地址的对应关系。每次调用方法的时候会到这个表中去查找方法入口地址。而根据我之前对于程序的了解,只有虚函数才会需要保存在这个“函数指针表”中,而非虚方法因为在编译时就已经知道了函数入口地址的相对偏移量(因为确切的知道将要调用的是哪个类的哪个方法),所以最终生成的cpu call指令中可以直接得到函数入口地址(模块加载时的基地址加上偏移量就是实际的入口地址)。而虚方法在编译时无法知道具体调用的是哪个方法,所以才会用这个“虚函数指针表”来使系统能够在运行时获得要调用的是哪个方法。  阅读全文
posted @ 2008-04-24 01:11 没有昵称 阅读(1856) | 评论 (21)  编辑

     摘要: 自打使用.Net以来,他给我的印象就一直是:慢。不过这几天看了一下.Net程序运行时的原理,才明白了我们平时的.Net程序是为什么慢的,也明白了在某些情况下其实.Net程序运行起来也不比非托管程序慢。  阅读全文
posted @ 2008-04-17 01:35 没有昵称 阅读(4281) | 评论 (75)  编辑

     摘要: 我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:
1、假设现在是 2008-4-7 12:00:00.000,如果我调用一下 Thread.Sleep(1000) ,在 2008-4-7 12:00:01.000 的时候,这个线程会 不会被唤醒?
2、某人的代码中用了一句看似莫明其妙的话:Thread.Sleep(0) 。既然是 Sleep 0 毫秒,那么他跟去掉这句代码相比,有啥区别么?  阅读全文
posted @ 2008-04-07 14:45 没有昵称 阅读(2730) | 评论 (59)  编辑

     摘要: 在上一篇文章中,我们探讨了使用Thread类实现异步的方法。

在整个过程中,可以发现Delegate这个东西出现了很多次。而仔细研究Delegate,我们发现每一个Delegate类型都自动产生了Invoke、BeginInvoke、EndInvoke等方法。而BeginInvoke、EndInvoke这两个方法,我们马上就可以猜到这是用来实现异步的~~

那么我们现在就看一下怎样使用委托来实现异步。  阅读全文
posted @ 2008-04-06 20:09 没有昵称 阅读(2472) | 评论 (15)  编辑

     摘要: A Taste of AOP from Solving Problems with OOP and Design Patterns (Part III) zz  阅读全文
posted @ 2008-04-06 18:10 没有昵称 阅读(88) | 评论 (0)  编辑

     摘要: A Taste of AOP from Solving Problems with OOP and Design Patterns (Part II) zz  阅读全文
posted @ 2008-04-06 18:09 没有昵称 阅读(63) | 评论 (0)  编辑

     摘要: A Taste of AOP from Solving Problems with OOP and Design Patterns (Part I)   阅读全文
posted @ 2008-04-06 18:07 没有昵称 阅读(94) | 评论 (0)  编辑

     摘要: 通过RealProxy是最简单的方法,缺点是不能同时加入多个代理,否则会抛异常。
实现步骤:
1、实现RealProxy的继承类
2、实现应用上述实现的RealProxy类的ProxyAttribute
3、把上述实现的Attribute应用到ContextBoundObject实例上  阅读全文
posted @ 2008-04-06 18:04 没有昵称 阅读(194) | 评论 (2)  编辑

posted @ 2008-04-06 17:59 没有昵称 阅读(148) | 评论 (4)  编辑

     摘要: 在写程序的过程中,我们可能会需要对某些功能实现异步操作,比如记录调用日志等。

提到异步,我们最容易想到的就是多线程:我们可以启动另外一个线程,把一部分工作交给另外一个线程去执行,而当前线程继续去做一些更加急迫的事情。这里的“把一部分工作交给另外一个线程取执行”,是通过将要执行的函数的函数入口地址告诉另外一个线程来实现的,当新的线程有了函数的入口地址,就可以调用该函数。

我们先来看一下怎样使用C#中的Thread类来实现异步。
  阅读全文
posted @ 2008-04-06 17:52 没有昵称 阅读(2714) | 评论 (18)  编辑