如何使用.NET开发Windows应用程序.ppt_第1页
如何使用.NET开发Windows应用程序.ppt_第2页
如何使用.NET开发Windows应用程序.ppt_第3页
如何使用.NET开发Windows应用程序.ppt_第4页
如何使用.NET开发Windows应用程序.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、What Every Developer Should Know About the .NET Framework, but May Have Missed Along the Way(Visual C# .NET),课程介绍,这次Webcast将深入Microsoft .NET Framework,基础内容,熟悉.NET Level 200,课程内容,程序的托管执行(Managed Execution) 程序集(Assemblies) 名称空间(Namespaces) 委托(Delegates) 线程 应用程序域(AppDomains) Framework类 程序中的属性(Programmi

2、ng) 数据类型 反射 Framework编程,托管执行,托管代码 和 非托管代码 公共语言运行时(Common Language Runtime,CLR) 中间语言(Intermediary Language,IL) ILDASM 公共类型系统 内存管理 非确定性的内存回收 垃圾回收 IDispose,托管代码的执行过程,公共语言运行时(CLR),线程支持 类型检查 安全引擎 MSIL到本地编译 代码管理器 垃圾回收 类装载器 COM Marshaller 异常管理 调试器,公共类型系统,创建了一个框架,能够帮助实现不同语言之间的互操作,类型安全和高性能的代码执行 提供了一套统一的面向对象模

3、型,可以完全的支持所有的语言 定义的一套语言规范,能够帮助不同语言之间进行交互 定义: ,程序集(Assemblies),一个程序集是一组类型和资源的集合,共同组成一定的逻辑功能 包含一个类型或程序的清单(manifest),类型原数据,MSIL,资源 所有能够部署的单元都是编译过的MSIL(可执行的中间代码) 轻便的可执行文件(PE file)EXE或者是DLL 可以用ILDASM和反射(reflection)来检查程序集 可以是单一的文件或多个文件,名称空间,名称空间是一个命名的容器 名称空间可以按照层次的方式来组织类 避免命名冲突 帮助提示类的用途 名称空间可以跨越工程/程序集 推荐:

4、CompanyName.Project.Class 举例: Northwind.OrderEntry.Order,演示一,程序集和名称空间,Delegates,Delegate实际上是.NET中的类,是一个强类型的函数指针 主要用于事件处理和回调 多播的delegate:Combine和Remove方法可以添加或者去除delegates中的调用列表 可以通过Invoke来调用delegate指向的方法 可以使用delegate来完成异步调用,BeginInvoke和EndInvoke方法 Delegate的实现是运行时提供的,用户不用关心 Delegate在运行时决定调用怎样的用户代码,用户需

5、要编写这些代码。,演示二,Delegates,线程,具有优先级的多任务操作系统”时间片“将时钟周期分配给多个线程 多线程技术可以在工作线程执行长时间计算的同时,相应用户的UI操作 System.Threading.Thread类实际上描述的就是一个系统线程 ThreadPool.QueueUserWorkItem()可以异步的执行一些操作,通过使用系统的线程池来完成 将你使用的线程数量降低到最少!,AppDomains,AppDomain是一个独立的应用程序运行环境 逻辑空间, AppDomain在执行托管代码时提供分离应用程序的能力、卸载应用程序的功能和安全边界 所有的托管代码都在AppDo

6、main中执行 在一个进程中可以执行多个应用程序域 应用程序域与线程之间没有一一对应的关系 一个应用程序域可以拥有多个线程 一个线程可以在一个应用程序域中运行,同时也可以在多个应用程序域之间运行,演示三,AppDomain和线程,Framework类库,公共名称空间 System System.Data System.Data.Xml 其他的名称空间 System.Windows.Forms System.Web System.Configuration System.Diagnostics System.IO System.Security,程序的属性(Attribute),Attribut

7、e是一些.NET的类,它可以在IL中添加一些原数据,来描述程序的一些属性,这些属性是在编译的过程中被识别的 属性可以被用来描述下面任何一种类型:Assembly,Module,Property,Field,Event,Interface,Parameter,Delegate,Return Value Attribute可在运行时通过编写代码进行查找,并且可以通过Attribute来控制代码的执行 在Framework中内嵌了很多Attribute 也可以编写一些自己的Attribute,只需从System.Attribute派生即可,CLSCompliant Attribute,用来指定当前的

8、程序或代码是否符合公共语言运行时的规范(CLS) 这个标签(Attribute)只对程序集,模块,类型或类型的成员起作用 如果不使用CLSCompliantAttribute标签的话,编译器默认: 程序集是CLS不兼容的 如果某个类型是CLS兼容的,那么它所包含的所有类型或程序集都必须是CLS兼容的 如果某个类型的成员是CLS兼容的,那么这个成员的类型必须是CLS兼容类型,数据类型,引用类型 必须被实例化才能使用 类 在托管堆中分配 值类型 没有默认的构造函数(不需要实例化) 简单类型(Primitives)Integer,float,string,byte 结构 在栈中进行内存分配,数据类型

9、,演示四,数据类型,版本(Versioning),在程序集中使用强命名 使用工具sn.exe可以生成一个强命名的(strong-name)密钥文件(存有密钥对) 使用AssemblyKeyFile标签可以将强命名的密钥编译到应用程序集当中 使用强命名可以用来确认程序集的版本,并将程序集安装到Global Assembly Catch(GAC)当中,演示五,Versioning,反射(Reflection),System.Runtime.Reflection名称空间 反射可以用来在运行时获取元数据信息 找出PE文件(程序集)中的类型和元数据 在运行时动态的使用类型,演示六,反射,Framewor

10、k编程,Framework类库 Collections Arrays Enums Ienumerable接口和foreach (For Each) 运行时信息 反射 程序集属性、标签 AppDomain,字符串,字符串的内容是固定的,immutable 连接少量的字符串,建议使用String.Format() 使用System.Text.StringBuilder来连接大量的字符串 StringBuilder的AppendFormat()方法,演示七,字符串,总结,.NET Framework包含了一系列有层次的用名称空间划分的可重用组件 MSIL,PE Attribute可以定制程序集当中各种元素的元数据,或描述信息 反射可以在运行时获得程序集当中的类型,可以方便的实现插件的功能,更多信息, 2415B: Programming with the Microsoft .NET Framewor

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论