`
truelove12358
  • 浏览: 77534 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

什么是.NET平台,啥是CLR

 
阅读更多

首先要清楚的是,.NET平台与C#不是一回事.对开发人员来讲他有俩个概念:首先,它是C#,VB.net等程序运行的平台;其次,它因为为这些语言提供了丰富的类库(称之为基类库)

对于一个将要面向.NET平台进行开发的人来说,了解一下.NET平台的整个构成是非常有必要的,如图1所示即说明了.NET平台的整体结构:

这个图就是著名的.NET平台结构图,从这个图上可以看到,.NET Framework是在Microsoft.NET平台上开发的基础,ASP.NET、Windows Forms 和VS.NET都不过是.NET平台开发的一部分,他的用于.NET应用程序的开发及展示。.NET平台的核心技术为:通用语言运行时(CLR:Common Language Runtiome)、基类库(BCL:Base Class Library)、.NET语言及Visual Studio.NET

从这个图上可以看出,.NET Framework是架构在Windows平台上的一个虚拟的运行平台,你可以想象将最下层Windows换做其他的操作系统,例如说Linux,一样可以实现使用符合CLS(Common Language Specification,通用语言规范)的.NET语言,(VB.NET、C#、JScript.NET等),来创建ASP.NET或Windows Form(可能会叫Linux Forms)应用程序的功能,这其实就是Mono计划要实现的功能。所以可以这么认为,理论上,C#是一种可以跨平台的语言,这很象Java。C#另一个比较象Java的地方是,它也是一种(特殊意义上的)语言,同Java一样,C#编写的程序代码也是先通过C#编译器编译为一种特殊的字节代码,(Microsoft Intermediate Language,MSIL,微软)中间语言,运行时再经由特定的编译器(JIT编译器,Just In tIME,JITer)编译为机器代码,以供操作系统执行.
不仅是C#语言,所有.NET语言(将会包括我们常用的几十种现代的编码语言)都可以编写面向CLR的程序代码,这种代码在.NET中被称为托管代码(Managed Code),所有的Managed Code都直接运行在CLR上,具有与平台无关的特性。

解释性的语言很安全,并且可以通过他的运行平台为其赋予更多的功能,例如自动内存管理,异常处理等,事实上,C#语言的许多特点都是由CLR提供的,如图2所示的CLR结构图说明了这一点。


图2

通用语言运行时(CommonLanguageRuntiome,CLR)最早被称为下一代Windows服务运行时(NGWS Runtime).它是直接建立在操作系统上的一个虚拟环境,主要的任务是管理代码的运行。CLR现在支持几十种现代的编程语言为它编写代码,然后以一种中间语言(Intermediate Langeoage,IL)代码的形成被执行。并且,CLR还提供了许多功能以简化代码的开发和应用配置,同时也改善了应用程序的可靠性。如你所知,如果某种语言的编译器是以运行时为目标的,那么利用该语言开发生成的代码在.NET中被称为托管代码,因为这样的代码是直接运行在CLR上的,所以具有与平台无关的特点。

从图2可以看到,C#所具有的许多特点都是由CLR提供的,如类型安全(Type Checker)、垃圾回收(Garbage Collector)、异常处理(Exception Manager)、向下兼容(COM Marshaler)等,具体的说,.NET上的CLR为开发者提供如下的服务:

*平台无关:CLR实际上是提供了一项使用了虚拟机技术的产品,他构架在操作系统之上,并不要求程序的运行平台是Windows系统,只要是能够支持它的运行库的系统,都可以在上面运行.NET应用。所以,一个完全由托管代码组成的应用程序,只要编译一次,就可以在任何支持.NET的平台上运行.
*跨语言集成:CLR语序开发这以任何语言进行开发,用这些语言开发的代码,可以在CLR环境下紧密无缝的进行交叉调用,例如,可以用VB声明一个基类对象,然后在C#代码中直接创建次基类的派生类。

*自动内存管理:CLR提供了拉架收集机制,可以自动管理内存。当对象或变量的生命周期结速后,CLR会自动释放他们所占用的内存.

*跨语言异处理
*版本控制
*.NET安全
*简单的组件互操作性。
*自描述组件:自描述组件是指将所有数据和代码都放在一个文件中的执行文件。自描诉组件可以大大简化系统的开发和配置,并且改进系统的可靠性。

在.NET平台结构图中,CLR的上面是.NET的基类库,这组基类库包括从基本输入输出到数据访问等各方面,提供了一个统一的

分享到:
评论

相关推荐

    微软.NET CLR统计分析器源码

    【标题】"微软.NET CLR统计分析器源码"是一个用于深入理解.NET Common Language Runtime (CLR) 内部工作原理的工具。此分析器能够提供关于应用程序的内存使用、性能和其他关键信息的详细统计,帮助开发者优化.NET...

    C++.NET CLR

    总的来说,C++.NET CLR提供了一个强大的工具集,让C++程序员能够在.NET平台上开发高效、可维护的代码。通过学习和掌握C++.NET CLR,开发者可以充分利用.NET Framework的全部功能,同时保持C++的灵活性和性能优势。这...

    .NET CLR via C#(第4版) 最新完整版 高清文字版

    本书针对clr、C#5.0和.net framework 4.5进行深入、全面的探讨,并结合实例介绍了如何利用它们进行设计、开发和调试。 本书深入、全面探讨.NET Framework、CRL和多核编程,广泛讨论FrameworkClassLibrary(FCL)核心...

    accp6.0 S2 深入.NET平台和C#编程答案

    在这个阶段的学习中,学员将掌握.NET平台的核心概念,包括Common Language Runtime (CLR)、.NET Framework类库以及C#语言的关键特性。 1. **.NET平台**:.NET是由微软开发的一个全面的开发平台,其核心是CLR...

    S2-1-深入.NET平台和C#编程(PPT+源码)【第八章】

    这个平台包括.NET Framework、Common Language Runtime (CLR) 和 .NET Standard等关键组成部分。.NET Framework是.NET平台的核心,它提供了一组丰富的类库,支持多种编程语言,如C#、VB.NET、F#等。 Common ...

    深入.NET平台和C#编程(PPT+源码)【第二章】

    在深入.NET平台和C#编程的第二章中,我们将探讨.NET框架的核心概念,以及C#语言的高级特性。这一章是北大青鸟课程的一部分,旨在帮助学员深化对.NET开发环境的理解,提升C#编程能力。 首先,.NET框架是微软推出的一...

    深入.NET平台和C#编程(.NETOOP)第一章

    2. **Common Language Runtime (CLR)**: CLR是.NET Framework的基础,它是.NET应用程序的执行引擎。它负责代码的编译(JIT)、内存管理、异常处理和安全性等。 3. **C#语言基础**: C#是一种现代化、类型安全的面向...

    深入.NET平台和C#编程提供给学员的素材

    .NET平台是微软推出的一个开源、跨平台的应用程序开发框架,它提供了丰富的类库和工具,使得开发者可以高效地构建各种类型的应用程序,包括桌面应用、Web应用、移动应用以及云服务。深入理解.NET平台,需要了解以下...

    S2-1-深入.NET平台和C#编程(PPT+源码)【第七章】

    .NET平台的核心组成部分有Common Language Runtime (CLR)、Base Class Library (BCL) 和 .NET Framework Class Library (FCL)。CLR是.NET应用程序的执行环境,负责内存管理、类型安全、异常处理等功能;BCL和FCL则...

    北大青鸟 深入.NET平台和C#编程

    .NET平台是由微软公司开发的一个全面的开发和运行环境,它提供了一个统一的软件开发模型,包括.NET Framework、Common Language Runtime (CLR) 和 Class Library。.NET Framework是.NET平台的核心,它包含了运行托管...

    .Net平台开发实践总结.Net平台开发实践总结.Net平台开发实践总结.Net平台开发实践总结

    .NET平台是微软推出的一种软件开发框架,用于构建各种应用程序,包括桌面、Web、移动和云应用。这个平台的核心是.NET Framework,它包含了运行时环境(CLR,Common Language Runtime)和丰富的类库,使得开发者能够...

    深入.NET平台和C#编程第一章PPT.rar

    .NET平台的核心组成部分包括Common Language Runtime (CLR) 和 Framework Class Library (FCL)。CLR是.NET应用程序的执行引擎,负责代码的编译、优化和内存管理;FCL则包含了大量的预定义类和接口,用于实现各种功能...

    CLR规范(.NET规范)

    - **平台设计者的视角**:对于.NET平台的设计者来说,CLR规范提供了构建可扩展、跨平台的.NET框架的基础。通过遵循这些规范,可以确保.NET平台在不同操作系统上的兼容性和一致性。 总之,CLR规范不仅是.NET平台的...

    深入.net平台和c#编程PPT-04

    【深入.NET平台与C#编程】是IT领域中一项重要的学习内容,涵盖了.NET框架的核心概念、C#语言的高级特性以及如何利用这些技术进行高效软件开发。这份PPT-04可能包含以下关键知识点: 1. **.NET框架概述**:.NET框架...

    S2-1-深入.NET平台和C#编程(PPT+源码)【第十一章】

    《深入.NET平台和C#编程》是针对高级开发者的一份宝贵资源,主要涵盖了.NET框架的深层概念以及C#编程语言的高级用法。本资料包括PPT演示文稿和源代码,非常适合那些希望深化.NET技术和C#编程技能的学习者。 在第十...

    ACCP5.0深入.NET平台和C#编程(指导学习)

    .NET平台的核心组成部分包括Common Language Runtime (CLR)、.NET Framework类库、Assembly(程序集)和Common Type System (CTS)。CLR是.NET应用程序的执行环境,负责代码的编译、安全检查、内存管理等;类库则提供...

    S2 7.0深入.NET平台和C#编程

    首先,.NET平台是微软推出的一款开源、跨平台的开发框架,它为开发者提供了构建各种类型的应用程序所需的工具和服务。平台的核心部分是Common Language Runtime (CLR),它是.NET应用程序的执行环境,负责代码的编译...

    深入.NET平台和C#编程

    在.NET平台上,学习者首先要理解的是.NET Framework的核心组成部分,包括Common Language Runtime (CLR) 和 .NET Framework Class Library。CLR是.NET平台的基础,它提供了类型安全、垃圾回收、异常处理等关键功能,...

    CLRProfiler 内存泄漏工具 .net

    CLRProfiler是.NET Framework中用于诊断内存管理问题的强大工具,尤其是针对内存泄漏的检测。它能够帮助开发者深入理解应用程序在运行时如何使用内存,以及何时和为何会出现内存消耗异常的情况。以下是对这个工具...

    S2深入.NET平台指导学习2

    首先,我们要理解.NET平台是什么。它是由微软开发的一个全面的软件框架,旨在简化应用程序开发,提高跨平台兼容性和性能。.NET平台包含了.NET Framework、.NET Core(现在已发展为.NET)以及.NET Standard等组成部分...

Global site tag (gtag.js) - Google Analytics