现代软件开发——使用.NET与C#系列课程(1):应用程序的执行-20050519.ppt

现代软件开发——使用.NET与C#系列课程(1):应用程序的执行-20050519.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
现代软件开发——使用.NET与C#系列课程(1):应用程序的执行-20050519

现代软件开发——使用.NET与C# 讲师:马林 linma@ 关于本次课程 .NET应用程序的执行方式 对于听众的要求 软件开发人员 面向对象开发经验 Level 200 目标 议题 Managed Execution 基于组件的设计 Assembly 分析 部署 日程 Managed Execution 基于组件的设计 Assembly 分析 部署 Managed Execution 思考: 软件在运行时环境中执行 为何如此?可移植和安全执行 Java 基于运行时环境:JVMTM JVM = Java Virtual Machine JCL = Java Class Library .NET 基于运行时环境:CLR, FxCL CLR = Common Language Runtime FxCL = Framework Class Library .NET 软件开发 选择你的开发语言和平台 .NET 软件开发 运行.NET 程序的客户端必须安装 Microsoft .NET Framework Redistributable .NET Framework (20MB) 三个版本:v1.0 (2002), v1.1 (2003), v2.0 (预计2005年6月) Microsoft Windows Server 2003 包含 v1.1 必须安装正确的版本 设计上的权衡 可移植性 J 安全执行(内存管理)J 速度 L? Managed Code C#, VB, J# 编译器会生成受控代码 需要 .NET Framework 运行和管理的代码 C++有两种选择 受控代码(.NET exe/dll) 非受控代码(native exe/dll) 常用于操作系统级编程和原有应用程序 CIL CIL = Common Intermediate Language CIL相当于CLR的汇编语言 Managed code == CIL code 日程 Managed Execution 基于组件的设计 Assembly 分析 部署 基于组件的应用程序 应用程序包含一个或多个组件(dll) 例子 基于组件的 .NET CLR 和 FxCL 也是组件 Assemblies Assemblies是对 .NET 组件的称呼 .NET中的部署单元 1个 assembly = 1 个或多个源文件的编译结果 FxCL assemblies FxCL assemblies 存储与 GAC 之中 GAC = Global Assembly Cache 位于本地 共享 版本感知 安全性 防篡改 Some pre-JIT 日程 Managed Execution 基于组件的设计 Assembly 分析 部署 Assembly 分析 CLR必须可以找到正确的assemblies FxCL assemblies 像我们自己的 assemblies 程序执行过程的assembly搜索 DOS应用程序执行回顾 .NET 提供了assembly搜索算法 可以根据.config文件(类似于.ini文件)自定义assembly搜索 无需使用注册表 算法分析 应用程序(.EXE)指定将要使用的assembly版本 在GAC(Global Assembly Cache)中搜索相应版本 If 未找到 and 存在.config文件 then 到配置文件指定的位置搜索 else 到.EXE文件所在的路径搜索 If 未找到 then 发生错误,程序终止 .NET如何发现的版本信息? 作为mannifest编译到.DLL/.EXE中 可以通过ILDASM工具查看 ILDASM = Intermediate Language Disassembler Manifest中存储了版本,依赖关系等信息 Manifest Manifest 包含对其他assembly的引用 名称,版本,公钥哈希 Manifest 不包含 assembly的代码 注册信息 位置信息 (使用assembly搜索算法确定位置) 隐含的特性 无需注册表 .NET 使用搜索路径 不再发生DLL陷阱 应用程序不会再使用错误版本 会不会发生“配置文件陷阱”? machine config, user config, app config 等等 Assembly如何被引用? 通过VS .NET工程文件中的References(引用)文件夹 在References文件夹中添加引用 日程 Managed Execution 基于组件的设计 Assembly 分析 部署 部署 安装到.EXE所在的文件夹中 最简便,也称作 xcopy deployment

文档评论(0)

70后老哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档