.Net Framework简介
1 平台简介
.Net Framework采用系统虚拟机运行的编程平台,以通用语言运行库(Common Language Runtime)为基础,支持多语言的开发。.Net 也为应用程序接口提供了新功能和开发工具,这个革新是的程序员可以同时进行windows应用软件和网络应用软件以及组件和服务(web 服务)的开发。
2 .Net Framework的内容
.Net Framework一般而言可以将其技术分为规范和实现两部分;其中实现部分包括被人所熟知的CLR(公共语言运行库)和FCL(.Net 框架类库);而规范即CLI(公共语言架构)包括CTS(Common Type System--通用类型系统)、CLS(Common Language Specification--公共语言规范)、CIL(Common Intermediate Language--通用中间语言以前也称为的MSIL)。两者之间的关系如图2-1:
图2-1 图2-2
- CLR(公共语言运行库):和java虚拟机一样也是也是一个运行时环境,它负责资源管理(内存分配[类型的内存分配]和垃圾回收[GC],并保证应用和底层操作系统之间的必要分离。其核心功能包括:内存管理、程序集加载、安全性、异常处理和线程同步。
- FCL(.Net类库):为.Net Framework两个核心组件之一。FCL集合了上千组可再利用的类、接口和值类型。BCL(Base Class Libraries)是FCL的一部分,提供了多数的基础功能,其中包括namespaces System,System.CodeDom,System.Collections,System.Diagnostics,System.Globalization,System IO,System.Resources,System.Text,和System.Text.RegularExpressions的类
- CTS(通用类型系统):定义了如何在运行库中声明、使用和管理类型,同时也是在运行库下支持各语言之间进行交互操作。(PS:CTS定义了在MSIL中使用的预定义类型,.Net 语言将代码解释成中间语言,其原因.Net 编译器是遵循CLS[公共语言规范]实现的)。
- CLS(公共语言规范):和通用类型系统一起确保语言的互操作型。
- CIL(通用中间语言):是一种属于通用语言框架和.Net框架的低阶的人类可读的编程语言。
CTS(通用类型系统)建立一个支持跨语言的集成,是不通语言编写的代码直接能够交互使用。CTS可以分为两大类:值类型和引用类型,同事两种类型之间可以进行强制转换,这种转换成为Boxing(装箱)和UnBoxing(拆箱)。从图2-2可以看出通用类型系统的基本结构,CTS的每一种类型都是对象,并继承一个基类System.Object。对于值类型和引用类型的内容将会在下篇进行解释。
3 .Net Framework 编写应用程序的些许概念
3.1 概念
- JIT(Just-In-Time):将CIL编译为专用于操作系统和目标机器结构的本机代码,在需要时才会进行编译
- 程序集:在编译期间,将CIL代码、元信息(即程序集中包含的数据的信息)、可选资源(CIL使用的其他数据,eg:图片)存储在程序集中,程序集包括可执行的应用程序(.exe)和其他应用程序的库(.dll)
3.2 编译和运行处理
利用.Net Framework编写的代码时,不是将代码直接创建为OS的本机代码,而是将源码编译成CIL,存储在程序集里面,在执行代码时必须使用JIT编译器将代码编译为本机代码,最后在托管的CLR环境下运行本机代码,以及其他应用程序,并且在CLR管理正在执行的用.NetFramework编写的代码,这个执行代码的阶段通常被称为运行时(Runtime)。编译过程如图3-1所示
图3-1
PS:
第一次写博客,还真是挺累人的。若有什么错误请指正,倘若觉得不错请点击下推荐,谢谢。
参考文献
百度百科
微软中国社区
《C#入门经典》
《你必须知道的.Net》