标签:
Microsoft .NET Framework是用于Windows的新托管代码编程模型。它将强大的功能与新技术结合起来,用于构建具有视觉上引人注目的用户体验的应用程序,实现跨技术边界的无缝通信,并且能支持各种业务流程。
| 
 版本  | 
 CLR版本  | 
 完整版本号  | 
 发行日期  | 
 Visual Studio  | 
 Windows 默认安装  | 
| 
 1.0  | 
 1.0  | 
 1.0.3705.0  | 
 2002/2/13  | 
 Visual Studio .NET 2002  | 
 Windows XP Media Center Edition  | 
| 
 
  | 
 
  | 
 
  | 
 
  | 
 
  | 
 Windows XP Tablet PC Edition  | 
| 
 1.1  | 
 1.1  | 
 1.1.4322.573  | 
 2003/4/24  | 
 Visual Studio .NET 2003  | 
 Windows Server 2003  | 
| 
 2.0  | 
 2.0  | 
 2.0.50727.42  | 
 2005/11/7  | 
 Visual Studio 2005  | 
 
  | 
| 
 3.0  | 
 2.0  | 
 3.0.4506.30  | 
 2006/11/6  | 
 
  | 
 Windows Vista  | 
| 
 
  | 
 
  | 
 
  | 
 
  | 
 
  | 
 Windows Server 2008  | 
| 
 3.5  | 
 2.0  | 
 3.5.21022.8  | 
 2007/11/19  | 
 Visual Studio 2008  | 
 Windows 7  | 
| 
 
  | 
 
  | 
 
  | 
 
  | 
 
  | 
 Windows Server 2008 R2  | 
| 
 4.0  | 
 4.0  | 
 4.0.30319.1  | 
 2010/4/12  | 
 Visual Studio 2010  | 
 
  | 
| 
 4.5  | 
 4.0  | 
 4.5.40805  | 
 2012/2/20  | 
 Visual Studio 2012 RC  | 
 Windows 8 RP  | 
| 
 
  | 
 
  | 
 
  | 
 
  | 
 
  | 
 Windows Server 8 RC  | 
在编译使用.NET Framework库的代码时,不是立即创建专用于操作系统的本机代码,而是把代码编译为通用的中间语言(CIL)代码,这些代码并非专门用于任何一种操作系统,也并非专门用于C#。其他的.NET语言也可以在第一阶段编译为这种语言。
显然,要执行应用程序,必须完成更多的工作,这是Just-In-Time(JIT)编译器的任务,它把CIL编译为专用于OS和目标及其结构的本机代码。这样OS才能执行应用程序。
2. 程序集:
在编译应用程序时,所创建的CIL代码存储在一个程序集中。程序集包括可执行的应用程序文件(这些文件可以直接在Windows上运行,不需要其他程序,其扩展名是.exe)和其他应用程序使用的库(其扩展名是.dll)。
除了包含CIL外,程序集还包含元信息(即程序集中包含的数据的信息,也称为元数据)和可选资源(CIL使用的其他数据,例如,声音文件或图片)。元信息允许程序集是完全自描述的。不需要其他信息就可以使用程序集。这样,部署应用程序就非常简单了,只需要把文件复制到远程计算机上的目录下即可。通常,我们把那些可重用的代码放在所有应用程序都可以访问的地方。在.NET Framework中,这个地方是全局程序集缓存(Global Assembly Cache,GAC),我们只需要把包含代码的程序集放在该缓存对应的位置即可。
3. 托管代码:
在将代码编译为CIL,再用JIT编译器将它编译为本机代码后,CLR的任务还没有全部完成,还需要管理正在执行的用.NET Framework编写的代码(这个执行代码的阶段通常称为运行时,RunTime)。即CLR管理着应用程序,其方式是管理内存、处理安全性以及允许进行跨语言调试等。相反,不受CLR控制运行的应用程序属于非托管类型,某些语言如C++可以用于编写这类应用程序,例如,访问操作系统的低级功能。但是在C#中,只能编写在托管环境下运行的代码。我们将使用CLR托管功能,让.NET自己与操作系统进行交互。
4. 垃圾回收:
托管代码最重要的一个功能是垃圾回收。这种.NET方法可以确保应用程序不再使用某些内存时,就会完全释放这些资源。.NET垃圾回收会定期检查计算机内存,从中删除不再需要的内容。它不设置时间帧,可能一秒钟内会进行上千次的检查,也可能几秒钟才检查一次,或者随时进行检查,但一定会进行检查。
在编程时,如果需要许多内存才能运行的代码应自己执行这样的检查,而不是坐等垃圾回收。
C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
2. C#与.NET关系:
C#只是.NET开发的一种语言。
标签:
原文地址:http://www.cnblogs.com/haizhibin1989/p/4615026.html