公共语言运行时 CLR

  公共语言运行时(Common Language Runtime,CLR)是处于.NET核心Framework的面向对象引擎,其将各种语言编译器生成的中间代码翻译为执行应用程序所需的原生码(Native Code)。

  由于CLR将所有代码转换成公共的交互式语言,之后被编译成原生码。所以,从原则而言,.NET可以在Unix、Linux、Mac OS X或其他操作系统上实现。

  CLR在Web服务器上执行程序。CLR激活对象,对它们进行安全检查,在内存中创建它们,执行它们,并且进行垃圾回收。

时间: 2024-10-08 20:50:36

公共语言运行时 CLR的相关文章

轻型池不支持执行公共语言运行时(CLR)。禁用以下两个选项中的一个: “clr enabled”或“lightweight pooling”解决方法

执行2变一下代码   : 注意:1表示启用,0表示禁用. sp_configure 'show advanced options', 1; GO sp_configure 'lightweight pooling', 0; GO sp_configure 'clr enabled',1; go RECONFIGURE; GO EXEC sp_configure;

类型与通用语言运行时:类型转换

CLR 最重要的一个特性就是类型安全.CLR 在运行时总能知道一个对象的类型.我们也可以用过调用 GetType方法来得到对象的准确类型.因为该方法是一个虚方法.所以我们不可能利用它来篡改一个类型的信息. 例如:我们不可能重写 Employee 类的 GetType方法使之返回一个SpaceShuttle类型. 作为开发人员,我们经常会遇到需要将一个对象转换为其他类型. CLR 允许我们将对象转换为其原来的类型或者它的任何一个基类型.各个编程语言自己决定如何提供这些转型操作. 例如,C# 不需要

共享程序集和强命名程序集(4):“运行时”如何解析类型引用

GAC(Global Assembly Cache) 全局程序集缓存 安装公共语言运行库的每台计算机都有一个称为全局程序集缓存的机器级代码缓存.全局程序集缓存存储专门指定由计算机上的多个应用程序共享的程序集. "运行时"如何解析类型引用 首先是一组毫无营养但是有用的代码: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Reflection; 5 using

《转》.NET开源核心运行时,且行且珍惜

转载自infoQ 背景 InfoQ中文站此前报道过,2014年11月12日,ASP.NET之父.微软云计算与企业级产品工程部执行副总裁Scott Guthrie,在Connect全球开发者在线会议上宣布,微软将开源全部.NET核心运行时,并将.NET 扩展为可在 Linux 和 Mac OS 平台上运行..NET核心运行时将基于MIT开源许可协议发布,其中将包括执行.NET代码所需的一切项目——CLR.JIT编译器.垃圾收集器(GC)和核心.NET基础类库.此外,微软还发布了Visual Stu

承载(Host)通用语言运行时

承载(Host)通用语言运行时(CLR) 另一种使用COM 的方法是是把需要集成的 F# 代码与已有的 C/C++ 应用程序集成到一起,开成自定义的承载通用语言运行时,通用语言运行时就是 C++ 应用程序,且有一些可用的库(.lib)文件,可以在标准的 C++ 应用程序中链接它.承载通用语言运行时的代码要比加载 COM 库的代码稍许复杂一点,但不需要复杂的注册 COM 库了:这个方法还可能以非常细粒度地控制通用语言运行时的行为,虽然,我们会发现默认的行为对于大多数情况已经非常好了:但是,这种方法

浅谈 F# 2.0 的两个运行时

我们知道,F# 2.0 有面向 .NET Framework 2.0 和 .NET Framework 4 的两个运行时.此外,F# 2.0 还有一个面向 Silverlight 的运行时. 面向 .NET Framework 2.0 的 F# 2.0 运行时的核心库 (FSharp.Core.dll) 将一些 API 包含在 System 命名空间中,这些 API 与 F# 开发所需的 .NET Framework 4 API 相同.例如 System.Numerics.BigInteger

使用Mono打造轻量级的.NET程序运行时

??在使用Mono让.NET程序跨平台运行这篇文章中,我们已经对Mono以及.NET程序的运行机制有了初步的理解.今天我想来谈谈"使用Mono打造轻量级的.NET运行时"这样一个话题.为什么我会有这样一种想法呢?因为Mono和.NET都可以执行IL代码,所以我用Mono来作为.NET程序的运行时是一个顺理成章的想法.由于.NET程序需要.NET Framework提供运行支持,所以当目标设备没有安装.NET Framework或者.NET Framework版本不对的时候,我们的程序都

"运行时"如何解析类型引用

先将下面的代码保存到文本中,存放到一个目录下面,E:\aa.txt public sealed class Program{ public static void Main(){ System.Console.WriteLine("Hi"); System.Console.Read(); } } 编译上面的文本文件:         Program.exe是一个托管PE文件,由4个部分构成:PE32(+)头.CLR头.元数据以及IL.运行Program.exe时,CLR会加载并初始化它

[搬运] DotNetAnywhere:可供选择的 .NET 运行时

原文 : DotNetAnywhere: An Alternative .NET Runtime 作者 : Matt Warren 译者 : 张很水 我最近在收听一个名为DotNetRock 的优质播客,其中有以Knockout.js而闻名的Steven Sanderson 正在讨论 " WebAssembly And Blazor ". 也许你还没听过,Blazor 正试图凭借WebAssembly的魔力将 .NET 带入到浏览器中.如果您想了解更多信息,Scott Hanselme