zoukankan      html  css  js  c++  java
  • 关于.net的一些概念

    1. C#

    C#是由微软开发的基于.NET Framework的一种面向对象的广泛应用的高级编程语言。

    2. .NET Framework

    .NET框架(.NET Framework) 是由微软开发,一个致力于敏捷软件开发(Agile softwaredevelopment)、快速应用开发(Rapidapplication development)、平台无关性和网络透明化的软件开发平台。

    3. CLR

    是.NET框架的核心组件,负责管理程序的执行。

    功能:

    自动垃圾收集

    安全和认证

    通过访问BCL得到广泛的编程功能

    4. BCL,FCL

    基类库(BCL)就.NET Framework提供的基础类库。我们编写.NET程序时,可以调用它们。BCL提供的类库:

    当你通过VS创建一个项目后,你这个项目就已经引用好了通过.NET下的语言编写好的一些类库。比如控制台中你直接就可以用ConSole类来输出信息,或者using System.IO 即可通过File类对文件进行读取或写入操作,这些类都是微软帮你写好的,不用你自己去编写,它帮你编写了一个面向.NET的开发语言中使用的基本的功能,这部分类,我们称之为BCL(Base Class Library), 基础类库,它们大多都包含在System命名空间下

    1. 通用基础类

    这些类提供了一组极为强大的工具,可以应用到许多编程任务中,比如文件操作,字符串操作、安全和加密

    1. 集合类

    这些类实现了列表、字典、散列表以及位数组

    1. 线程和同步类

    这些类用于创建多线程程序

    1. XML类

    用于创建、读取以及操作XML文档

    框架类库(FCL)是更广泛的库,例如包含:ASP.NET,WinForms,XML堆栈,ADO.NET等。你可以说FCL包括BCL。

    在FCL中,除了最基础的那部分BCL之外,还包含我们常见的 如 : 用于网站开发技术的 ASP.NET类库,该子类包含webform/webpage/mvc,用于桌面开发的 WPF类库、WinForm类库,用于通信交互的WCF、asp.net web api、Web Service类库等等

    5. JIT

    JIT, just in time, 即时编译。在CLR中,把IL转换成机器代码的工作交给了JIT编译器。即时编译只在方法第一次被调用时发生。

    6. CLI,CTS,CLS

    CLS是CTS的子集,CLR是CTS的具体实现

    CLI,Common Language Infrastructure, 公用语言基础, 是一组阐述了系统的架构、规则和约定的规范。

    CTS, Common Type System, 公共类型系统。CTS规定了在托管代码中一定会使用的类型的特征,包括:类、结构、委托,类中的方法、字段、属性、事件等,还定义了一些约束,比如所有类型都隐式继承自System.Object类型。

    CLS, Common Language Specification, 公共语言规范,必须完全符合CTS的标准,是CTS的子集。

    详细说明了一个.NET兼容编程语言的规则、属性和行为,其主题包括数据类型、类结构和参数传递。

    比如C#编译生成的程序集有很多类,VB编译生成的程序集也有很多类,现在VB编译需要引用C#程序集的某个类,怎么办呢?

     我们需要让C#程序集中,需要被引用的这个类符合CLS规范,.NET为我们准备了CLSCompliant特性。

    [assembly:CLSCompliant(true)]
    public class SomeClass
    {    
    }

    7. IL

    IL,Intermediage Language,中间语言,并不是CPU可以直接执行的本地机器语言,在转换成计算机可以识别的指令之前,还要进行一个被称为"Just in time"的二次编译过程。在.NET框架下,任何语言,比如C++,VB.NET,C#,等等,在经过各自的编译器编译之后,都会被转换成中间语言。IL还有另外的2种叫法:CIL,Common Intermediate Language;MSIL, Microsoft Intermediate Language。

    8. 托管代码(managed code)和非托管代码(unmanaged code)

    托管代码:为.NET框架编写的代码,需要.NET Framework运行环境

    非托管代码:不在CLR控制之下运行的代码,比如win32 C/C++

    9. 程序集(Assembly)

    .NET语言编译器根据源代码文件生成的文件,格式dll或者exe,包括CIL,Type Metadata,Reference Metadata.

    10. Assembly Manifest 程序集清单

    11. 类型元数据

    12. 引用元数据

    13. .net core

    14.Mono与Xamarin

    15. .net standard

    “菜”鸟理解.NET Framework(CLI,CLS,CTS,CLR,FCL,BCL)

    https://www.cnblogs.com/eshizhan/archive/2010/01/26/1657041.html

    .NET学习笔记 -- 那堆名词到底是啥(CLR、CLI、CTS、CLS、IL、JIT)

    https://www.cnblogs.com/xiekeli/p/4680846.html?utm_source=tuicool

    通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?

    https://www.cnblogs.com/1996V/p/9037603.html#net1

    浅谈ASP.NET框架

    https://www.cnblogs.com/wangjiming/p/8201129.html

    .Net跨平台和.Net Framework和mono

    https://blog.csdn.net/wangligen123/article/details/86482454

    .NET Framework、.NET Core、Mono、Xamarin之间关系

    https://blog.csdn.net/MePlusPlus/article/details/76242330

    介绍 .NET Standard

    https://zhuanlan.zhihu.com/p/24267356

  • 相关阅读:
    Python学习 Day 068
    Python模块(一)(常用模块)
    python面向对象(C3算法)(六)
    Python面向对象(约束,异常处理,md5加密)(五)
    python面向对象(反射)(四)
    Python面向对象(类之间的关系)(三)
    Python面向对象(成员)(二)
    python面向对象(一)
    Python函数的装饰器
    递归与二分法
  • 原文地址:https://www.cnblogs.com/AlexanderZhao/p/12878926.html
Copyright © 2011-2022 走看看