您的位置:首页 > 职场人生

【黑马程序员】 What is .NET?

2012-07-31 17:14 197 查看
---------------------- Windows Phone 7手机开发.Net培训、期待与您交流!
---------------------- 

      作为未来的.NET码农,当然首先得弄清楚.NET到底是怎样一个东东。本篇博客整理了一下我在传智播客的视频以及参考书中看到的一些信息。

      .NET Framework 是跨微软各操作系统的一个平台一个框架一种技术。

      利用.NET技术可以开发桌面应用程序(Windows Form),Internet应用程序(asp.net/web service),Windows Phone应用。应用程序有C/S(client-server)模式和B/S(browser-server)模式。

      .NET Framework的整个结构如下图所示,由两部分组成:.NET Framework 类库和CLR。



[align=left] [/align]
      .NET Framework 类库是一个由类、接口和值类型组成的库。该库提供对系统功能的访问,是建立 .NET Framework 应用程序、组件和控件的基础。

      因为ASP.NET和WinForms的表现层不同,所以它们所使用的表现层类库不一样,但是访问数据库和XML的类库以及基本框架类库是公用的。这样,WinForms应用程序要改为Web应用程序或者Web应用程序要改为WinForms,只需修改表现层,底层的数据库访问层以及业务逻辑层基本不用修改。

      除了类库,.NETFramework还包括CLR(公共语言运行时),负责托管用.NET类库开发的应用程序的运行。CLR包括CLS(公共语言规范)、CTS(公共类型系统)和JIT(即时编译器)三个组件。

      .NET程序的执行机制如下图所示:



[align=center] [/align]

      .NET语言(如C#,VB.NET等)写的代码首先被各自的编译器编译成MSIL(微软中间语言,又称CIL,公共中间语言) 代码,CIL与编程语言、CPU、操作系统无关。我们所看到的.NET应用程序的exe文件或者dll文件(程序集,assembly),里面其实就是CIL代码,机器并不能直接运行。运行时,托管给了.NET Framework的CLR来执行,CLR的JIT编译器将CIL编译成操作系统和机器能够理解的本机代码(native
code),然后被机器执行。JIT具有平台特异性,它将CIL编译成相应操作系统和机器能够理解的native code。这样就实现了.NET开发的平台无关性,我们无须关心底层的硬件和操作系统的细节,而把精力放在让代码实现更多有趣的功能上。

      CLR的作用不止于JIT的即时编译。在.NET程序运行时,由CLR负责托管。CLR管理内存,处理安全问题,允许跨语言调试,处理和操作系统之间的交互等。托管代码的一个重要特征就是垃圾回收,这是.NET确保被应用程序占用的内存不再使用时被完全释放掉的方法。.NET垃圾回收机制是周期性的监视内存,从中移除任何不再被使用的东西。垃圾回收的发生没有一定的时间界定,但是它一定会发生。正因为垃圾回收发生的时间不可预测,所以运行时需要大量内存的代码应该自我整理,而不是等待垃圾回收机制来回收。

      CLR除了JIT,还有两个重要组件,即CLS和CTS,CLS(公共语言规范)规定了CIL的语法规则,CTS(公共类型系统)定义了CIL中的基本类型。.NET编程语言写的代码被相应的编译器编译成CIL时,就应遵循这两条规则。所以一种语言只要能够根据这两条规则编译成CIL,就支持.NET平台。而且,由于CIL的语言无关性,可以实现不同.NET开发语言间的跨语言调用。目前已有不少语言都支持.NET开发,如C#、VB.NET、Jscript、J#、Pascal、IronPython等。

      C#是微软为.NET Framework 量身订做的程序语言,可以开发基于.NET平台的应用。这也是我今后学习的重点。

----------------------
Windows Phone 7手机开发、.Net培训、期待与您交流! ---------------------- 详细请查看:http://net.itheima.com/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: