.Net FrameWork概述

.Net FrameWork 是为其运行的应用程序提供各种服务的托管执行环境,它包括两个组件,执行引擎公共语言运行时(CLR);以及.Net FrameWork 类库。

CLR是.NET FrameWork 的核心,

CLR的核心是CTS和CLS,任何编程语言,如果想要在.NET CLR上执行,就必须提供一个编译器,

编译成.NET CLR所认识的metadata以及IL,符合CTS的规定。

CTS 是通用类型系统(Common Type System)

CLS是公共语言定义(Common Language Specification)

CLR是公共语言运行时(Common language runtime)

CTS定义了一组语言编译器必须遵循的规则,以定义、引用、使用和存储引用类型和值类型

CLR的执行模型

将源代码(vb、cs)编译成 托管代码块。托管代码块由中间语言和元数据组成。

将托管代码合并成程序集,也叫组件(dll)。程序集中包含了一张叫做“清单”的模块记录了构成程序 集模块构成的信息包括资源文件及需要引用自己的信息。

加载公共语言运行库。

执行程序集的代码。
 

生成本地代码。

CLI,公共语言基础架构

BCL,基础类库(Base Class Library)

BCL是一个公共编程框架,称为基类库,所有语言的开发者都能利用它。
主要包括:执行网络操作,执行I/O操作,安全管理,文本操作,数据库操作,XML操作,与事件日志交互,跟踪和一些诊断操作,使用非托管代码,创建与调用动态代码等,粒度相对较小,为所有框架提供基础支持。

FCL,框架类库(Framework Class Library)

FCL提供了大粒度的编程框架,它是针对不同应用设计的框架 ,FCL大部分实现都引用了BCL

托管代码就是Visual Basic .NET和C#编译器编译出来的代码,托管代码在公共语言运行库(CLR)中运行

非托管代码是运行在公共语言运行库环境(CLR)的外部,由操作系统直接执行的代码。非托管代码必须提供自己的垃圾回收、类型检查、安全支持等服务

区别:
  
1、托管代码是一种中间语言,运行在CLR上;
      
    非托管代码被编译为机器码,运行在机器上。
   
2、托管代码独立于平台和语言,能更好的实现不同语言平台之间的兼容;
非托管代码依赖于平台和语言。
  
3、托管代码可享受CLR提供的服务(如安全检测、垃圾回收等),不需要自己完成这些操作;
非托管代码需要自己提供安全检测、垃圾回收等操作。

4、.Net有很多非托管的资源,比如StreamWriter、 Timer、数据库连接。

unsafe可以用来修饰类、类的成员函数、类的全局变量,但不能用来修饰类成员函数内的局部变量

运行unsafe ,需要设置:
单击“配置属性”文件夹。单击“生成”属性页。  修改“允许不安全代码块”属性

1.IL/MSIL/CIL Microsoft Intermediate Language)微软中间语言(IL是MSIL的缩写,译为中间语言)
2.CTS (Common Type System)通用类型系统

3.CLS (Common Language Specification)公共语言规范
4.CLR (Common Language Runtime)公共语言运行时(也有的叫公共语言运行库)
5.JIT (Just in time)即时编译器

6.CLI 公共语言基础架构(Common Language Infrastructure)
7. BCL 基础类库(Base Class Library)
8. FCL 框架类库(Framework Class Library)

原文地址:https://www.cnblogs.com/zhangdonglei/p/11140497.html

时间: 2024-08-29 23:55:44

.Net FrameWork概述的相关文章

Framework概述

Framework概述 Framework框架包含三个部分,分别为客户端.服务端和Linux驱动. 服务端: 包含两个重要的类,分别是WindowManagerService(WmS),作用是:各窗口的叠放次序,隐藏或者显示窗口,和ActivityManagerService(AmS),作用是:管理所有的应用程序中的Activity. 除此之外,服务端还包括了两个消息处理类,KeyQ类:该类为WmSd的内部类,继承于KeyInputQueue类,KeyQ对象一旦创建,就立即启动一个线程,该线程会

Java Collection Framework概述

文章出自:听云博客 Collection概述 Java collection是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等. Java集合主要可以划分为4个部分:List列表.Set集合.Map映射.工具类(Iterator.Arrays和Collections). Java collection 结构图 通过上图我们可以看出 Collection是一个interface Collection有List和Set两大分支. List<E>是一个队列,根据下标索引

Linux电源管理-Linux regulator framework概述

前言 1.  什么是regulator? regulator翻译为"调节器",分为voltage regulator(电压调节器)和current(电流调节器).一般电源管理芯片(Power Management IC)中会包含一个甚至多个regulator. 2.  regulator有什么作用? 通常的作用是给电子设备供电.大多数regulator可以启用(enable)和禁用(disable)其输出,同时也可以控制其输出电压(voltage)和电流(current). 从上图可以

kde framework概述(KDE Framework译文)

KDE Frameworks 基于QT框架,提供简单实用的类(例如那些KCoreAddons里的类)去为桌面应用的日常需要整合出解决方案(例如KNewStuff用于在应用中获取可下载的附加内容,或者那个强大的KIO多协议文件访问框架). KDE Frameworks 可以被用于基于CMake和QMake的工程中,其中大部分至少可用于Windows, Mac 和 Linux.每个子框架的文档已经写明如何在QMake和CMake的工程中加入对应的框架. 这些子框架根据它们的依赖被分为四个等级,例如:

Spring----&gt;projects-----&gt;Spring Framework

Spring Framework概述: Spring Framework是spring若干子项目中的一个 Spring Framework的主要功能有: 依赖注入(dependency injection/IoC), 事务管理transaction management, web applications, data access, messaging, testing and more.

Microsoft.NET和Microsoft.NET Framework

Microsoft.NET概述: 是 Microsoft XML Web services 平台.XML Web services 允许应用程序通过 Internet 进行通讯和共享数据.                             也有人理解成是微软推出的下一代面向互联网软件和服务的战略,一种新的软件设计理念和服务理念的产生. 旨在充分挖掘互联网所具有的潜力. Microsoft.NET Framework概述: 是以一种采用系统虚拟机运行的编程平台,以通用语言运行库(Common

Spring Framework 4.3.22.RELEASE Reference文档目录

<Spring Framework Reference Documentation 4.3.22.RELEASE> part I Spring Framework概述part II Spring Framework4.x的新特性part III 核心技术 7.IoC容器 8.Resources资源 9.校验.数据绑定.类型转换Validation, Data Binding, and Type Conversion 10.spring的EL表达式 11.spring AOP面向切面编程 12.

C# .Net Framework

.NET Framework概述 .NET Framework是由微软开发,一个致力于敏捷软件开发.快速应用开发.平台无关性和网络透明化的软件开发平台. .NET Framework组成 .NET Framework具有两个主要组件:公共语言运行库和.NET Framework类库. .NET Framework类库 .NET Framework类库是一个与公共语言运行库紧密集成的可以重用的类型集合.该类库是面向对象,并提供您自己的托管代码可从中导出功能的类型..NET Framework类型能

图文浅析APK程序运行的过程

概述 APK程序运行过程有别于FrameWork底层启动过程,它们是倆码事,本文将以图文方式总结一下APK启动的过程,主要分为一下部分 [1]基本概念 [2]APK过程 1 .新的知识点 [1]什么是UI线程与Thread线程区别 UI线程并不陌生,但是这玩意到底是啥,与普通线程Thread有啥区别呢? 什么是UI线程: ActivityTread类所在的线程即为UI线程,负责用户交互,处理用户消息绘制界面等 区别: UI线程的ActivityTread中的Main方法已经使用Looper.pr