C#OOP之十四 .Net Framework简介
.Net FrameWork
从以前的dos平台到现今的Windows 2003、Vista、Win7,开发语言也是百花齐放、究竟选择哪一种,到底哪个才是最好的?更为痛苦的是团队内成员之间用的开发语言的一致性的要求,不一致的话,VC++开发的类库文件Delphi,无法调,反之也如此,无法良好的实现代码重用、效率提高等,不得不痛苦的去查Windows API等巨厚无比的手册、宝典,自己重新写成类库等来调用。
那么没有更好技术,实现各个语言之间的共通吗?团队成员之间不再局限于语言的困扰,.Net FrameWork就是应时而生的产物。
.Net FrameWork也叫.Net 框架,主要包括两部分内容:公共语言运行时(CLR)和框架类库集(FCL)。
C#、VB、VC++、J#
Visual Studio.Net IDE
公共语言规范(CLS)
.Net 3.0、3.5 4.0组件(WPF、WWF、WCF)
Asp.Net 、Ado.Net、Winform、WinCe
基础类库(FCL)
公共语言运行时(CLR)
Windows XP、WindowsVista、Windows7操作系统
公共语言运行时:CLR
原来的程序设计语言都是针对平台的,比如Windows、Linux,而现在从C# 、Java 开始,一种新的程序语言执行方式产生了,就是“中间代码+虚拟机”的执行机制。这种中间代码是不能直接执行的,它需要“虚拟机”的装置来管理和执行,可以使解释执行也可以使编译执行。如下图所示:
在.Net 框架里管理和执行中间代码的虚拟机,就是公共语言运行时(CLR),它负责管理和执行由.Net编译器产生的中间代码。
执行过程如下:
ü 在开发环境VisualStudio.Net中编写C#代码
ü 编译器将代码编译成中间语言代码(中间语言类似于汇编语言,但不是机器码)
ü 中间语言代码由CLR管理和执行。
注意,公共语言运行时的另外一个作用是可以轻松实现跨平台(条件是在操作系统上安装.Net FrameWork,微软虽然自己并不提倡跨平台(跨平台会影响Windows操作系统的市场垄断),但现在已经出现了在Linux操作系统中运行和编辑.Net程序的平台,就是Mono(包含了C#编译器、CLR以及FCL)
微软中间语言--MSIL
. 什么是中间语言呢?假设我们有汉语、日语、法语三位学者,他们正在交流一个问题,应该怎么交流呢?如果有一种他们都懂的语言(英语、手语或世界语)来交流,他们彼此才能明白。
在.Net中中间语言就类似于现实中的英语、手语或世界语,正是由于VB、C#、J#、VC++等编程语言被编译成中间语言,CLR最终执行的是中间语言,所以这里产生了一个语言无关性的问题。
语言无关性是指.Net框架产生的最终代码是和具体编程语言无关的,只和中间语言有关。不管你使用哪种编程语言,最终都要变为中间语言,你使用任何语言VB或C#都是等效的。现在在公司团队中对于成员使用VB或C#写作就变得简单多了,二者的东西可以互相调用。这样带来的效益是可观的,节省了我们对于不同编程语言知识的学习时间,将更多的精力放在程序的业务逻辑等方面。
CTS和CLS
CLS被称为通用语言规范,它用来定义.Net语言都应遵循的规则。CTS称作通用类型系统,它通常包含标准数据类型和等。
CLS定义了.Net编程语言(C#、VB、VC等)数据类型的最小特性集,只有遵循CLS的编程语言定义的值类型或引用类型才会被其他编程语言所引用。比如你在C#中可以定义Uint32返回类型的方法,,但这个数据类型并不是CLS所规定的,那么在VB中调用这个方法就会出现麻烦或产生错误。也就是说,保证不同语言程序的互操作性的前提是,在程序里要使用CLS里规定的数据类型进行编程。
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/64324.html