当前位置:首页 > Windows程序 > 正文

C#OOP之十四 .Net Framework简介

2021-03-20 Windows程序

技术分享

.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