欢迎使用CSDN-markdown编辑器

来源:互联网 发布:刘嘉玲被强奸知乎 编辑:程序博客网 时间:2024/06/08 01:08

一、概念
.NET框架(.NET Freamwork)是Micrisoft新一代多语言的开发平台。
C#是微软专为.NET框架推出的高级编程语言。
Novell公司支持在其他操作系统下开发.NET程序的框架。
Unity借助Mono实现跨平台,核心是.NET Framework框架。

二、.NET框架
1..NET框架之前
序号 编程方向 各自缺点 共同缺点
1 纯Win32 API 非面向对象,且工作量大 都针对桌面程序而不是Internet进行开发
2 MFC Microsoft Foundation Class
微软基础类库 面向对象,但不一致,逐渐陈旧
3 COM Component Object Model 组件对象模型 概念简单,但代码复杂,且需要底层代码支持
2..NET框架时代
(1) .NET框架的目标:代码执行环境+代码开发环境。
①执行环境的目标:安全、多平台、性能;
②开发环境的目标:面向对象的开发环境、一致的编程体验、使用行业标准进行通信、简化的部署、语言独立、互操作性。
(2) .NET框架的特点:多平台(可在各种计算机上运行)、行业标准(使用行业标准的通信协议)、安全性(提供更加安全的执行环境)。
(3).NET框架的组成:

.NET框架的组成
其中,编程工具包括编码和调试所需要的一切:VS(IDE)、.NET兼容的编译器、调试器、网站开发服务器端技术(ASP.NET或WCF)。BCL(Base Class Library)为基类库。执行环境称为CLR(Common Language Runtime 公共语言运行时)
严格地说,.NET框架由CLR(执行环境)和FCL(框架类库)组成,不包括工具,而FCL是BCL的超集。
(4)CLR的作用:CLR在程序运行时管理程序的执行,包括:
①内存管理和垃圾收集;
②代码安全验证;
③代码执行、线程管理及异常处理。
(5).NET框架改进的Windows编程环境:
①面向对象的开发环境:CLR、BCL和C#完全是面向对象的,并形成了良好的集成环境。
②自动垃圾回收:CLR具有称为GC(Garbage Collector垃圾收集器)的功能,自动管理内存,GC自动从内存中删除程序不再访问的对象。
③互操作性:.NET框架提供了不同.NET语言、操作系统、Win32 DLL和COM之间的互操作性。
④不需要COM。
⑤简化的部署。
⑥类型安全性。
⑦基类库BCL/FCL

三、编译
1、编译过程:
(1)步骤一:源代码文件编译成CIL

编译过程
程序集:
①程序集包括可执行文件(.exe)或DLL;
②程序集中的代码并不是本机代码,而是CIL(Common Intermediate Language)公共中间语言;
③程序集包含信息:①程序的CIL;②程序中使用的类型的元数据;③对其他程序引用的元数据。
(2)步骤二:CIL编译成本机代码并执行

运行时被编成本机代码
其中,JIT编译器即Just-in-Time实时编译器。程序集中的可执行代码,或者说程序的CIL只有在运行时,或者说需要时才会有JIT编译为本机代码,被缓存起来以备后续在程序中执行。且一旦CIL被编译为本机代码,CLR就在它运行时管理它,执行释放无主内存、检查数组边界、检查参数类型和异常管理之类的任务,由此托管代码和非托管代码两个概念产生。
①托管代码:为.NET框架编写的代码称为托管代码managed code,需要CLR。
②非托管代码:不在CLR控制之下运行的代码,比如Win32 C/C++ DLL,称为非托管代码unmanaged code。
3.编译和执行过程概览:

4.CLR:

5.CLI:
CLI(Common Language Infrastructure)公共语言基础结构,使不同编程语言内置的数据类型特性不会因语言不同或编程不同而不同,CLI是一组阐述了系统的架构、规则和约定的规范。

CLI的组成
6.C#演化: