zoukankan      html  css  js  c++  java
  • .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技术制定了一整套完整的规范,便是CLI(Common 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)文件的输入输出。【如驱动器、目录、文件、流、读写器等类型】
    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,欧洲计算机制造商协会)

  • 相关阅读:
    HDU 1850 Being a Good Boy in Spring Festival
    UESTC 1080 空心矩阵
    HDU 2491 Priest John's Busiest Day
    UVALive 6181
    ZOJ 2674 Strange Limit
    UVA 12532 Interval Product
    UESTC 1237 质因子分解
    UESTC 1014 Shot
    xe5 android listbox的 TMetropolisUIListBoxItem
    xe5 android tts(Text To Speech)
  • 原文地址:https://www.cnblogs.com/pangguoming/p/10946090.html
Copyright © 2011-2022 走看看