【.NET Framework 基础】——CLR、BCL、DLL、Assembly

.NET FrameWork是用于Windows的新托管代码编程模型,它包含CLR(Common Language Runtime)以及BCL(Base CLass Library)构成。

一、CLR

1、CLR是什么?

Common Language Runtime,公共语言运行时,和JVM(Java Virtual Machine,Java虚拟机实现了Java的与平台无关的特性,它屏蔽了平台的具体信息,只需生成在Java虚拟机上运行的目标代码就可以在任何平台上都可以运行。一次编译,到处运行)一样是运行环境。

2、用来做什么?

CLR主要负责资源管理,例如内存分配,垃圾收集处理,以及保证应用和底层操作系统之间必要的分离。

3、如何对代码进行管理

(1)选择编译器

(2)将托管代码(在CLR监视下运行程序的代码)编译为MSIL(Microsoft Intermediate Language 微软中间语言)。在产生MSIL的同时产生元数据(Metadata,描述数据的数据,主要描述数据类型定义,代码引用等)共同包含在一个可移植可执行PE(Portable
Executable)文件中。

(3)用CLR自带的JIT编译器将MSIL编译成机器语言,JIT可以检测代码的安全性。

(4)执行代码,只需首次调用编译。

4、优点

CLR的最重要的特性是:跨语言,也就是说用VB.NET写的类,可以被C#类继承。

二、BCL

1、是什么?

Base Class Library,基底类别库,是公共编程框架,是CLI(Common Language Infrastructure公共语言基础结构)规范之一。

2、有什么用?

(1)提供开发各种解决方案所需物件,加速开发解决方案的速度;

(2)将各种解决方案模型一致化;

(3)在.NET平台中开发小组可以使用不同语言。

3、组成

BCL基底类别库,包含数据库类别(ADO.NET),Windows类别,XML类别,图形类别(GDI+)系统类别,以及ASP.NET类别等。

三、DLL

1、是什么?

Dynamic Link Library,动态链接库,也称为元件,CLR与BCL都是由元件构成。当我们在.EXE应用程序的时候,相应的DLL文件就会被调用,一个应用程序被分割成独立的动态链接库,可以有多个DLL文件,一个DLL文件也可以被多个应用程序共享。

2、DLL文件的作用

如果所需的文件全部放在应用程序中,那样应用程序就会很大,所占用的磁盘空间也会很大,重建时还要重新编译所有代码。而有了DLL文件就不一样了,可以将程序模块创建独立的DLL文件,只有调用的时候,才会占用内存空间。

四、Assembly

1、是什么?

Assembly程序集,由编译器得到,供CLR进一步编译执行中间产物MSIL,一般表现为.DLL,或者.EXE格式,必须依靠CLR才能顺利执行。它是一个或多个托管模块以及资源文件的组合,包含可执行应用程序.EXE以及动态链接库.DLL,是.NET Framework的组成部分。

2、组成部分

(1)程序集的自我描述:元数据以及程序集清单。

(2)实现这些类型的MSIL代码

(3)资源集(例如:位图)。

3、静态程序集 VS 动态程序集

静态程序集存储在可移植可执行PE文件中,动态程序集直接从内存运行,在执行前不存储到磁盘里。

五、总结

刚看了一集VB.NET视频,有一些看不懂的,就查啊查,查完了发现这些知识都连上了。Assembly包含.EXE和.DLL文件,.DLL又是CLR和BCL的组成部分。.NET也是由许多的.DLL组成的。对于.NET FrameWork的了解又多了一点点~

时间: 2024-07-31 14:25:52

【.NET Framework 基础】——CLR、BCL、DLL、Assembly的相关文章

C#、.NET Framework、CLR的关系

C#..NET Framework.CLR的关系 很多人没有将C#..NET Framework(.NET框架).CLR(Common Language Runtime,公共语言运行库)这三者之间的关系区分清楚,认为其版本号是一一对应的.其实不然,.NET框架是一个独立发布的软件包,其包含了CLR.类库以及相关的语言编辑器等工具.C#代码经过编译之后在CLR环境中运行.由于.NET框架3.0/3.5其实是.NET2.0的扩展(只是增加了一些新的程序集),所以.NET3.0/3.5的CLR版本还是

