
你必须知道的.NET
你必须知道的.NET
sinolover
完成项目,就要软硬兼施
展开
-
人生的抉择—aspx、ashx、asmx文件处理请求效率比较
总结:ashx:只是实现IHttpHandler接口aspx:public class Page : TemplateControl, IHttpHandler而TemplateControl是:abstract class TemplateControl : Control, INamingContainer, IFilterResolutionService所以aspx是重型类,所...原创 2020-02-18 07:47:58 · 1159 阅读 · 0 评论 -
[你必须知道的.NET]第三十五回,判断dll是debug还是release,这是个问题
问题的提出晚上翻着群里的聊天,发现一个有趣的问题:如何通过编码方式来判断一个dll或者exe为debug build还是release build?由于没有太多的讨论,所以我只好自己找点儿办法,试图解决这个问题,为夜生活带点刺激。于是,便有了本文的探索和分析。当然,为了充分的调动起大家的主意,省去不必要的google操作,我觉得有必要对Debug和Release两种模式的异同进行一点提纲...原创 2020-01-20 16:26:42 · 750 阅读 · 0 评论 -
[你必须知道的.NET]第三十四回,object成员,不见了!
在.NET世界了,object是公认的造物主,其麾下的7大成员,个顶个的横行在任何系统的任何代码角落。public class Object{ public Object(); public virtual bool Equals(object obj); public static bool Equals(object objA, object objB); ...原创 2020-01-20 16:25:36 · 261 阅读 · 0 评论 -
[你必须知道的.NET]第三十三回,深入.NET 4.0之,Lazy<T>点滴
对象的创建方式,始终代表了软件工业的生产力方向,代表了先进软件技术发展的方向,也代表了广大程序开发者的集体智慧。以new的方式创建,通过工厂方法,利用IoC容器,都以不同的方式实现了活生生实例成员的创生。而本文所关注的Lazy<T>也是干这事儿的。不过,简单说来,Lazy<T>要实现的就是按“需”创建,而不是按时创建。我们往往有这样的情景,一个关联对象的创建需要较大的开...原创 2020-01-20 16:24:43 · 224 阅读 · 0 评论 -
[你必须知道的.NET]第三十二回,,深入.NET 4.0之,Tuple一二
Tuple,是函数式编程的概念之一,早见于Elang、F#等动态语言。不过,我第一次听说Tuple还早在2005年园子的Ninputer大牛提出在.NET 2.0实现Tuple的基本想法,我们可以通过以下地址仰慕当时的历史片段:探讨.NET 2.0中Tuple的实现方法由此可见,Tuple不是.NET 4.0的创造发明,但却是C#趋于函数式编程概念的必要补充。那么,我们首先来看看,什么是Tu...原创 2020-01-20 16:24:02 · 267 阅读 · 0 评论 -
[你必须知道的.NET]第三十一回,深入.NET 4.0之,从“新”展望
总体来说,这是一篇介绍性的文章,不会涉及过多技术细节和研究过程。但是,作为拉开序幕的第一页,本文以提纲挈领的方式展开对.NET 4.0的初次体验。从What’s new的角度,开始我对.NET 4.0新特性的探索之旅。既然是介绍,那么首先给出导航式的链接是必要而必须的,因为一篇小小的篇幅却是难以交代全面What’s new in details,所以看官尽情各取所需吧:Visual Studi...原创 2020-01-20 16:23:36 · 323 阅读 · 0 评论 -
[你必须知道的.NET]第三十回:.NET十年(下)
引言语言是程序开发者行走江湖的手上利器,各大门派的高手在论坛、博客为了自家门派争吵不已早是技术世界中的亮丽风景,虽多少为刚刚踏入江湖的新手提供了思考的素材,但也同时迷惑了初出茅庐的前行方向。本文不欲计较门派的高下,旨在明辨技术的真谛,这就是.NET平台下的开发利器:C#语言,并从其变迁的进程中对于.NET技术发展把玩一番。在下篇,我们将从历史走来,对.NET的未来做个展望性的了解,具体...原创 2020-01-20 16:22:05 · 268 阅读 · 0 评论 -
[你必须知道的.NET]第二十九回:.NET十年(上)
引言语言是程序开发者行走江湖的手上利器,各大门派的高手在论坛、博客为了自家门派争吵不已早是技术世界中的亮丽风景,虽多少为刚刚踏入江湖的新手提供了思考的素材,但也同时迷惑了初出茅庐的前行方向。本文不欲计较门派的高下,旨在明辨技术的真谛,这就是.NET平台下的开发利器:C#语言,并从其变迁的进程中对于.NET技术发展把玩一番。在上篇,我们走在历史,对.NET的过去尤其是c#语言做以回顾,具...原创 2020-01-20 16:21:35 · 352 阅读 · 0 评论 -
[你必须知道的.NET]第二十八回:说说Name这回事儿
1 缘起老赵在谈表达式树的缓存(2):由表达式树生成字符串中提到,在描述Type信息时讨论FullName或者AssemblyQualifiedName提供完整的Type信息,虽是小话题,但却是值得有聊的话题。在.NET中反应一个Type名称信息的有以下三个属性,分别是:Name,获取当前成员的名称。 FullName,获取Type 的完全限定名,包括Type的命名空间,但不包括程序集。...原创 2020-01-19 16:13:52 · 474 阅读 · 0 评论 -
[你必须知道的.NET]第二十七回:interface到底继承于object吗?
说在,开篇之前 在.NET世界里,我们常常听到的一句话莫过于“System.Object是一切类型的根,是所有类型的父类”,以至于我在《你必须知道的.NET》8.1节 以“万物归宗:System.Object”这样的title为System.Object授予至高荣誉。所以,基于这样的观点就有了下面这句“接口是否也继承于System.Object?”,事实上这正是今天在技术群里小小讨论的一个插曲...原创 2020-01-19 16:13:02 · 674 阅读 · 0 评论 -
[你必须知道的.NET]第二十六回:认识元数据和IL(下)
说在,开篇之前 书接上回:第二十四回:认识元数据和IL(上),第二十五回:认识元数据和IL(中) 我们继续。 终于到了,说说元数据和IL在JIT编译时的角色了,虽然两个回合的铺垫未免铺张,但是却丝毫不为过,因为只有充分的认知才有足够的体会,技术也是如此。那么,我们就开始沿着方法调用的轨迹,追随元数据和IL在那个神秘瞬间所贡献的力量吧。 ...原创 2020-01-19 16:11:21 · 308 阅读 · 0 评论 -
[你必须知道的.NET]第二十五回:认识元数据和IL(中)
说在,开篇之前 书接上回[第二十四回:认识元数据和IL(上)],我们对PE文件、程序集、托管模块,这些概念与元数据、IL的关系进行了必要的铺垫,同时顺便熟悉了以ILDASM工具进行反编译的基本方法认知,下面是时候来了解什么是元数据,什么是IL这个话题了,我们继续。 很早就有说说Metadata(元数据)和IL(中间语言)的想法了,一直在这篇开始才算脚踏实地的对这两个阶级兄弟投去些细关怀...原创 2020-01-19 16:10:37 · 369 阅读 · 0 评论 -
[你必须知道的.NET]第二十四回:认识元数据和IL(上)
说在,开篇之前 很早就有说说Metadata(元数据)和IL(中间语言)的想法了,一直在这篇开始才算脚踏实地的对这两个阶级兄弟投去些细关怀,虽然来得没有《第一回:恩怨情仇:is和as》那么迅速,但是Metadata和IL却是绝对重量级的内容,值得我们在任何时间关注,本文就是开始。 ...原创 2020-01-19 16:09:36 · 282 阅读 · 0 评论 -
[你必须知道的.NET]第二十三回:品味细节,深入.NET的类型构造器
1 引言今天Artech兄在《关于Type Initializer和 BeforeFieldInit的问题,看看大家能否给出正确的解释》一文中让我们认识了一个关于类型构造器调用执行的有趣示例,其中也相应提出了一些关于beforefieldinit对于类型构造器调用时机的探讨,对于我们很好的理解类型构造器给出了一个很好的应用实践体验。作为补充,本文希望从基础开始再层层深入,把《关于Type ...原创 2020-01-19 16:07:18 · 241 阅读 · 0 评论 -
[你必须知道的.NET]第二十二回:字符串驻留(上)---带着问题思考
走钢丝的人,在刺激中体验快感。带着问题思考,在问题上迸发火花。或者给问题以答案,或者给答案以问题,你可能永远无法看清全部,但是总能从一点突破很多。事实的关键就在于面对问题,我该如何思考?String Interning(字符串驻留)就是这样一个值得思考的话题,带着问题思考,我们至少要理清以下几个问题:什么是string? 什么是字符串驻留? 字符串驻留的运行机制及执行过程? 字符...原创 2020-01-19 16:05:25 · 379 阅读 · 0 评论 -
[你必须知道的.NET]第二十一回:认识全面的null
说在,开篇之前 null、nullable、??运算符、null object模式,这些闪亮的概念在你眼前晃动,我们有理由相信“存在即合理”,事实上,null不光合理,而且重要。本文,从null的基本认知开始,逐层了解可空类型、??运算符和null object模式,在循序之旅中了解不一样的null。 你必须知道的.NET,继续全新体验,分享更多色彩。 ...原创 2020-01-17 10:12:42 · 489 阅读 · 0 评论 -
[你必须知道的.NET]第二十回:学习方法论
本文,源自我回答刚毕业朋友关于.NET学习疑惑的回复邮件。 本文,其实早计划在《你必须知道的.NET》写作之初的后记部分,但是因为个中原因未能如愿,算是补上本书的遗憾之一。 本文,作为[《你必须知道的.NET》]系列的第20回,预示着这个系列将开始新的征程,算是[你必须知道的.NET]2.0的开始。 本文,作为一个非技术篇章,加塞儿到《你必须知道的.NET》队伍中...原创 2020-01-17 09:51:20 · 323 阅读 · 0 评论 -
[你必须知道的.NET]第十九回:对象创建始末(下)
本文将介绍以下内容:对象的创建过程 内存分配分析 内存布局研究接上回[第十八回:对象创建始末(上)],继续对对象创建话题的讨论>>>2.2托管堆的内存分配机制引用类型的实例分配于托管堆上,而线程栈却是对象生命周期开始的地方。对32位处理器来说,应用程序完成进程初始化后,CLR将在进程的可用地址空间上分配一块保留的地址空间,它是进程(每个进程可使用4G...原创 2020-01-17 09:50:13 · 277 阅读 · 0 评论 -
[你必须知道的.NET]第十八回:对象创建始末(上)
本文将介绍以下内容:对象的创建过程 内存分配分析 内存布局研究1.引言了解.NET的内存管理机制,首先应该从内存分配开始,也就是对象的创建环节。对象的创建,是个复杂的过程,主要包括内存分配和初始化两个环节。例如,对象的创建过程可以表示为:FileStreamfs =newFileStream(@"C:"temp.txt",FileMod...原创 2020-01-17 09:46:52 · 202 阅读 · 0 评论 -
[你必须知道的.NET]第十七回:貌合神离:覆写和重载
本文将介绍以下内容:什么是覆写,什么是重载 覆写与重载的区别 覆写与重载在多态特性中的应用1.引言覆写(override)与重载(overload),是成就.NET面向对象多态特性的基本技术之一,两个貌似相似而实则不然的概念,常常带给我们很多的误解,因此有必要以专题来讨论清楚其区别,而更重要的是关注其在多态中的应用。在系列中,我们先后都有关于这一话题...原创 2020-01-17 09:45:23 · 227 阅读 · 0 评论 -
[你必须知道的.NET]第十六回:深入浅出关键字---using全接触
本文将介绍以下内容:using指令的多种用法 using语句在Dispose模式中的应用1.引言在.NET大家庭中,有不少的关键字承担了多种角色,例如new关键字就身兼数职,除了能够创建对象,在继承体系中隐藏基类成员,还在泛型声明中约束可能用作类型参数的参数,在[第五回:深入浅出关键字---把new说透]我们对此都有详细的论述。本文,将把目光转移到另外...原创 2020-01-17 09:42:57 · 410 阅读 · 0 评论 -
[你必须知道的.NET]第十五回:继承本质论
本文将介绍以下内容:什么是继承? 继承的实现本质1. 引言关于继承,你是否驾熟就轻,关于继承,你是否了如指掌。本文不讨论继承的基本概念,我们回归本质,从编译器运行的角度来揭示.NET继承中的运行本源,来发现子类对象是如何实现了对父类成员与方法的继承,以最为简陋的示例来揭示继承的实质,阐述继承机制是如何被执行的,这对于更好的理解继承,是必要且必然的。2. 分析...原创 2020-01-17 09:39:09 · 188 阅读 · 0 评论 -
[你必须知道的.NET]第十四回:认识IL代码---从开始到现在
本文将介绍以下内容:·IL代码分析方法·IL命令解析·.NET学习方法论1.引言自从『你必须知道.NET』系列开篇以来,受到大家很多的关注和支持,给予了anytao巨大的鼓励和动力。俱往昔,我发现很多的园友都把目光和焦点注意在如何理解IL代码这个问题上。对我来说,这真是个莫大的好消息,因为很明显我们的思路慢慢的从应用向底...原创 2020-01-16 15:06:08 · 451 阅读 · 0 评论 -
[你必须知道的.NET]第十三回:从Hello, world开始认识IL
本文将介绍以下内容:IL代码分析方法 Hello, world历史 .NET学习方法论1.引言1988年Brian W. Kernighan和Dennis M. Ritchie合著了软件史上的经典巨著《The C programming Language》,我推荐所有的程序人都有机会重温这本历史上的经典之作。从那时起,Hello, world示例就作为了几乎所有实践型程序...原创 2020-01-16 15:05:19 · 493 阅读 · 0 评论 -
[你必须知道的.NET]第十二回:参数之惑---传递的艺术(下)
本文将介绍以下内容:按值传递与按引用传递深论 ref和out比较 参数应用浅析接上篇继续,『第十一回:参数之惑---传递的艺术(上)』4.2 引用类型参数的按值传递当传递的参数为引用类型时,传递和操作的是指向对象的引用,这意味着方法操作可以改变原来的对象,但是值得思考的是该引用或者说指针本身还是按值传递的。因此,我们在此必须清楚的了解以下两个最根本的问题:引用类型参数的按...原创 2020-01-16 15:04:48 · 191 阅读 · 0 评论 -
[你必须知道的.NET]第十一回:参数之惑---传递的艺术(上)
本文将介绍以下内容:按值传递与按引用传递深论 ref和out比较 参数应用浅析1.引言接上回《第九回:品味类型---值类型与引用类型(中)-规则无边》中,对值类型和引用类型的讨论,其中关于string类型的参数传递示例和解释,引起园友的关注和讨论,可谓一石激起千层浪。受教于装配脑袋的深切指正,对这一概念有了相当进一步的了解,事实证明是我错了,在此向朋友们致歉,同时非常感谢...原创 2020-01-16 15:04:11 · 224 阅读 · 0 评论 -
[你必须知道的.NET]第十回:品味类型---值类型与引用类型(下)-应用征途
本文将介绍以下内容:类型的基本概念 值类型深入 引用类型深入 值类型与引用类型的比较及应用[下载]:[类型示例代码]1.引言值类型与引用类型的话题经过了两个回合([第八回:品味类型---值类型与引用类型(上)-内存有理]和[第九回:品味类型---值类型与引用类型(中)-规则无边])的讨论和切磋,我们就基本的理解层面来说已经差不多了,但是对这一部分的进一步把握和更深刻的...原创 2020-01-16 15:03:34 · 177 阅读 · 0 评论 -
[你必须知道的.NET]第九回:品味类型---值类型与引用类型(中)-规则无边
接上回[第八回:品味类型---值类型与引用类型(上)-内存有理]的探讨,继续我们关注值类型和引用类型的话题。本文将介绍以下内容:类型的基本概念 值类型深入 引用类型深入 值类型与引用类型的比较及应用1.引言上回[第八回:品味类型---值类型与引用类型(上)-内存有理]的发布,受到大家的不少关注,我们从内存的角度了解了值类型和引用类型的所以然,留下的任务当然是如何应用...原创 2020-01-16 15:03:06 · 207 阅读 · 0 评论 -
[你必须知道的.NET] 第八回:品味类型---值类型与引用类型(上)-内存有理
本文将介绍以下内容:类型的基本概念 值类型深入 引用类型深入 值类型与引用类型的比较及应用1.引言买了新本本,忙了好几天系统,终于开始了对值类型和引用类型做个全面的讲述了,本系列开篇之时就是因为想写这个主题,才有了写个系列的想法。所以对值类型和引用类型的分析,是我最想成文的一篇,其原因是过去的学习过程中我就是从这个主题开始,喜欢以IL语言来分析执行,也喜好从底层的过程来深...原创 2020-01-16 15:02:29 · 207 阅读 · 0 评论 -
[你必须知道的.NET] 第七回:品味类型---从通用类型系统开始
本文将介绍以下内容:.NET基础架构概念 类型基础 通用类型系统 CLI、CTS、CLS的关系简述1.引言本文不是连环画,之所以在开篇以图形的形式来展示本文主题,其实就是想更加特别的强调这几个概念的重要性和关注度,同时希望从剖析其关系和联系的角度来讲述.NET Framework背后的故事。因为,在作者看来想要深入的了解.NET,必须首先从了解类型开始,因为...原创 2020-01-16 15:01:17 · 275 阅读 · 0 评论 -
[你必须知道的.NET] 第六回:深入浅出关键字---base和this
本文将介绍以下内容:面向对象基本概念 base关键字深入浅出 this关键字深入浅出1.引言new关键字引起了大家的不少关注,尤其感谢Anders Liu的补充,让我感觉博客园赋予的交流平台真的无所不在。所以,我们就有必要继续这个话题,把我认为最值得关注的关键字开展下去,本文的重点是访问关键字(Access Keywords):base和this。虽然访问关键字不是很难理解的...原创 2020-01-16 15:00:37 · 390 阅读 · 0 评论 -
[你必须知道的.NET] 第五回:深入浅出关键字---把new说透
本文将介绍以下内容:面向对象基本概念 new关键字深入浅出 对象创建的内存管理1.引言园子里好像没有或者很少把new关键字拿出来说的,那我就占个先机吧,呵呵。那么,我们到底有必要将一个关键字拿出来长篇大论吗?看来是个问题。回答的关键是:你真的理解了new吗?如果是,那请不要浪费时间,如果不是,那请继续本文的循序之旅。下面几个 问题可以大概的考察你对new的掌握,开篇之前,希...原创 2020-01-16 14:59:53 · 176 阅读 · 0 评论 -
[你必须知道的.NET] 第四回:后来居上:class和struct
本文将介绍以下内容:• 面向对象基本概念• 类和结构体简介•引用类型和值类型区别1.引言提起class和struct,我们首先的感觉是语法几乎相同,待遇却翻天复地。历史将接力棒由面向过程编程传到面向对象编程,class和struct也背负着各自的命运前行。在我认为,struct英雄迟暮,class天下独行,最本质的区别是class是引用类型,而struct是值类型,它们在内...原创 2020-01-15 09:43:44 · 295 阅读 · 0 评论 -
[你必须知道的.NET] 第三回:历史纠葛:特性和属性
本文将介绍以下内容:• 定制特性的基本概念和用法• 属性与特性的区别比较• 反射的简单介绍1.引言attribute是.NET框架引入的有一技术亮点,因此我们有必要花点时间来了解本文的内容,走进一个发现attribute登堂入室的入口。因为.NET Framework中使用了大量的定制特性来完成代码约定,[Serializable]、[Flags]、[DllImport]、[...原创 2020-01-15 09:43:00 · 216 阅读 · 0 评论 -
[你必须知道的.NET] 第二回:对抽象编程:接口和抽象类
本文将介绍以下内容:• 面向对象思想:多态• 接口• 抽象类1.引言在我之前的一篇post《抽象类和接口的谁是谁非》中,和同事管伟的讨论,得到很多朋友的关注,因为是不成体系的论道,所以给大家了解造成不便,同时关于这个主题的系统性理论,我认为也有必要做以总结,因此才有了本篇的新鲜出炉。同时,我将把上贴中的问题顺便也在此做以交代。2. 概念引入什么是接口?接口是包含...原创 2020-01-15 09:42:23 · 210 阅读 · 0 评论 -
[你必须知道的.NET] 第一回:恩怨情仇:is和as
本文将介绍以下内容:• 类型转换• is/as操作符小议1.引言类型安全是.NET设计之初重点考虑的内容之一,对于程序设计者来说,完全把握系统数据的类型安全,经常是力不从心的问题。现在,这一切已经在微软大牛们的设计框架中为你解决了。在.NET中,一切类型都必须集成自System.Object类型,因此我们可以很容易的获得对象的准确类型,方法是:GetType()方法。那么.NE...原创 2020-01-15 09:41:51 · 191 阅读 · 1 评论 -
[你必须知道的.NET] 开篇有益
©2007Anytao.com转贴请注明出处,留此信息。本文将介绍以下内容:• .NET的核心知识汇总• 学习.NET的圣经心得1.引言最近常常为学习中的问题而伤神,幸有管伟一起常常就技术问题拿来讨论,我已想将讨论的内容以基本原貌的方式,形成一个系列[和管子对话],通过记录的方式将曾经的友情和激情记录在园子里,除了勉励自己,也可受用他人。因此[和管子对话]系列,纯...原创 2020-01-15 09:40:59 · 212 阅读 · 0 评论