.Net平台
文章平均质量分 75
tanliyoung
这个作者很懒,什么都没留下…
展开
-
Some amazing feature of .Net
(转)http://www.codeproject.com/KB/miscctrl/tips.aspx?df=100#tip8.2IntroductionThese are some tips for commonly faced problems in .NET . Some of these tips are mine and some of these i have got转载 2008-07-24 16:50:00 · 2401 阅读 · 0 评论 -
用WinDbg探索CLR世界 [4] 方法的调用机制之动态分析 - 下
用WinDbg探索CLR世界 [4] 方法的调用机制之动态分析 - 下 再回头看前面那个 C# 代码的例子,在 JIT 完成之后: 以下为引用: .method private hidebysig static void Main(string[] args) cil managed // SIG: 00 01 01 1D转载 2007-05-06 18:37:00 · 877 阅读 · 0 评论 -
用WinDbg探索CLR世界 [4] 方法的调用机制之静态结构
用WinDbg探索CLR世界 [4] 方法的调用机制之静态结构 Don Box在《.NET本质论 第1卷:公共语言运行库》的第6章里,详细地解说了 CLR 中方法地调用机制的原理;qqchen在其 BLog 上也有一篇不错的介绍 CLR 中方法调用分类的文章《CLR Drilling Down: The Overhead of Method Calls 》。但因为他们文章的目的不同,故而没转载 2007-05-06 18:36:00 · 835 阅读 · 0 评论 -
用WinDbg探索CLR世界 [3] 跟踪方法的 JIT 过程
用WinDbg探索CLR世界 [3] 跟踪方法的 JIT 过程 本来想按照 sos 的帮助文件上命令的分类逐步介绍 WinDbg 下使用 sos 调试 CLR 程序,但发现这样实在不够直观。索性改成根据我分析 CLR 的实际案例,step by step 介绍功能,这样结构上虽然混乱一点,但更加直观,也易于上手 :P 前面两篇文章里面分别介绍了 WinDbg 的调试配置和线转载 2007-05-06 18:35:00 · 1101 阅读 · 0 评论 -
struct和class区别的背后
结构与类共享几乎所有相同的语法,但结构比类受到的限制更多:1、尽管结构的静态字段可以初始化,结构实例字段声明还是不能使用初始值设定项。2、结构不能声明默认构造函数(没有参数的构造函数)或析构函数。3、结构的副本由编译器自动创建和销毁,因此不需要使用默认构造函数和析构函数。实际上,编译器通过为所有字段赋予默认值(参见默认值表)来实现默认构造函数。结构不能从类或其他结构继承。4、结构是转载 2007-05-06 16:25:00 · 695 阅读 · 0 评论 -
Microsoft .Net Remoting系列专题之三:Remoting事件处理全接触
Microsoft .Net Remoting系列专题之三:Remoting事件处理全接触 我写的.Net Remoting系列专题:Microsoft .Net Remoting系列专题之一:.Net Remoting基础篇Microsoft .Net Remoting系列专题之二:Marshal、Disconnect与生命周期以及跟踪服务前言:在Remoting中处理事转载 2007-04-27 15:34:00 · 728 阅读 · 0 评论 -
Microsoft .Net Remoting系列专题之二
Microsoft .Net Remoting系列专题之二 一、远程对象的激活在Remoting中有三种激活方式,一般的实现是通过RemotingServices类的静态方法来完成。工作过程事实上是将该远程对象注册到通道中。由于Remoting没有提供与之对应的Unregister方法来注销远程对象,所以如果需要注册/注销指定对象,微软推荐使用Marshal(一般译为编组)和Disconn转载 2007-04-27 15:33:00 · 572 阅读 · 0 评论 -
用WinDbg探索CLR世界 [6] AppDomain 的创建过程
用WinDbg探索CLR世界 [6] AppDomain 的创建过程 我们知道 CLR 中 Assembly 是在名为 AppDomain 的逻辑空间中被载入运行的,而 AppDomain 是介于操作系统层面进程和线程概念之间,同时具有线程的轻便和进程的封闭性,使用者可以通过 AppDomain.CreateDomain 传见新的 AppDomain。这样一来就出现了一个鸡生单还是蛋生鸡的问转载 2007-05-06 18:51:00 · 982 阅读 · 0 评论 -
用WinDbg探索CLR世界 [10] 透明代理实现原理浅析 - 静态结构
用WinDbg探索CLR世界 [10] 透明代理实现原理浅析 - 静态结构http://www.blogcn.com/User8/flier_lu/blog/4290857.html转载 2007-05-06 18:51:00 · 942 阅读 · 0 评论 -
Microsoft Win32 to Microsoft .NET Framework API Map
.NET Development (General) Technical ArticlesMicrosoft Win32 to Microsoft .NET Framework API Map Microsoft .NET Framework and Microsoft Visual Studio User Education TeamsMicrosoft Corporation转载 2007-05-06 18:44:00 · 2030 阅读 · 0 评论 -
用WinDbg探索CLR世界 [4] 方法的调用机制之动态分析 - 上
用WinDbg探索CLR世界 [4] 方法的调用机制之动态分析 - 上 在了解了方法表的物理结构后,我们接着分析方法的动态调用机制。 从方法的调用类型来分,CLR支持直接调用、间接调用和很少见的 tail call 模式。 直接调用最为常见,又可分为使用虚方法表的 callvirt 指令和不使用虚方法表的 call 和 jmp 指令。 间接调用稍微少见,转载 2007-05-06 18:37:00 · 727 阅读 · 0 评论 -
深入探索.NET框架内部了解CLR如何创建运行时对象
深入探索.NET框架内部了解CLR如何创建运行时对象 发布日期: 9/19/2005 | 更新日期: 9/19/2005Hanu KommalapatiTom Christian本文讨论: • SystemDomain, SharedDomain, and D转载 2007-05-05 00:13:00 · 850 阅读 · 0 评论 -
sscli 2.0 简介
Microsoft 发布了 sscli 2.0,所谓的 sscli 就是 Shared Source CLI。基本上是 .NET Framework 2.0 的 Microsoft 实现,当然是实际发布的 .NET Framework 2.0 的一个简化版本。sscli 2.0 中包含很多有趣的东西,包括: 1、vm - 包含了 CLI 核心实现,包括垃圾收集器、类装入器、类型系统、错误转载 2007-05-05 00:10:00 · 883 阅读 · 0 评论 -
.NET框架未公开的特性
.NET框架未公开的特性 ---------String类作者原文许多地方只是简要地讲述一下观点,不容易理解,译者为这些观点增加了一些论证,所有的论证都以Rotor包为依据,文中注明了它们在Rotor包中的位置,如果有不妥之处,欢迎指正。 这篇文章对.NET Framework的String类进行深入的分析研转载 2007-05-05 16:12:00 · 747 阅读 · 0 评论 -
Shared Source CLI 2.0 (Rotor) 源码研究1 Building Rotor
IntroductionShared Source CLI 2.0 (开发代号Rotor) 是微软.NET Framework 2.0的Shared Source实现版本。Shared Source是微软推出的源代码共享计划,可以在一定限制的情况下获得/使用源代码,详情可以参考Microsoft Shared Source Initiative主页:http://www.microsoft.com转载 2007-05-05 00:48:00 · 1392 阅读 · 1 评论 -
用WinDbg探索CLR世界 [8] InternalCall 的使用与实现
用WinDbg探索CLR世界 [8] InternalCall 的使用与实现 在使用 Reflector.NET 或者 Rotor 源码查看 BCL 库的实现时,经常会碰到一些被标记为 InternalCall 的方法。如 System.String 中用于获取字符串长度的 Length 属性,实现上就是调用被标记为 InternalCall 的 String.InternalLength转载 2007-05-06 18:52:00 · 2028 阅读 · 0 评论 -
如何使用nmake
哈哈,刚开始由于对nmake一点也不理解,一直把它放到程序的最后一步,结果刚刚才发现它的好处,真后悔没有第一步先研究nmake呀,。。下面是我在学习nmake时做的一些笔记,希望一些朋友有帮助。。============================================刚学习nmake的时候,第一件事当然是去查msdn的资料库,下面的链结是msdn中有关nmake的资料: 英文版转载 2007-05-11 15:53:00 · 4070 阅读 · 2 评论 -
用WinDbg探索CLR世界[1] - 安装与环境配置
用WinDbg探索CLR世界[1] - 安装与环境配置用WinDbg探索CLR世界[1] - 安装与环境配置[url]http://www.blogcn.com/user8/flier_lu/index.html?id=1270368&run=.0D9CAA6[/url] 一直以来,我对CLR的分析都是基于MSDN、.NET Framework SDK自带文档和Rotor项目提供的源代码进行转载 2007-05-06 18:25:00 · 944 阅读 · 0 评论 -
通过 C# 简化 APM
我曾一直赞扬异步编程模型 (APM) 的优点,强调异步执行 I/O 密集型操作是生产高响应和可伸缩应用程序及组件的关键。这些目标是可以达成的,因为 APM 可让您使用极少量的线程来执行大量的工作,而无需阻止任何线程。遗憾的是,使用 APM 构建典型的应用程序或组件有些难度,因此许多程序员不愿意去做。 有几个因素使得 APM 难以实现。首先,您需要避免状态数据驻留于线程的堆栈上,因为线程转载 2007-12-26 16:00:00 · 972 阅读 · 0 评论 -
管理对象生存期
虽然 Microsoft® .NET Framework 提供了一个托管执行环境,但谨慎使用资源、考虑生存期管理和编写正确解决这些问题的代码仍然十分重要。在本专栏中,我将开始帮助使用 .NET 或 COM 类的开发人员更透彻地理解生存期管理、识别可能陷入资源陷阱的情形以及掌握解决这些问题的方法。 需要注意的是,为了清晰起见,本专栏中显示的示例代码仅适用于单线程应用程序。用于 .NET转载 2007-12-26 15:17:00 · 962 阅读 · 0 评论 -
编写可靠的 .NET 代码
当我们谈论某样东西具有可靠性时,我们是指它值得信赖,而且可以预测。但是就软件而言,还必须具备其他重要属性,才可以说代码具有可靠性。 软件必须具有复原性,意思是说在出现内部和外部中断情况时,它仍然可以继续正常运行。它必须是可恢复的,以便它知道如何将自己恢复到先前已知的一致状态。软件必须可预测,这样它会提供及时的预期服务。它必须不可中断,意思是更改和升级都不会影响它的服务。最转载 2007-12-26 14:54:00 · 1069 阅读 · 0 评论 -
反射和泛型
由 于知道我热衷此道,一个朋友最近请我帮助她编写一个简单的工具,将她需要记录的新程序集里所有成员的可排序列表导出到 Microsoft® Excel® 中。该工具需要提供关于属性、方法、事件和接口的信息,并列出每个成员的所有参数。我以前研究过反射,所以觉转载 2007-12-26 14:20:00 · 1591 阅读 · 0 评论 -
CLR Inside Out: Marshaling between Managed and Unmanaged Code
Lets face it. The world is not perfect. Very few companies are developing entirely in managed code, and on top of that theres a lot of legacy unmanaged code out there you need to work with. How do转载 2007-12-26 13:26:00 · 1870 阅读 · 0 评论 -
发现并防止托管代码中出现内存泄漏
调试内存泄漏的应用程序 发现并防止托管代码中出现内存泄漏 James转载 2007-08-27 22:35:00 · 2147 阅读 · 0 评论 -
Tracing memory leaks in .NET applications with ANTS Profiler
This is a showcase review for our sponsors at CodeProject. These reviews are intended to provide you with information on products and services that we consider useful and of value to developers.转载 2007-08-28 00:00:00 · 1038 阅读 · 0 评论 -
MSDN关于如何实现Dispose
类型的 Dispose 方法应该释放它拥有的所有资源。它还应该通过调用其父类型的 Dispose 方法释放其基类型拥有的所有资源。该父类型的 Dispose 方法应该释放它拥有的所有资源并同样也调用其父类型的 Dispose 方法,从而在整个基类型层次结构中传播该模式。要确保始终正确地清理资源,Dispose 方法应该可以被多次安全调用而不引发任何异常。Dispose 方法应该为它处置的对象调转载 2007-05-26 21:26:00 · 1459 阅读 · 1 评论 -
net内存回收与Dispose﹐Close﹐Finalize方法
net内存回收与Dispose﹐Close﹐Finalize方法一. net的对象使用一般分为三种情况﹕1.创建对象2.使用对象3.释放对象二.创建对象1.创建对象实际分为两个步骤﹕变量类型宣告和初始化对象2.变量类型宣告(declare),如﹕ FileStream fs这行代码会在当前的变量作用域空间(栈或堆)里建立一个叫做fs的变量﹐至少四个字节吧(因为要存转载 2007-05-26 21:22:00 · 637 阅读 · 0 评论 -
为.NET程序批上WPF的绚丽外衣
为.NET程序批上WPF的绚丽外衣转载 2007-05-14 15:58:00 · 884 阅读 · 0 评论 -
Microsoft Silverlight正式发布
Microsoft Silverlight正式发布 微软在4月15号(美国时间)的NAB(National Associates of Broadcasters)会议上宣布WPF/E正式更名为Microsoft Silverlight。Silverlight是跨浏览器,跨平台(目前只支持Windows/Mac)的多媒体交互解决方案。Sliverlight的相关资源:·转载 2007-05-14 14:29:00 · 962 阅读 · 0 评论 -
蔡学镛详解WPF精粹:WPF VS Apollo
蔡学镛详解WPF精粹:WPF VS Apollo更新时间: 2007-03-28 作者: 蔡学镛关键词: 微软 RIA Vista Apollo WPF 在Vista时代,身为编程员,就一定要具备Vista桌面应用开发的能力。而开发Vista桌面应用,最重要的就是要会WPF。本系列文章整理WPF技术的精华,以连载的方式,介绍如何使用WPF编写微软Windows平台。 什么转载 2007-05-08 09:43:00 · 1180 阅读 · 0 评论 -
使用Windbg和SoS扩展调试分析.NET程序
使用Windbg和SoS扩展调试分析.NET程序 在博客堂的不是我舍不得 - High CPU in GC(都是+=惹的祸,为啥不用StringBuilder呢?)、 不是我舍不得 - .NET里面的Out Of Memory 看到很多人在问如何分析dump,所以就写下了这篇短文,抛砖引玉。一、安装 DebuggingToolsforWindows: 从以下 Microsoft 网站下载转载 2007-05-06 18:26:00 · 1667 阅读 · 0 评论 -
学习WPF一些必看的链接
学习WPF一些必看的链接 介绍 .NET Framework 3.0http://www.microsoft.com/china/MSDN/library/netFramework/netframework/intronetfx30.mspx?mfr=trueMicrosoft .NET Framework 3.0 的部署:http://www.microsoft.com/china/转载 2007-08-08 11:20:00 · 808 阅读 · 0 评论 -
关于“值类型的Finalize不会被调用?”
关于“值类型的Finalize不会被调用?” ninputer在这里(http://blog.joycode.com/ninputer/archive/2005/01/12/42866.aspx)有一篇blog提出了一个问题“值类型的Finalize不会被调用?”我曾经对Rotor,也就是sscli(Shared Source Common Language Infrastructu转载 2007-05-04 18:55:00 · 940 阅读 · 0 评论 -
深入理解.NET 的JIT编译方式
CLR只执行本机的机器代码。有两种方式产生本机的机器代码:实时编译(JIT)和预编译方式(产生native image)。下面,我想谈谈JIT。CLR使用类型的方法表来路由所有的方法调用。类型的方法表由多个入口项组成。每个入口项指向一个唯一的存根例程(stub routine)。初始化时,每个存根例程包含一个对于CLR的JIT编译器的调用(它由内部的PreStubWorker程序公开)。在JIT编转载 2007-05-04 11:54:00 · 1735 阅读 · 0 评论 -
.Net经典书籍
几本.Net的经典书籍 来自: 笔端 (深圳) 偶尔有朋友问我有什么关于 .NET的好书,我觉的书好不好除了质量最重要的还是看适不适合自己,有些人有很强的开发背景,有些是刚开始的新手,不能一足而论。所以我想把自己三年来阅读到质量还可转载 2006-12-12 14:29:00 · 2459 阅读 · 0 评论 -
如何理解装配件、元数据、PE文件和持久化 ?
装配件 在.NET框架平台中,装配件(Assembly)是一个崭新的概念。它是.NET框架应用程序的基础生成区块。它是一个功能的集合,可以被当作一个独立的实现单元被生成、版本化和发布。从本质上讲,装配件是一个逻辑上的动态链接库。作为一名开发人员,应当对装配件有如下了解:● 装配件包含CLR可以执行的程序代码中间代码包含在可执行模块文件(如EXE、DLL)中,而这些模块文件是组成装配转载 2006-12-08 16:12:00 · 1136 阅读 · 0 评论 -
如何重载操作符和转换操作符?
using System; class Complex{ public int i; public Complex(int i) { this.i = i; } //操作符重载,本质上是一个方法 public static Complex operator +(Complex c1, Complex原创 2006-10-27 10:00:00 · 698 阅读 · 0 评论 -
C#如何实现方法的版本控制?
具体内容可以参见《C#与.Net技术平台演练》一书中的11-7章节 版本控制。下面是事例代码:using System;class A{ public void F1() { Console.WriteLine("A.F1"); } public virtual void F2() { Console.WriteLine("A.F2");原创 2006-10-26 14:26:00 · 3075 阅读 · 0 评论 -
DotNet中典型的类型结构组成是什么?
using System;class SomeType{ //嵌套类 class SomeNestedType { } //常数,只读字段,静态读写字段 const Int32 SomeConstant=1; readonly Int32 SomeReadOnlyField=2; static Int32 SomeReadWriteField=3;原创 2006-10-25 15:16:00 · 844 阅读 · 0 评论 -
如何利用SDK来编译.Net程序?
用命令行学习C# 虽然手头上有Visual Studio.Net的安装光盘,但VS.Net实在是过于庞大,连MSDN一起装上有2G,安装要近两个小时。我只是初学C#而已,能编译程序就行。但 Charles Petzold的书上并没有提及如何用其他方式编译程序,而是直接推荐了VS.Net,呵呵,毕竟是微软的作家啊,肯定得推荐自家的产品咯。 根据微软的一贯作法,在推出原创 2006-10-10 11:19:00 · 1629 阅读 · 0 评论