• .NET Framework 框架的一些简单介绍


    20世纪90年代以来出现的3种典型的组件技术:

    1)OMC(对象组件模型)的CORBA
    2)Microsoft的COM/DCOM
    3)Sun公司的JavaBeans

    在2002年,微软发布了.NET框架的第一个版本,声称其解决了旧问题并实现了下一代系统的目的。.NET框架是一种比MFC和COM编程技术更一致并面向对象的环境。它的特点包括:

    1)多平台。【面向异构网络、硬件平台和操作系统,可以在多种多样的系统上运行,从服务器、桌面机到PDA和移动电话。】
    2)行业标准。【实现软件系统之间的智能交互和协同工作,使用行业标准的通信协议,比如:XML、HTTP、SOAP和WSDL。】
    3)安全性。【提供一个标准化的、安全的、一致的模型和环境,提供更加安全的执行环境,即使有来源可疑的代码存在。】



    Microsoft为.NET技术制定了一整套完整的规范,便是CLICommon Language Infrastructure,公共语言基础结构,公共语言架构)。

    CLI的组成:
    1)CTSCommon Type System,公共类型系统)。【定义了一组丰富的内置类型,以及每种类新固有的、独有的特性;最重要的特征之一是所有类型都继承自公共的基类Object类】
    2)CLSCommon Language Specification,公共语言规范)。【说明了.NET兼容编程语言的规则、属性和行为,其主题包括数据类型、类结构和参数传递】
    3)CILCommon Intermediate Language,公共中间语言)。
    4)CLRCommon Language Runtime,公共语言运行库)。
    5)BCLBase Class Library,基类库)。【FCL的一个子集】
    6)元数据定义、语义
    7)其他相关标准化文档、协议、规范


     Microsoft针对CLI在Windows上的完整实现便是 .NET Framework(.NET 框架)。

    .NET Framework的主要组成
    1)CLR(Common Language Runtime,公共语言运行时,公共语言运行库)。【核心组件。提供服务:自动垃圾收集;安全和认证;通过访问BCL得到广泛的编程功能,如web服务和数据服务之类的功能】
    2)FCL(Framework Class Library,Framework类库,框架类库)。【BCL的一个超集】

    .NET Framework的优点
    1)面向对象的开发环境。【CLR、BLR和C#被设计得完全面向对象;为本地程序和分布式系统提供一致的、面向对象的编程模型;】
    2)自动垃圾收集(Garbage Collection,GC)。【GC自动从内存中删除程序不再访问的对象】
    4)互操作性。【不同.NET语言编写的软件模块无缝交互;平台调用(platform invoke,P/Incoke)的特性;允许与COM进行交互】
    4)不需要COM(Component Object Model,组件对象模型)。
    5)简化的部署。【.NET程序不需要使用注册表注册;并行执行特性】
    6)类型安全性。【CLR检查并确保参数及其它数据对的类型安全】
    7)基类库(Base Class Library,基类库)。有时称为框架类库(Framework Class Library,FCL)。【包括通用基础类、集合类、线程和同步类、XML类】

    CLR在运行期管理程序的执行,包括以下内容
    1)内存管理
    2)代码安全验证
    3)代码执行、线程管理和异常处理
    4)垃圾收集

    CLR提供的服务
    1)内存管理
    2)异常处理
    3)自动垃圾收集
    4)管理代码的执行
    5)JIT实时编译器(Just-in-Time)。
    6)类加载器。【通过访问BCL得到广泛的编程功能,如web服务和数据服务之类的功能】
    7)反射服务
    8)安全服务
    9)提供系统服务

    FCL的组成 或 服务
    1)基础类型。【整数、实数、字符串等类型定义】
    2)数据结构封装。【集合、链表、队列、堆栈等数据类型】
    3)Windows和Web等界面要素。【主要是按钮、标签、文本框、菜单等可视化控件】
    4)Web Service要素。【用于Web服务的定义、描述、配置、解析等】
    5)XML文档处理。【如XML文件、属性、元素、节点、读写器、解析器等类型】
    6)文件(IO)的输入输出。【如驱动器、目录、文件、流、读写器等类型】
    7)数据访问。【如数据连接、数据命令、数据集、数据表、记录等类型】
    8)网络通信。【如主机、管道、套接字、消息等类型】
    9)异常处理。【用于处理系统和应用程序所引发的各种异常】
    9)类型反射。【用于获取程序集、对象、方法属性、字段等目标的元数据信息类型】
    10)用于应用程序管理、操作系统功能封装、安全性控制等其他方面的类型

    .NET Framework 环境结构图:

     

     源代码文件编译成CIL的编译过程:

     程序运行时CIL编译成本机代码:

     

     .NET 框架编译和执行:

      

    注:相关名称一览:

    CLI(Common Language Infrastructure,公共语言基础结构,公共语言架构)
    CTS(Common Type System,公共类型系统)
    CLS(Common Language Specification,公共语言规范)
    CIL(Common Intermediate Language,公共中间语言)

    .NET Framework(.NET 框架)
    CLR(Common Language Runtime,公共语言运行库)
    FCL(Framework Class Library,Framework类库,框架类库)

    BCL(Base Class Library,基类库)
    实时JIT(Just-in-Time)编译器
    GC(Garbage Collection,垃圾收集)

    API(Application Programming Interface,应用程序编程接口)注:还特指API的说明文档,也称为帮助文档
    MFC(Microsoft foundation classes,微软基础类库)
    COM(Component Object Model,组件对象模型)

    managed code 托管代码
    unmanaged code 非托管代码

    平台调用(platform invoke,P/Incoke)
    Ecma(Europen Computer Manufacturers Association,欧洲计算机制造商协会)


    remark:小白个人总结的,可能写的会有不足的地方~~~~

  • 相关阅读:
    Git 学习笔记(W,I,P)
    DirectX API 编程起步 #01 项目设置
    #1004 Let the Balloon Rise
    #1003 Max Sum
    人生的第一个博客(●'◡'●)ノ♥--开博典礼
    2053——switch game
    在Activity间传递数据的四种方法及返回结果
    安卓学习第38课——ProgressDialog
    安卓学习第37课——DatePickerDialog、TimePickerDialog
    安卓学习第36课——PopupWindow
  • 原文地址:https://www.cnblogs.com/xifengyeluo/p/5894747.html
Copyright © 2020-2023  润新知