下载  >  开发技术  >  C#  > .NET本质论第1卷

.NET本质论第1卷 评分:

非常好的一本书,可以说是经典之作,希望能够为我国的码农屌丝们一点帮助吧,祝你们逆袭!希望能够为我国的码农屌丝们一点帮助吧,祝你们逆袭
高級.NET开发系列 Essential NET Volume 1: The Common Language Runtime NET本质论 第1卷:公共语言运行库 [美] Don Box, Chris Sells著 张晓坤译 忄用电力出版社 www.intopower.comcn Essential. NET Volume 1: The Common Language Runtime(ISBN 0-201-73411-7) Don box. chris sells Authorized translation from the english language edition, entitled Essential. NET Volume 1: The Common Language Runtime, Published by Addison Wesley, Copyright 2003 All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical including photocopying, recording or by any information storage retrieval system, without permission from the Publisher Translation edition published by PEARSON EDUCATION ASIA LTD and CHINA ELECTRIC POWER PRESS, Copyright@ 2003. 本书封面贴有 Pearson education防伪标签,无标签者不得销售 北京市版权局著作合同登记号图字:0120032439号 图书在版编目(CIP)数据 Net本质论第1卷:公共语言运行库/(美)伯克斯,(美)赛欧司编著;张晓坤详 一北京:中国电力出版社,2004 (高级NET开发系列 SBN7-5083-2177-4 N..Ⅱ①伯②赛.③张.I计算机网络一程序设计ⅣTP393 中国版本图书馆CIP数据核字(2004)第014329号 从书名:高级NET开发系列 书名:NET本质论第1卷:公共语言运行库 编著:(美) Don box, Chris sells 翻译:张晓坤 责任编辑:朱恩从 出版发行:中国电力出版社 地址:北京市三里河路6号邮政编码:10004 电话:(010)88515918 传真:(010)88518169 印刷:汇鑫印务有限公司 开本:787×1092/l6 印张:255 字数:647千子 版次:2004年4月北京第1版 2004年4月第1次印刷 定价:4800元 版权所有翻印必究 译者序 第一次看到这本书的时候,就感觉到了这本书的分量。 Don Box( Don Box的个人网站已经更改,变成了Blog的形式;参见 htp/ww. gotdotnet. com/team/dbox/)在电脑界具有“鬼才”之称,发表过 大量的技术文章。他的技术水准无可挑剔。个人觉得,有时候他写的东西很 难读懂。但即使是这样,这本书的内容还是值得我们反复阅读的。读过 《 Essential COM》、《 Essential XMl》、《 Effective COM》、《 Creating Components DCOM C++》等书的读者,对于 Don Box对这些底层技术的精 彩描述,想必一定是深有体会的。 有人说, Microsoft的NET技术只是实现了跨语言,而没有做到真正的 跨平台,这一点不如Java。就目前的情形而言似乎是这样。也有人说,CLR 〔公共语言运行库)作为NET的核心部分,尽管 Microsoft已经将其称为标 准,但时下只有 Windows系列的操作系统上可以跑CLR。相比之下,JVM (Java虚拟机)则与众多的操作系统兼容。 Microsoft曾经表示过乐意资助 或支持任何交叉平台的NET,但是对于GPL, Microsoft是持谨慎态度的。 事实上,在2001年有一个小组启动了一个名为“Mono”的计划,致力于实 现 Linux/Unix下的NET。这个小组目前已经扩充到了50多人,他们中有5 人是Xman( Ximian是一家专门从事为一般计算机用户改进 Linux操作系 统的公司, Ximian现在已经并入 Novell,详情参见 http://www.ximian.com> 的全职雇员,他们正在做着一件极其了不起的事情,你可以在httpwwr go-mono org上看到他们工作的最新进展。不过, Microsoft对于跨平台的应 用也有着一套自己的解决之道,那就是 NET Web Services。本书的重点是 CLR,对于 NET Web services, Don Box在本书的前言中说准备近期推出本 书的姊妹篇,我们将拭目以待。 CoM(组件对象模型)技术真的会消失吗? Don box曾经谈到了COM 之后的世界(参见hp: /wwcsdn. net/develop/ Read_Article. asp?ld=12824)。 NET本质论第1卷公共语言运行库 问: Is COM Dead? Don box: Yes: OLE32 DLL 关于“ CoM is Dead”的说法,在2000年的PDC开发者大会上, Microsoft 就曾宣称令人头疼的COM编程模型将彻底消失, IUnknown等接口将不再 出现,取而代之的将是CLR。不过,要知道cOM是 Windows的基础,CLR 和COM技术之间有着极深的渊源。应该说COM的精神并没有消失,而是 有了非常大的进步,本书即将揭开这个谜团,并一步一步带领您揭开CLR 的神秘面纱,在这里 Don Box将会告诉你,CLR其实是一个更好的COM CLR最令开发人员激动的是,它推出了一个比它的前身COM更为简洁的 开发模型,你不再需要掌握 GUIDS、 IUnknown、 AddRef、 Release就能进行组 件开发!在NET中语言的差异似乎不再那么明显,因为所有NET语言共享相 同的类库;令人厌烦的内存管理,也将被GC(自动垃圾回收)所取代;在访 问代码和资源时,CLR实施了代码访问安全策略,这种安全性深深地植根于 CLR之中,这种对操作系统级的安全性的扩展,可以说是一种很大的进步。 本书由10章组成,探讨了CLR的里里外外,涵盖了基本类型、实例 方法调用和消息、 APPDomain、安全,以及CLR外部世界 本书不仅讨论了类型是怎样映射到CLR的,还讨论了这些类型在运行时 的行为;然后讲述了类型、对象、值之间的联系及它们之间的相互作用;接下 来的内容是消息(高级方法, Net Remoting的基础)以及方法调用;再有就 关于 AppDomain的讨论(我理解为CLR下的“进程”);最后,以CLR安 全模型和CLR外部世界结尾这些技术很艰深,但对于一名渴望深入了解CLR 底层运作机制的爱好者来说,这绝对是一本让人大呼过瘾的好书,因为其字里 行间都是极具价值的技术信息,例如,CLR中的类型是如何初始化的,is和 as操作符(对应于 asist)与C风格的强制类型转换(对应于 castclass)之间 的差别,对象在内存中的数据结构和对象的生存期,以及避免程序性能下降的 技巧,如在方法调用时如何正确处理多个预处理( pre-proces)和后处理 ( post-process)过程的方法,这些技术对于创建高效的应用程序是很有用的。 严格地说,本书并不是写给初学者的,与 Jeffrey Richter的《 Applied Microsoft. Net Framework Programming》相比,它更偏向于底层机制,如 果你有C++和COM的背景,那么就会更深刻地体会到这一点,因为在书中 你会看到很多C++以及COM的痕迹。本书中描述的技术并不限于某种特定 译者序 语言, Don box试图做到与语言无关,但很多例子都是用C#写的。作为 木解释why(相对于那些 How to)的书,这本书和 Don box的其他书一样, 描述详尽,充满了专家级的指导。在翻译过程中最深的体会是,这不是一本 看完了就会放在一边的书,因为你可能需要花很多时间来读这本书才能真正 明白CLR的思想。当你完成了这项艰难的阋读后,你会发现这是一本值得 收藏的经典之作! 为了尽可能地照顾不同技术水平的读者,我增加了多处译注,希望将Don BoX对NET深层次的理解诠释得更清楚。在整个翻译过程中,我总是试着站 在读者的角度换位地思考—“这句话这么说,读者会理解吗?”尽管这样, 恐怕还是有不尽人意的地方。为了亡羊补牢,以及更好地支持这本书的阅读, 我将通过网站hp:/ww. coreader. com,将本书的勘误整理出来放在网上,同 时与大家一起共同探讨技术方面的问题,并提供一些本书相关的源代码。 感谢通常是一篇序变长的原因,因为一本好书的出版,里面必然蕴含了 很多人的心血,首先要感谢的当然是 Don box和 Chris sells,他们为我们的 书架又增添了一本经典!翻译的过程,是顿悟的过程,也是自我提高的过程。 和我以前的翻译工作一样,在本书的翻译过程中得到了许多朋友的支持。谭 立平是我近期工作的合作伙伴,他贡献了本书部分章节的翻译与校对,并和 我一起编写测试代码,验证作者的理论。卢青锋也是我的合作伙伴之一,他 为htp:/w. coreader. com网站的开发做了大量的工作。本书在 china-pub 上引起争议之后(参见htp:!ww.china-pub.com/computers/common/info,asp id=14700),我的老朋友汤涛为本书的前四章提出了修改意见;还有我从未 见过面的南京大学数学系学生刘未鹏,他对序言、第1章等的修改意见是建 设性的。同以往一样,我与中国电力出版社的合作非常愉快,我的老朋友高 军自然就不用说了。谢工、关敏对这本书的进度与质量提出了严格的要求, 并给予了我极大的鼓舞。朱恩从近乎“吹毛求疵”的编辑,毙掉了不少Bug 此外,与 china-pub上众多网友进行的诚挚而热烈的讨论使我受益良多,让 我更深刻地体会到强烈的责任感。 虽然,我在翻译的过程中已十分小心,但仍然可能会有所疏漏,敬请各 位谅解并予以指正。 张晓坤 2004年元月于北京中关村 序 发生了什么? 在1998年, Microsoft公司在圣地亚哥( San Diego)举办了专业开发人 员大会( Professional Developer'' Conference,PDC)。cOM的杰出人物 Charlie kindel在大会上预言:“将不再有GUID,不再有 HRESULT,不再有 IUnknown。”他和 Mary Kirtland进一步展示了CLR的基本架构,也就是 COM+运行时(COM+ Runtime)。在会议的后半段, Nat Brown和 David stutz 演示了使用 Visual basic和Java进行跨语言的继承。参会者还领到了有关这 个非常奇妙演示的CD,里面包含了该编译器的原始版本。他们可以回到家 中,重新进行这个演示。在2002年的2月,这项技术终于得以正式发布。 Microsoft平台的演变可以用两个时间进行划分。1993年7月27日 Windows Nt31的发布标志着DOs时代的终结;2002年2月13日,公共 语言运行库( Common Language Runtime,CLR),作为 NEt Framework的 部分进行发布,标志着COM时代的终结。 NEt Framework2是一个用于软件集成的平台。从根本上讲,NET Framework提供了两个核心的集成技术:一个是CLR,它被用来将软件集 成到一个单独的操作系统进程中;另一个则是 XML Web Services,它被用 专业开发人员大会是 Microsoft专门为那些利用最新的 Internet科技,使用C艹或Java编写 分布式企业级应用程序,或为 Intranet、局域网、广域网,以及 Internet创建用户定制组件的开发 人员而筹备的。你可以在以下Web站点上找到有关于PDC的更详细内容,其地址为www microsoft com/pdca/。在通常的情况下,参加PDC的人数大约为7000名。—译者注 2 NET Framework是用于生成、部署和运行应用程序和 XML Web services的多语言环境。它由 三个主要部分组成:公共语言运行库、 NET Framework类库(统一的编程类库,或者说AP)及 ASPNET—译者注 3CLR可被视为在运行时管理代码(这些代码必须是以CIR为目标的托管代码,它们可由不用 的编程语言生成)的代理,它提供核心服务(如内存管理、线程管理和远程处理),强制实施严 格的类型安全,以及实施可确保安全性和可靠性的其他形式的代码准确性。事实上,代码管理的 概念是运行库的基本原则。而CLR本身可由非托管组件承载,例如, windows操作系统、Is、 SQL Server等等,这些都是CLR的宿主。—译者注 Vill NET本质论第1卷公共语言运行库 来在 Internet范围内进行软件集成4。它们都是基于相同的思路,也就是强类 型的协定( strongly typed contract)和封装。不过从根本上讲,它们属于不 同的技术,可以相互独立地应用。你可以选择ⅹ ML Web Services,而不是 CLR(事实上,许多 Web services产品就已经这样做了);当然,你也可以 在没有 XML Web services的情况下采用CLR,这样能够更好地利用CLR的 相关特征,例如,代码访问的安全性,或者高级的内存管理的实用部件。不 管怎么说,CLR和 XML Web Services都将成为 Microsoft开发平台的中心 相关开发经验的积累只是时间问题。 CLR和 XML Web services都强调组件之间的强类型协定。这两项技术 都需要开发者根据类型定义或者协定描述组件之间的相互关系。在这两种技 术中,贯穿在这些协定应用的关键概念是:元数据( metadata)和虚拟化 virtualization)。 CLR和 XML Web services都依赖高保真的(high- -fidelity)5、无所不在 的以及可扩展的元数据,通过这些元数据传达程序员的意图。元数据向将要 使用CLR组件或者 XML Web services的开发人员传达了的基本结构和类型 关系。 同样重要的是,无所不在的元数据把组件开发者在编写代码时的意图通 知给相应的工具和底层平台。 同组件的完全不透明相比,元数据指引的“洞察力”允许平台为其提供 更加丰富的支持。例如,XML序列化器将捕获元数据中对象到XML映射 的不同方面。至于XML的表示方式,开发人员更倾向于通过声明性元数据 4ⅹ ML Web services是提供特定功能元素(如应用程序逻辑)的可编程实体,任何数量的、可 能是完全不同的系统都可以用常见的 Intermet标准(如XML和HTP)访问它。 XML Web Services在很大程度上依赖于对ⅪML和其他 Intemet标准的广泛接受,而事实上,目前有许多 厂商都提供了支持它的平台,例如,IBM的 WebSphere和Sum的 SunOne。因此,与CLR相比, XML Web services更强调松耦合、通用的数据格式等。—译者注 5所谓高保真,是指元数据能够如实地向使用组件或者 Web services的开发人员传达构建它们 的开发人员的意图,以及向底层平台或者工具如实地反映构建时的意图。—译者注 6元数据以非特定语言的方式描述在组件代码中定义的每一个类型和成员。使用元数据,平台 可以访问加载代码并将其处理为本机指令所需的所有信息。基于这种方式,元数据使自描述文件、 公共类型系统和跨语言继承成为可能,因此,不再需要接口定义语言(DL)文件、头文件或任 何外部组件引用方法。—译者注 7XML序列化将对象的公共字段和属性或者方法的参数和返回值转换(序列化)为符合特定 XML架构定义语言(XSD)文档的XML流。XML序列化中最主要的类是 XmlSerializer类 译者注 序 IX 扩展,而不是显式地编写代码。 体现CLR和 XML Web Services协定的第二个关键思路就是虚拟化的概 念。这两个技术都强调将语义部分与物理实现的细节分离开来。特别是这两 个技术的元数据作用于抽象结构层,而不是依据底层数据的表示和实现技 术。当开发者在这个“虚拟”层指定了组件之间的协定,底层平台就能够以 最有效的方式传递协定后。例如,通过以某个抽象数据模型表示—Web Services的协定,通道( plumbing)既可以采用高效的二进制数据表示方式, 以提高性能;也可以采用基于文本的XML1.0表示方式,以最大限度地提 高协作性 因为协定是虚拟化的,所以,协定的具体细节可以依据后开发的特性, 在运行时绑定。 由于本卷完全集中在CLR上,因此,CLR的工作定义是有序的。从 本质上讲,CLR就是一个加载器,它将你的组件载入到一个操作系统进程 中。CLR代替COM的 Cocreateinstance和win32的 LoadLibrary,成 为代码的主要加载器。 CLR作为代码的加载器,与前任COM和win32相比,它提供了更多的服 务。CLR加载器具有版本感知( version- aware)的特征,它能够提供版本策略 和代码存放的灵活配置;CLR加载器具有安全感知的特征,它是执行安全策 略的重要部分:CLR加载器具有类型感知的特性,对于显式的管理和独立于编 程语言的类型创建,它能够提供更丰富的运行环境。总之,CLR加载器是一种 高级的组件技术,将取代COM,成为 Microsoft主要的主存内集成策略。 编译器将生成CLR的新的文件格式12,这样CLR就可以懂得许多编程 语言。注重编程语言的人将CLR看成是为编译器作者提供了关键的生成程 8你可以创建用属性批注的类,或者使用XML架构定义工具生成基于现有XML架构的类。 译者注 9这实际上就是NET远程处理的框架。对于通道(或者信道),既可以是HrTP信道,也可以 是TCP信道。—译者注 10动态绑定的协定具体细节。译者注 11在NET中部署代码,不必涉及注册表(这个过程是带有风险性的)。你只要简单地使用 XCOPY,再修改相应的配置文件就能搞定。—译者注 12这种文件格式就是改良后的可移植可执行文件(PE文件),包括三个部分:PE表头、中间语 言和元数据。因此,不管你采用c#、BNE还是,编译之后的托管代码在CLR看来都是一 样的。一译者注

...展开详情
2018-08-05 上传 大小:32.4MB
举报 收藏 (1)
分享
.NET本质论

.net本质论中文版,好像市面上已经绝版了吧,pdf版本的,欢迎大家下载

立即下载
.Net本质论(中文版)

_Net本质论 第1卷:公共语言运行库,对了解.net底层有很大的帮助,是提升.net技术的必看书籍

立即下载
.net 本质论 中文版

本书为需要充分利用Microsoft.NET强大功能的开发人员提供了详尽的信息,深刻地论述了.NET Framework(.NET 框架)的精髓:公共语言运行库[Common Language Runtime (CLR)]。Box和Sells揭示了CLR的内部工作方式——CLR设计背后的基本原理,它能够解决的问题,以及CLR编程中类型的角色。并且,在帮助读者在对CLR工作机制有了更为完整的理解的同时,指导他们如何利用.NET Framework构建更好的应用程序。本书包含了很多实用细节,以及由Don Box提供的专家建议。主要有:CLR演变、.NET Framework的程序、CLR类型系统、

立即下载
.NET本质论(Don Box经典力作)

.NET本质论(Don Box经典力作)

立即下载
asp.net本质论(附源码)

如果你只是想系统地学习如何简单地利用ASP.NET快速地进行开发,《ASP.NET本质论》也许不是你想要的:如果你不满足于只是会利用ASENET强大的控件功能完成一些常规应用的开发,而是想深入探究ASENET的本质和精髓,实现从一个控件使用人员向系统开发人员的过渡,那么《ASP.NET本质论》是你不能错过的,也是你目前的唯一选择。 《ASP.NET本质论》以ASENET应用中的请求处理过程为主线,对每一步处理所涉及的技术和原理进行了深入的剖析,同时对开发过程中在各处理环节可能会遇到的经典疑难问题进行了分析并给出了解决方案。 第1~4章是ASENET的核心部分,细致地剖析了ASP.NET中的请

立即下载
asp.net本质论.pdf

asp.net本质论,让你深入理解asp.net开发背后的奥秘。欢迎下载学习。

立即下载
asp.net本质论(带目录)

前言 第1章 网站应用程序 /1 1.1 Web应用程序的简单回顾 /2 1.1.1 资源的地址—通用资源标识符 /2 1.1.2 找到主机 /3 1.1.3 HTTP协议 /4 1.2 最简单的 Web 服务器 /6 1.2.1 网络插座Socket /6 1.2.2 基于 TcpListener 的 Web 服务器 /10 1.2.3 基于 HttpListener 的 Web 服务器 /11 1.3 进入 ASP.NET /13 1.3.1 Web 应用程序域 /13 1.3.2 不使用GAC 和bin 加载Web 应用程序域 /14 1.3.3 默默无闻的工作者对象 /16 1.3.

立即下载
[.NET Framework] WF本质论 (PDF中文清晰扫描版) part1

本书详细讲解windows workflow Foundation(WF)的运作原理,并在解析原理的过程中给出WF的设计初衷。WF使用了一种开创性的方法来编写和执行程序。本书两位作者从WF项目立项开始就参与这个项目,负责规划、设计、开发了其中的大部分技术。在本书中,作者高屋建瓴地探讨了WF中的关键概念和整体架构,不仅涉及如何使用WF,还涉及为什么这样使用WF,揭开了WF技术的神秘面纱。通过简单而极具说明性的例子,本书演示了如何利用WF的可扩展性编程来构造具体领域的程序。

立即下载
Essential .net(.net 本质论) 中文版

Essential .net(.net 本质论) 中文版

立即下载
.net本质论

这是一本全面剖析.net本质

立即下载
html+css+js制作的一个动态的新年贺卡

该代码是http://blog.csdn.net/qq_29656961/article/details/78155792博客里面的代码,代码里面有要用到的图片资源和音乐资源。

立即下载
qBittorrent插件集合(22个)

btetree.py cpasbien.py divxtotal.py ilcorsaronero.py kickass.py leetx.py limetorrents.py linuxtracker.py nyaa.py nyaapantsu.py nyaasi.py pantsu.py psychocydd.py rarbg.py rutor.py skytorrents.py sukebei.py sumotorrent.py tntvillage.py torrent9.py torrentfunk.py zooqle.py

立即下载
压缩包爆破解密工具(7z、rar、zip)

压缩包内包含三个工具,分别可以用来爆破解密7z压缩包、rar压缩包和zip压缩包。

立即下载