关于.Net中一些名词的理解

最近在学习windows phone的过程中遇到了很多关于.Net的名词,由于在学校中没有很好地打基础,这方面的知识比较欠缺,所以现在只能一点一点补起来了!

 

先说一些基本的名词:

1 MSIL Microsoft Intermediate Language 

简称IL,当我们在Vs中写出代码之后,运行,代码会由Vs中的编译器编译成IL,然后IL会被储存在一个文件中供之后使用。它不能直接运行,只是作为一个中间的桥梁。为什么需要这个桥梁呢?这个我们会在讲述托管代码的时候说到。大家现在只要记着IL是实现.Net能够在多Cpu中都能运行的一个非常重要的技术。

 

2 CLR Common Language Runtime

公共代码运行时,也可以叫做公共语言运行库。但是它可不是一个用来调用Api的库,而是一个保姆,一个奶妈,一个多功能的管理员。如果学过Java的同学应该听说过JVM这个东西,而CLR就包含了一个虚拟机的功能,既然是包含,那说明还有更多功能。CLR的核心功能有:内存管理程序集加载、安全性、异常处理线程同步,可由面向CLR的所有语言使用。并保证应用和底层操作系统之间必要的分离。它相当于一个庞大的功能强大的转换机器,让你的代码可以更安全快速高效地被利用。

3 Managed

被管理的,成功的?它的意思是 托管的。何谓托管?让托儿所管理。不管理的话(非托管)会怎么样呢?大家联想一下一个婴儿自己在家,好的话什么都不会发生,不好的话家里的花瓶啊电视啊就只能呵呵了。一个道理,我们的代码在运行时可能会调用系统的东西,或者发生一些错误,或者等等你想到想不到的事。如果我们不托管,听之任之,可能就会发生一些意想不到的结果 XD。而如果(交给CLR(就是我们的托儿所))托管呢,CLR会根据不同的Cpu和不同的平台,去优化代码并帮助调用一些系统的接口(又提到多Cpu了),还会在程序运行时进行监管,把出现的错误报告给开发者并且对系统做适当的保护。

一般来说,诸如C#和VB.net 这样的语言,都是使用的托管代码。而C和C++这样的语言,是非托管的(C++也可以有托管模式)。

4 Native

本地代码,这个名词可以分两种解释说。

1)表示非托管(Unmanaged)代码。它指的是通过比如Visual C++编译代码后生成的代码,这些代码不在CLR中运行,即非托管的。

2)表示IL最终转化为的代码。这里的本地,表示的是基于代码运行的时候的环境(操作系统,Cpu指令集等等)来生成的针对特定环境的执行代码。大家可以理解为本地化,或者本“电脑”化。

 

5 JIT

Just In Time 即时编译,首先,在IL代码转换为本地代码的时候,通过JIT技术,不是将代码全部转化后运行,而是首先将要调用的函数或使用的变量转化为本地代码,暂时没调用的不转化。另外,JIT会把已经转换的代码缓存到内存中,当下次需要转化的时候,会直接使用内存中的代码,更提高了速度。

 

6 .Net Framework

这是啥玩意啊到底?首先,看名字,它是一个框架。什么框架?.Net的框架。.Net是个啥?简单说来,它就是微软的一种技术,用来实现一些用于网络交互的产品。一般来说,.Net应用都是放在.Net Framework里的,而这个Framework给.Net 的开发提供了便利,诸如工具和环境和API等等。

.Net Framework 分为两部分,一部分是库,就是大家写代码的时候调用的系统函数啊啥的。另一部分就是我上面说的CLR这个碉堡了的托儿所。

这个Framework是由虚拟机,CLR,微软API等等各种功能和技术组成的。

嗯。。。就是这样!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值