编译器错误消息: CS0016: 未能写入输出文件“c:/Windows/Microsoft.NET/Framework/v2.0.50727/....dll”--“拒绝访问。

错误如下: “/”应用程序中的服务器错误. 编译错误 说明: 在编译向该请求提供服务所需资源的过程中出现错误.请检查下列特定错误详细信息并适当地修改源代码. 编译器错误消息: CS0016: 未能写入输出文件“c:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/root/d553c2e4/701310ee /App_Web_default.aspx.cdcab7d2.seiozvdt.dll”--“拒绝访问.

.Net Framework基础知识

.net framework是microsoft最新的开发平台,现在最新版本为4.0. .net可以用来开发windows应用程序,web应用程序,web服务和其它各种类型的程序. .net可以用于多种语言,流行的开发语言为C#. .net主要包含了一个非常大的库主要由通用类型系统(common type system(CTS)负责.net在各种语言中进行交互操作)和一个公共语言运行库(common language runtime(CLR)负责管理用.net库开发的所用应用程序的执行). .n

Spring Framework基础学习

Spring Framework基础学习 Core support for dependency injection,transaction management,web applications,data access,messaging,testing and more 推荐的官方文章:http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/index.html 一.Instrod

.NET Framework的CLR提供了三种方法来完成对共享资源

.NET Framework的CLR提供了三种方法来完成对共享资源 ,诸如全局变量域,特定的代码段,静态的和实例化的方法和域. (1) 代码域同步:使用MonITor类可以同步静态/实例化的方法的全部代码或者部分代码段.不支持静态域的同步.在实例化的方法中,this指针用于同步:而在静态的方法中,类用于同步,这在后面会讲到. (2) 手工同步:使用不同的同步类(诸如WaitHandle, Mutex, ReaderWrITerLock, ManualResetEvent, AutoResetEv

(四)Robot Framework 基础关键字

(四)Robot Framework 基础关键字 发布时间 2017年9月28日 虫师 相信你已经迫不及待的要拿 Robot Framework 写自动化测试项目了,先别着急! 当你要使用 Python 去开发一个网站的时候,是不是要先从 Python 的基本语法学起? Builtin 库是 Robot Framework 自带的基础库,提供了一套基础的关键字.本节介绍的大多关键字都由该库提供. log 就是 "print" log 关键字就是编程语言里的 "print&qu

.NET Framework基础

MSDN的解释:.NET Framework  是为其运行的应用程序提供各种服务的托管执行环境CLR是公共语言运行时CLR是.NET Framework的核心 IL/MSIL/CIL  Microsoft Intermediate Language  微软中间语言(IL是MSIL的缩写,译为中间语言) CTS是通用类型系统(Common Type System)CLS是公共语言定义(Common Language Specification)CLR是公共语言运行时(Common Language

Entity Framework 基础

一.什么是Entity Framework 微软官方提供的ORM工具,ORM让开发人员节省数据库访问的代码时间,将更多的时间放到业务逻辑层代码上.EF提供变更跟踪.唯一性约束.惰性加载.查询事物等.开发人员使用Linq语言,对数据库操作如同操作Object对象一样省事. EF有三种使用场景,1. 从数据库生成Class,2.由实体类生成数据库表结构,3.  通过数据库可视化设计器设计数据库,同时生成实体类. O/RM是什么? ORM 是将数据存储从域对象自动映射到关系型数据库的工具.ORM主要包

.net平台 .net Framework 组织结构 .net Framework类库 CLR C# 介绍

一..net平台 .NET现在可以看成微软的一个品牌,微软有两个非常成功的品牌,那就是Windows和Office. .NET会成为微软的另一个品牌.它不仅仅是一组技术,产品,或服务(微软的服务包括MSN, Passport, MSDN订阅,等等)一个品牌具有一些特征,如Rolex是一个手表品牌,它代表了高质量,时尚,昂贵,成功,等等. 二..net Framework组织结构 主要包括三部分:1.公共语言规范 2..NET Framework类库 3.公共语言运行库CLR(托管和执行代码) 三