- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
运行时技术问题
什么是公共语言运行时 (CLR)?
公共语言运行时是 .NET 框架应用程序的执行引擎。
它提供许多服务,包括:
代码管理(加载和执行);应用程序内存隔离;类型安全验证;IL 到本机代码的转;元数据(增强的类型信息)访问;为托管对象管理内存;强制代码访问安全;异常处理,包括跨语言异常;托管代码、COM 对象和现有 DLL(非托管代码和数据)之间的互操作;自动进行对象布局;对开发人员服务(配置、调试等)的支持
什么是公共类型系统 (CTS)?
公共类型系统是多信息类型系统,它被内置在公共语言运行时中,支持大多数编程语言中的类型和操作。公共类型系统支持大量编程语言的完全实现。
什么是公共语言规范 (CLS)?
公共语言规范是一组结构和限制,用作库编写者和编译器编写者的指南。它使任何支持 CLS的语言都可以完全使用库,并且使这些语言可以相互集成。公共语言规范是公共类型系统的子集。对于那些需要编写代码供其他开发人员使用的应用程序开发人员,公共语言规范也非常重要。如果开发人员遵循 CLS 规则来设计公共访问的 API,那么就可以在支持公共语言运行时的任何其他编程语言中很容易地使用这些 API。
什么是 Microsoft 中间语言 (MSIL)?
MSIL 是与 CPU 无关的指令集。.NET 框架程序被编译成 MSIL。它包含加载、存储、初始化和调用对象方法的指令。与元数据和公共类型系统结合,MSIL 允许真正的跨语言集成。
MSIL 在执行前被转换为机器代码,而不是一边解释一边执行。
什么是托管代码和托管数据?
托管代码是编写为支持公共语言运行时服务的代码(请参阅“什么是公共语言运行时?”)。为了支持这些服务,代码必须向运行时提供最小级别的信息(元数据)。默认情况下,所有 C#、Visual Basic.NET 和 JScript.NET 代码都是托管代码。Visual Studio.NET C++ 代码在默认情况下不是托管代码,但通过指定命令行开关 (/CLR),编译器也可以生成托管代码。
与托管代码密切相关的是托管数据。托管数据是由公共语言运行时的垃圾回收器进行分配和释放的数据。默认情况下,C#、Visual Basic 和 JScript.NET 数据是托管数据。不过,通过使用特殊的关键字,C# 数据可以被标记为非托管数据。Visual Studio.NET C++ 数据在默认情况下是非托管数据(即使在使用 /CLR 开关时),但是在使用 C++ 的托管扩展时,可以使用“__gc”关键字将类标记为托管类。就象该名称所显示的那样,它表示类实例的内存由垃圾回收器管理。另外,该类也完全成为 .NET 框架的成员,同时具备它所带来的好处和限制。好处的一个例子是:它可以与其他语言编写的类正确地进行互操作(如托管的 C++ 类可以从 Visual Basic 类继承);限制的一个例子是:托管类只能从一个基类继承。
什么是程序集?
程序集是 .NET 框架应用程序的主要构造块。它是作为一个单一实现单元(包含一个或多个文件)来创建、标识和部署的功能集合。所有的托管类型和资源都可以被标记为仅在其实现单元内访问,或者标记为可由该单元以外的代码来访问。
程序集通过清单来进行自我说明。清单是每个程序集的不可或缺的组成部分。清单:
建立程序集标识(以文本名称的格式)、版本、类别和数字签名(如果要在应用程序之间共享该程序集)。
定义组成程序集实现的文件(通过名称和文件散列)。
指定组成程序集的类型和资源,包括哪些是从程序集中导出的。
逐条记录编译时对其他程序集的依存。
指定程序集正确运行所需要的权限的集合。
此信息在运行时用于解析引用、强制版本绑定策略以及验证所加载的程序集的完整性。因为每一类型都被加载到程序集的上下文中,所以运行时可以确定并定位任何正在运行的对象的程序集。程序集也是应用了代码访问安全权限的单元。在确定授予其所包含的代码哪些权限时,每个程序集的标识证据都被认为是独立的。
程序集的自我说明特征也有助于实现无影响安装和 XCOPY 部署。
什么是专用程序集和共享程序集?
专用程序集仅由单一应用程序使用,并且存储在该应用程序的安装目录中(或其子目录中)。共享程序集是可被多个应用程序引用的程序集。要共享一个程序集,该程序集必须明确为这个目的而创建,这可以通过给其指定加密的增强型名称(用作共享名称)来实现。相反,专用程序集名称只要求在使用它的应用程序中是唯一的。
通过区分专用和共享程序集,我们介绍明确决定共享的要点。只需简单地将专用程序集部署在应用程序目录中,即可确保应用程序只在创建和部署它的那部分中运行。对专用程序集的引用只在专用应用程序目录内部进行解析。
选择创建和使用共享程序集可以有多种原因,例如表达版本策略的能力。共
文档评论(0)