.NET
文章平均质量分 80
flier_lu
这个作者很懒,什么都没留下…
展开
-
CLR 调试接口的架构与应用 [3] 调试事件
http://www.blogcn.com/user8/flier_lu/index.html?id=2042872 在上一节中简单介绍了 CLR 调试器的框架结构,其中提到 CLR 调试环境同时支持 Native 和 Managed 两种模式的调试事件。这一节将从整体上对调试事件做一个概括性的介绍。 首先看看 CLR 通过 ICorDebugManagedCallback原创 2004-07-07 20:01:00 · 932 阅读 · 0 评论 -
浅谈 C# 中的代码协同 (Coroutine) 执行支持
原文:http://www.blogcn.com/User8/flier_lu/index.html?id=3409568 几个月前我曾大致分析过 C# 2.0 中 iterator block 机制的实现原理,《C# 2.0 中Iterators的改进与实现原理浅析》,文中简要介绍了 C# 2.0 是如何在不修改 CLR 的前提下由编译器,通过有限状态机来实现 iterator blo原创 2004-08-22 23:30:00 · 1890 阅读 · 1 评论 -
在 C# 中处理结构内的数组
原文:http://www.blogcn.com/User8/flier_lu/index.html?id=3318394 在 C/C++ 代码中,大量掺杂着包括普通类型和数组的结构,如定义 PE 文件头结构的 IMAGE_OPTIONAL_HEADER 结构定义如下:以下内容为程序代码:typedef struct _IMAGE_DATA_DIRECTO原创 2004-08-22 23:29:00 · 2342 阅读 · 1 评论 -
ASP.NET 中 Session 实现原理浅析 [1] 会话的建立流程
http://www.blogcn.com/User8/flier_lu/index.html?id=3183314 HTTP 协议之所以能够获得如此大的成功,其设计实现的简洁性和无状态连接的高效率是很重要的原因。而为了在无状态的 HTTP 请求和有状态的客户端操作之间达到平衡,产生了服务器端会话 (Session) 的概念。客户端在连接到服务器后,就由 Web 服务器产生并维护一个客户原创 2004-08-22 23:23:00 · 1159 阅读 · 0 评论 -
用WinDbg探索CLR世界 [8] InternalCall 的使用与实现
原文:http://www.blogcn.com/User8/flier_lu/index.html?id=3270482 在使用 Reflector.NET 或者 Rotor 源码查看 BCL 库的实现时,经常会碰到一些被标记为 InternalCall 的方法。如 System.String 中用于获取字符串长度的 Length 属性,实现上就是调用被标记为 InternalCall原创 2004-08-22 23:28:00 · 1505 阅读 · 0 评论 -
ASP.NET 中 Session 实现原理浅析 [2] 状态管理器
原文:http://www.blogcn.com/User8/flier_lu/index.html?id=3213970 状态管理本来是一件很美好的事情,嘿嘿,只可惜总是有些厂商在实现的时候考虑得不那么周全。例如 MS 在 ASP 中的状态管理实现就比较烂,因为只实现了一个进程内的基于内存的状态管理,故而存在很多问题: 1.所有的 Session 数据都保存在 Web 服务的进程原创 2004-08-22 23:26:00 · 1222 阅读 · 0 评论 -
用WinDbg探索CLR世界 [6] AppDomain 的创建过程
原文:http://www.blogcn.com/User8/flier_lu/index.html?id=3024651 我们知道 CLR 中 Assembly 是在名为 AppDomain 的逻辑空间中被载入运行的,而 AppDomain 是介于操作系统层面进程和线程概念之间,同时具有线程的轻便和进程的封闭性,使用者可以通过 AppDomain.CreateDomain 创建新的 A原创 2004-08-22 23:21:00 · 1786 阅读 · 0 评论 -
用WinDbg探索CLR世界 [3] 跟踪方法的 JIT 过程
http://www.blogcn.com/blog/cool/main.asp?uid=flier_lu&id=1678453本来想按照 sos 的帮助文件上命令的分类逐步介绍 WinDbg 下使用 sos 调试 CLR 程序,但发现这样实在不够直观。索性改成根据我分析 CLR 的实际案例,step by step 介绍功能,这样结构上虽然混乱一点,但更加直观,也易于上手 :P前面两篇文章里原创 2004-04-22 14:46:00 · 1515 阅读 · 0 评论 -
用WinDbg探索CLR世界[1] - 安装与环境配置
http://flier_lu.blogone.net/?id=1270368 一直以来,我对CLR的分析都是基于MSDN、.NET Framework SDK自带文档和Rotor项目提供的源代码进行静态分析,辅以自己写的一些小例子或对Rotor的修修补补,来进行有限度的动态分析。虽然也用SoftIce跟踪过某些核心函数的机制,但感觉实在是太痛苦了,呵呵。 最近偶然之间发现我的偶像原创 2004-04-05 22:53:00 · 1237 阅读 · 0 评论 -
C# 2.0 中Iterators的改进与实现原理浅析
http://flier_lu.blogone.net/?id=1511638 C#语言从VB中吸取了一个非常实用的foreach语句。对所有支持IEnumerable接口的类的实例,foreach语句使用统一的接口遍历其子项,使得以前冗长的for循环中繁琐的薄记工作完全由编译器自动完成。支持IEnumerable接口的类通常用一个内嵌类实现IEnumerator接口,并通过IEnume原创 2004-04-05 22:56:00 · 859 阅读 · 0 评论 -
CLR 中匿名函数的实现原理浅析
http://flier_lu.blogone.net/?id=1397624CLR 中匿名函数的实现原理浅析 C# 2.0中提供了通过delegate实现匿名函数功能,能有效地减少用户的薄记代码工作,例如以下为引用: ...button1.Click += new EventHandler(button1_Click);...void button1_Click原创 2004-04-07 14:37:00 · 1087 阅读 · 0 评论 -
.NET 1.1中预编译ASP.NET页面实现原理浅析 [1] 自动预编译机制浅析
http://flier_lu.blogone.net?id=1544105.NET 1.1中预编译ASP.NET页面实现原理浅析 MS在发布ASP.NET时的一大功能特性是,与ASP和PHP等脚本语言不同,ASP.NET实际上是一种编译型的快速网页开发环境。这使得ASP.NET在具有开发和修改的简便性的同时,不会负担效率方面的损失。实现上ASP.NET与JSP的思路类似,引擎在第一次使原创 2004-04-07 16:26:00 · 1031 阅读 · 0 评论 -
用WinDbg探索CLR世界 [2] 线程
http://flier_lu.blogone.net/?id=1370342[2] 线程 在配置好WinDbg之后,我们载入一个CLR程序并执行至CLR被载入,然后开始我们的CLR探索之旅。 首先,使用!threads命令看看当前CLR中有哪些线程正在执行以下为引用: 0:004> !threadsThreadCount: 2UnstartedThread原创 2004-04-05 22:56:00 · 1003 阅读 · 0 评论 -
CLR 调试接口的架构与应用 [2] 调试框架
http://www.blogcn.com/user8/flier_lu/index.html?id=1894812 如 Don Box 在《.NET本质论 第1卷:公共语言运行库》一书的第10章中介绍, CLR 调试框架是一个由 CLR 提供的,面向工具开发商的,支持调试功能的最小功能集。与 JVM 的 JDI (Java Debug Interface)不同,CLR 调试框架不仅仅关注原创 2004-07-07 20:00:00 · 1139 阅读 · 0 评论 -
CLR 调试接口的架构与应用 [1] 背景资料
http://www.blogcn.com/user8/flier_lu/index.html?id=1819166 折腾 CLR 调试接口也有几周了,可是在将 C++ 代码移植到 C# 时总是有问题,直到刚刚才灵机一动有所突破,呵呵,总算可以开始写这个系列文章了。:D 虽然需要实际用到 CLR 调试接口的人可能非常少,但通过对 CLR 调试接口和 Profiler 接口的了解,可原创 2004-07-07 19:59:00 · 904 阅读 · 0 评论 -
用WinDbg探索CLR世界 [4] 方法的调用机制
http://www.blogcn.com/user8/flier_lu/index.html?id=1745355http://www.blogcn.com/user8/flier_lu/index.html?id=1745373http://www.blogcn.com/user8/flier_lu/index.html?id=1745407 Don Box在《.NET本质论 第1卷:原创 2004-07-07 19:56:00 · 937 阅读 · 0 评论 -
使用未公开关键字在 C# 中导入外部 printf 等参数数量可变函数
http://www.blogcn.com/user8/flier_lu/index.html?id=2602611http://www.blogcn.com/user8/flier_lu/index.html?id=2602647 C++ 语言因为缺省使用 cdecl 调用方式,故而可以很方便实现参数可变参数。详细的原理可以参考我另外一篇文章《The history of calling原创 2004-07-07 20:11:00 · 1812 阅读 · 0 评论 -
在 .NET 中获取 AD 上帐号密码过期时间
原文:http://www.blogcn.com/User8/flier_lu/blog/4371854.html .NET Framework 提供了 System.DirectoryServices 名字空间用于操作 AD 等支持 LDAP 接口的服务器,通过这组类我们能够很容易实现通过 AD 验证用户帐号,以及向 AD 查询域用户及其所在组的信息,是在 Web 应用中集成 AD 以实现原创 2005-01-31 13:03:00 · 3120 阅读 · 0 评论