管代码的互操作 对开发者的支持:提供界面信息,帮助调试等
2.2 .NET的核心成分简介 (2) 的核心成分简介 )
2.2.2 .NET框架类库(.NET Framework Class ( Library) )
.NET类库又称基础类库(Base Class Library,简称 BCL),.NET类库提供数千个类、接口等工具供程序员直接 使用。它们主要有如下几个部分:数据结构、I/O管理、数 据库访问、多线程、远程访问、反射等。 .NET支持的所有语言都能使用类库,任何语言使用类库的方式 是一样的,任何一种应用程序使用类库的方式也是一样的。 学会使用类库是设计基于.NET的各类应用的基本功。 和CLR不一样的是:通常情况下,CLR对程序员而言是透明的; 而类库是程序员必用的工具,熟练掌握类库是程序员的基本 功。
2.2 .NET的核心成分简介 (3) 的核心成分简介 )
2.2.3 程序集(Assembly) ( )
程序集是一种程序单位,程序集中包含MSIL代码,每个程序集 只有一个入口(DllMaim或WinMain或Main)。 2.2.4 公共语言规范(CLS: Common Language Specifications) ( : )
公共语言规范是一组规则和约束,CLS保证了用不同编程语言 编写的类型之间的可交互操作性。
2.2 .NET的核心成分简介 (4) 的核心成分简介 )
2.2.5 通用类型系统(CTS:Common Type System) ( : )
通用类型系统是一个内置在公共语言运行库中的类型系统,它支持大多数编 程语言中存在的类型和操作。
2.2.6 中间语言(MSIL: Microsoft Intermediate Language) ( : )
.NET将托管代码编译为微软中间语言MSIL, MSIL 包括用于加载、存储和 初始化对象、对对象调用方法的指令,以及用于算术和逻辑
运算、控制 流、直接内存访问、异常处理和其他操作的指令。MSIL的地位类似于汇 编语言,但并不是针对某个特定CPU上的指令集,而是与CPU无关的代 码,MSIL经过JIT编译器的编译,才形成了可执行的机器代码。CLR中 包含多种JIT编译器,使得MSIL 可以不同的计算机结构中运行。
2.2 传统高级语言的编译与运行
VB 编译器
可执行 代码
代码 被执行
C++
编译器
可执行 代码
代码 被执行
2.2 .NET的编译与运行 的编译与运行
VB.Net 编译器 可执行 代码
R U N T I M E R U N T I M E
代码 被执行
C#
编译器
可执行 代码
2.2 MSIL 和 CLR 的使用
VB.Net 编译器 可执行 代码 MSIL 编译器
R U N T I M R E U N T I M E
C#
+ 可执行 元数据
代码
C L R
代码 被执行
编译 .NET 程序
.NET 源 代码
语言 编译器
MSIL + 元数据
CLR
机器 代码
代码 被执行
第二次编译 第一次编译 .NET 程序被编译两次,第一次编译很慢,而第二次编译较快!
Microsoft 中间语言(MISL) 中间语言( )
.NET 源 代码 语言 编译器
MSIL
MSIL + 元数据
CLR
机器 代码
代码 被执行
帮助语言实现互 操作 MSIL 不是字节代码,但 很接近字节代码。因此, 执行应用程序时, MSIL 到机器码的转换速度非常 快!
通过 CLR将 MSIL 转换为具体 CPU 的 代码 CPU 无关 的指令集
公共语言运行库( 公共语言运行库(CLR) )
.NET 源 代码 语言 编译器 MSIL + 元数据
CLR
机器 代码
代码 被执行
管理内存 易于
设计组件和应用程 序,其对象可以跨语言 互动 跨语言集成(特别 是跨语言继承)
一次编译,就可运行在支持运 行库的任何 CPU 和操作系统 上
2.3 基于 基于.NET的应用开发 的应用开发 2.3.1 跨语言和跨操作系统
2.3.1.1 代码重用 2.3.1.2 安全性 2.3.1.3 跨操作
系统 2.3 基于 基于.NET的应用开发 的应用开发
不断加盟的语言 .NET支持的语言 VB 、 C# 、 VC++ 、 J# 等 Visual Studio .NET 各类服务支持,如: SQL Server等
其他操作系统
Windows操作系统
其他操作系统
图2.4 .NET的应用开发环境的特点
2.3.2 基于 基于.NET的应用程序 的应用程序 2.3.2.1 SDK和IDE
SDK开发:用文本编辑器写代码,用 命令行去编译。便于初学者使用,程 序结构更清晰。 IDE开发:集成开发环境,集编程、 调试、部署于统一环境中,特别适合 可视