.NET框架概述.ppt
文本预览下载声明
NET 框架概述 1.引子 什么是.NET框架? 包含哪些内容? 为开发程序提供了哪些支持? 难道仅仅是 .NET框架所提供的庞大类库及编写代码所采用的C#语言,实际上远不止这些。 设想一下:编写下面这样一个最简单的显示“Hello, World!”的控制台程序,并将该程序运行起来需要哪几个步骤呢? using System;?class Program {??? static void Main(string[] args) {??????? string text = hello, world!;??????? Console.WriteLine(text);??? }} 1.1问题 步骤包括:打开Visual Studio,创建一个C#控制台应用程序项目(在这里将它命名为ConsoleApp),编写代码,编译程序然后运行。引入了.NET框架的几个重要方面: 1.编译后生成的文件有什么区别? 2.编写控制台应用程序,将字符输出到屏幕,需要调用Console.WriteLine()方法。这个Console类型从何而来呢? 3.生成的文件在系统中是如何运行起来的?其机制和使用传统其他IDE生成的可执行文件是否相同? 1.2解答 对于编译后生成的文件格式和内容,.NET中存在着诸多规范。符合这些规范的程序语言,也叫做面向.NET的语言。编译后生成的文件都可以在.NET运行时下执行,这就是大家所熟知的.NET多语言支持。 在开发阶段,.NET提供了一个庞大的类库,支持开发者快速开发各种应用程序,也支持程序语言设计者开发其语言编译器。 在程序执行阶段,.NET提供了一个程序运行时的环境,这个运行时环境帮助我们管理内存、实时编译程序、进行安全检查、执行垃圾回收等。 2. CIL(Common Intermediate Language )——公共中间语言 不管是VB.NET还是是C#,编译之后的程序集都能够用IL DASM(IL Disassembler,IL反汇编程序 )打开,因此它们生成的程序集的格式都是相同的;当程序所实现的功能相同时,程序集所包含的CIL代码也是类似的 . 2.1公共 因为不论是C#语言也好,VB.NET语言也好,C++/CLI语言也好,甚至是重新开发的一套以自己的名字缩写命名的语言,只要它期望运行的目标平台是.NET,在经过相应的编译器编译之后,所生成的程序集就是由CIL语言代码描述的。 2.2 中间 为什么不叫公共机器语言(Common Machine Language),或者公共本地语言(Common Native Language)?因为这种语言只是比我们使用的高级语言,比如C#低级一点,并不是CPU可以直接执行的本地机器语言。这种语言还需要.NET运行时(.Net runtime)环境的支持,在执行之前,进行一个被称为Just-in-time(即时)的二次编译过程,才能转变成计算机可以识别的指令。关于.NET运行时,以及详细过程后面再介绍,现在只要知道,这个文件所包含的CIL代码并非机器可以直接执行的指令代码。 2.3 语言 语言。CIL不过是一种程序语言,只不过相对于C#来说,它是一种更低级语言。CIL是一种基于堆栈的语言,同时,它提供了class、interface、继承、多态等诸多面向对象的语言特性,因此它又是完全面向对象的语言。如果愿意,甚至可以直接编写CIL代码,并且使用CIL的编译工具IL ASM(IL Assembler,IL汇编程序)来对它进行编译。只不过,和大多数低级语言一样,这种方式会使开发效率会变得很低。这里注意区别一下IL ASM和IL DASM,它们的拼写是不同的。 CIL的存在,建立起两个模型或两种视角: 一种是基于C#或其他高级语言的源程序的视角; 一种是基于CIL中间语言的程序集视角。; C#源程序在被编译为程序集以后,就独立于C#,因此程序集可以由其他种类的语言所调用;同时,因为程序集并没有包含本地机器的指令,所以它与具体的机器类型也分隔开了,可以被装有.NET框架的任何机器运行 CTS(Common Type System )——公共类型系统 开发新语言相当于CIL的高级语言版本,所以实际上要做什么并不是由新语言决定的,而是由CIL来决定的。因此,需要一套CIL的定义、规则或标准。这套规则定义了我们的语言可以做什么,不可以做什么,具有哪些特性。这套规则就称作CTS(Common Type System,公共类型系统)。任何满足了这套规则的高级语言就可以称为面向.NET框架的语言。C#和VB.NET不过是微软自己开发的一套符合了CTS的语言,实际上还有很多的组织或团体,也开发出了这样的语言,比如Delphi.Ne
显示全部