net中间语言需要进行编译吗
① asp.net 和.net和C#.net和C#有什么不一样。
ASP.NET、.NET和C#的区别和关系如下:
一、asp.net是一种用来快速创建动态Web网站的技术,不是语言,它使用C#(或者vb.net)为开发语言。C#是一种面向对象的编程语言;net只是一个框架,.net中所有的编程语言,比如c# vb.net等编写的程序必须在.netframework框架下运行。
.NET 分成两个方面:WinForm和WebForm,ASP.NET就是属于WebForm,也就是平时说的B/S模式的开发。而WinForm就是属于C/S模式。
Asp.NET可以用C#或VB.NET来开发。编译后形成CLR,通过服务器的IIS+.NETFrameWork再次编译来运行。
二、.Net全称.NETFramework是一个开发和运行环境,该战略是微软的一项全新创意,它将使得“互联网行业进入一个更先进的阶段”,.NET不是一种编程语言。简单说就是一组类库框架。
.NET有很多种语言组成,比如C#、 VB.NET、J#、Jsript、Managed C++,但是都是运行在.NET FrameWork Run Time底下的。其中,C#是主流。
三、C#是.NET Framework框架支持的一种主力开发语言,可用于开发ASP.NET网站,Windows程序,控制台程序,甚至于手机软件(Windows Phone)。

(1)net中间语言需要进行编译吗扩展阅读:
.NET主要的优点有:
.NET的主要优点有跨语言,跨平台,安全,以及对开放互联网标准和协议的支持。
.NET支持多种语言的互操作,即在一种语言下开发的组件,可在另一组件下通过面向对象的继承而得以重用。
.NET通过将各语言先编译成中间语言(IL),然后再执行时用即时(Just
In Time)编译器将之编译成本地平台代码来实现异构平台下对象的互操作,.NET通过公共语言运行库CR(Common Language
Runtime)来实现资源对象,类型的安全。
.NET通过对HTTP,XML等Internet标准的支持提供在异构网络环境下获取远程服务,连接远程设备,交互远程应用的编程界面。
② 什么是中间语言(IL)它的作用
IL是.NET框架中中间语言(Intermediate Language)的缩写。使用.NET框架提供的编译器可以直接将源程序编译为.exe或.dll文件,但此时编译出来的程序代码并不是CPU能直接执行的机器代码,而是一种中间语言IL(Intermedate Language)的代码。
使用中间语言的优点有两点,一是可以实现平台无关性,既与特定CPU无关;二是只要把.NET框架某种语言编译成IL代码,就实现.NET框架中语言之间的交互操作。(《C#程序设计及应用教程》(第2版),马骏 主编)
参考:http://ke..com/view/2278922.htm
③ 谁能解释一下.net平台的语言无关性和语言继承性
.net 平台支持很多语言,常见有:C#、VB、C++、F#、J#(Java)等
但是实际上经过编译之后,统一生成了中间语言“IL”,类似汇编,就因为这样,才可以在以上所有的语言中相互引用dll,因为实际是都是一种语言“IL”
在执行的时候,实际上.net会把IL先给编译成机器码,也就是二进制,这才是真正的可执行代码。
以上纯手打,以下是网上摘录的,属于纯理论:
.net framework的核心是其运行库的执行环境,叫做公共语言运行库,简称CLR,将在CLR的控制下运行的代码称为托管代码,在CLR执行代码之前,需要编译,分为2个阶段:
1: 把源代码编译为Microsoft中间语言(MSIL);
2: CLR把MSIL编译为平台专用的机器代码;
也就是说,不管你用什么语言来编写源代码,它都会通过它自己的编译器编译成MISL,从而转换成机器码,都能被机器识别!语言的集成性我想主要是说它的公共语言规范(CLS)公共语言规范和通用类型系统一起确保了语言的相互操作性,CLS是一个最低标准集,所有面向.net的编译器都必须支持它.每个语言都符合这个规范,从而满足了语言的互相调用和互操作
④ .NET程序首先被编译成中间语言IL,IL经过再次编译后才生成机器码。这样做有什么好处
方便独立开发语言和虚拟机吧。
还有这样就可以兼容各种语言,生成相同的il。
⑤ .net写的程序可以编译成脱离.netframework运行的二进制程序吗
不行的。.NET编写的程序,是Microsoft号称能在多种平台上运行,运行的基石是.Net Framwork。不过Microsoft很早提出把程序编译成二进制的目标程序,但至今没有实现
⑥ .NET学习:中间语言(IL)=托管代码
不完全正确,托管代码是由公共语言运行库环境(而不是直接由操作系统)执行的代码。托管代码应用程序可以获得公共语言运行库服务,例如自动垃圾回收、运行库类型检查和安全支持等。这些服务帮助提供独立于平台和语言的、统一的托管代码应用程序行为。
托管代码是可以使用20多种支持Microsoft .NET Framework的高级语言编写的代码,它们包括:C#, J#, Microsoft Visual Basic .NET, Microsoft JScript .NET, 以及C++。所有的语言共享统一的类库集合,并能被编码成为中间语言(IL)。运行库编译器(runtime-aware compiler)在托管执行环境下编译中间语言(IL)使之成为本地可执行的代码,并使用数组边界和索引检查,异常处理,垃圾回收等手段确保类型的安全。
在托管执行环境中使用托管代码及其编译,可以避免许多典型的导致安全黑洞和不稳定程序的编程错误。同样,许多不可靠的设计也自动的被增强了安全性,例如 类型安全检查,内存管理和释放无效对象。程序员可以花更多的精力关注程序的应用逻辑设计并可以减少代码的编写量。这就意味着更短的开发时间和更健壮的程序。
简单点说,托管代码是一microsoft的中间语言,他主要的作用是在.NET FRAMEWORK的CLR执行代码前去编译源代码,也就是说托管代码充当着翻译的作用,源代码在运行时分为两个阶段:
1.源代码编译为托管代码;(所以源代码可以有很多种,如VB,C#,J#)
2.托管代码编译为microsoft系统的.net平台专用文件(如类库、可执行文件等),即中间语言。
⑦ .net包含什么
.Net主要包括普通语言运行时(Common Language Runtime)和.Net构架类库。
.Net是为简化在第三代因特网的高分布式环境下的应用程序开发,基于开放互联网标准和协议之上,实现异质语言和平台高度交互性,而构建的新一代计算和通信平台。

(7)net中间语言需要进行编译吗扩展阅读:
.Net的主要优点有跨语言,跨平台,安全,以及对开放互联网标准和协议的支持。
.Net支持多种语言的互操作,即在一种语言下开发的组件,可在另一组件下通过面向对象的继承而得以重用,目前.Net支持的语言达二十多种。
.Net通过将各语言先编译成中间语言(IL),然后在执行使用即时(Just In Time)编译器将之编译成本地平台代码来实现异构平台下对象的互操作,目前.Net支持的平台有Windows,Linux和Unix的支持正在开发中。
⑧ C#程序不是一次编译后执行了,而是编译成中间代码,在。net环境由JIA编译器边编辑边执行是什么意思
c#和c++不同,c++是完全编译的,不需要特别的辅助容器就可以直接运行,c#和vb等等不是完全编译的程序,是一种解释性程序,源代码一般只能编译成一种中间语言(MSIL)然后在.net对应版本的容器中执行(.net framework),也就死c #程序的执行要依靠framwork的解释才能执行
⑨ .net如何防反编译
.net是中间语言十分容易被反编译,通常都使用混淆作为一种加密手段。不过混淆不是真正防反编译,只不过反编译后代码难读懂而已,并且现在破解混淆的方式也比较多。所以真正要防反编译还是需要通过加密代码的方式。比如德国威步他们提供一种对.NET代码完全加密保护的方式来防止反编译的,曾经测试过用Reflector(.net反编译工具)反编译他们加密软件加密的.NET程序,的确完全无法看到源代码了。
