• DotNet 157 0 1 发布
    简介

    .Net Framework是一个采用系统虚拟机运行的编程平台,以通用语言运行库(Common Language Runtime)为基础,支持多种开发语言,并且可以同时进行windows应用软件和网络应用软件以及组件和服务(web 服务)的开发。

    平台组成

    .Net Framework一般而言可以将其技术分为规范和实现两部分:

    (实现)

    CLR(公共语言运行库):
    和java虚拟机一样也是也是一个运行时环境,它负责资源管理(内存分配[类型的内存分配]和垃圾回收[GC],并保证应用和底层操作系统之间的必要分离。其核心功能包括:内存管理、程序集加载、安全性、异常处理和线程同步。FCL(.Net类库):
    为.Net Framework两个核心组件之一。FCL集合了上千组可再利用的类、接口和值类型。BCL(Base Class Libraries)是FCL的一部分,提供了多数的基础功能,其中包括namespaces System,System.CodeDom,System.Collections,System.Diagnostics,System.Globalization,System IO,System.Resources,System.Text,和System.Text.RegularExpressions的类

    (规范)

    CTS(通用类型系统):
    定义了如何在运行库中声明、使用和管理类型,同时也是在运行库下支持各语言之间进行交互操作。(PS:CTS定义了在MSIL中使用的预定义类型,.Net 语言将代码解释成中间语言,其原因.Net 编译器是遵循CLS[公共语言规范]实现的)。CLS(公共语言规范):
    和通用类型系统一起确保语言的互操作型。CIL(通用中间语言):
    是一种属于通用语言框架和.Net框架的低阶的人类可读的编程语言。CTS(通用类型系统)
    建立一个支持跨语言的集成,是不通语言编写的代码直接能够交互使用。CTS可以分为两大类:值类型和引用类型,同事两种类型之间可以进行强制转换,这种转换成为Boxing(装箱)和UnBoxing(拆箱)。从图2-2可以看出通用类型系统的基本结构,CTS的每一种类型都是对象,并继承一个基类System.Object。对于值类型和引用类型的内容将会在下篇进行解释。应用程序

    (编译和运行)

    利用.Net Framework编写的代码时,不是将代码直接创建为OS的本机代码,而是将源码编译成CIL,存储在程序集里面,在执行代码时必须使用JIT编译器将代码编译为本机代码,最后在托管的CLR环境下运行本机代码,以及其他应用程序。

    JIT(Just-In-Time):
    将CIL编译为专用于操作系统和目标机器结构的本机代码,在需要时才会进行编译程序集:
    在编译期间,将CIL代码、元信息(即程序集中包含的数据的信息)、可选资源(CIL使用的其他数据,eg:图片)存储在程序集中,程序集包括可执行的应用程序(.exe)和其他应用程序的库(.dll)

    参考:

    https://www.cnblogs.com/luge/archive/2013/03/02/CSharp_NetFramework_Brief.html
  • DotNet 80 0 1 发布
    定义

    程序集(Assembly)是.NET应用程序的部署单元,是组件重用,以及实施安全策略和版本策略的基本单元。

    程序集具有以下属性和特点:

    程序集以 .exe 或 .dll 文件的形式实现 程序集可以包含一个或多个模块只有在需要使用时才会将程序集加载到内存中类型

    程序集有两种类型:共享程序集和私有程序集。。

    私有程序集:
    默认是私有程序集,位于应用程序所在的同一个目录下,或者位于其子目录中。共享程序集:
    必须有一个版本号,通常安装在GAC(global assembly cache位于Windows/assembly)。任何程序都可以引用他。
    为了保护共享程序集的唯一性,我们必须在共享程序集上加上密钥。如果密钥不同即使两个组件名称相同也不是同一个组件。结构这些结构可以在一个文件中也可以在几个文件中。
    一个文件的情况多个文件的情况

    参考:https://www.cnblogs.com/luge/p/ClR_Via_CSharp_Assembly.html

热门总结

  • DotNet 157 0 1 发布
    简介

    .Net Framework是一个采用系统虚拟机运行的编程平台,以通用语言运行库(Common Language Runtime)为基础,支持多种开发语言,并且可以同时进行windows应用软件和网络应用软件以及组件和服务(web 服务)的开发。

    平台组成

    .Net Framework一般而言可以将其技术分为规范和实现两部分:

    (实现)

    CLR(公共语言运行库):
    和java虚拟机一样也是也是一个运行时环境,它负责资源管理(内存分配[类型的内存分配]和垃圾回收[GC],并保证应用和底层操作系统之间的必要分离。其核心功能包括:内存管理、程序集加载、安全性、异常处理和线程同步。FCL(.Net类库):
    为.Net Framework两个核心组件之一。FCL集合了上千组可再利用的类、接口和值类型。BCL(Base Class Libraries)是FCL的一部分,提供了多数的基础功能,其中包括namespaces System,System.CodeDom,System.Collections,System.Diagnostics,System.Globalization,System IO,System.Resources,System.Text,和System.Text.RegularExpressions的类

    (规范)

    CTS(通用类型系统):
    定义了如何在运行库中声明、使用和管理类型,同时也是在运行库下支持各语言之间进行交互操作。(PS:CTS定义了在MSIL中使用的预定义类型,.Net 语言将代码解释成中间语言,其原因.Net 编译器是遵循CLS[公共语言规范]实现的)。CLS(公共语言规范):
    和通用类型系统一起确保语言的互操作型。CIL(通用中间语言):
    是一种属于通用语言框架和.Net框架的低阶的人类可读的编程语言。CTS(通用类型系统)
    建立一个支持跨语言的集成,是不通语言编写的代码直接能够交互使用。CTS可以分为两大类:值类型和引用类型,同事两种类型之间可以进行强制转换,这种转换成为Boxing(装箱)和UnBoxing(拆箱)。从图2-2可以看出通用类型系统的基本结构,CTS的每一种类型都是对象,并继承一个基类System.Object。对于值类型和引用类型的内容将会在下篇进行解释。应用程序

    (编译和运行)

    利用.Net Framework编写的代码时,不是将代码直接创建为OS的本机代码,而是将源码编译成CIL,存储在程序集里面,在执行代码时必须使用JIT编译器将代码编译为本机代码,最后在托管的CLR环境下运行本机代码,以及其他应用程序。

    JIT(Just-In-Time):
    将CIL编译为专用于操作系统和目标机器结构的本机代码,在需要时才会进行编译程序集:
    在编译期间,将CIL代码、元信息(即程序集中包含的数据的信息)、可选资源(CIL使用的其他数据,eg:图片)存储在程序集中,程序集包括可执行的应用程序(.exe)和其他应用程序的库(.dll)

    参考:

    https://www.cnblogs.com/luge/archive/2013/03/02/CSharp_NetFramework_Brief.html
  • DotNet 80 0 1 发布
    定义

    程序集(Assembly)是.NET应用程序的部署单元,是组件重用,以及实施安全策略和版本策略的基本单元。

    程序集具有以下属性和特点:

    程序集以 .exe 或 .dll 文件的形式实现 程序集可以包含一个或多个模块只有在需要使用时才会将程序集加载到内存中类型

    程序集有两种类型:共享程序集和私有程序集。。

    私有程序集:
    默认是私有程序集,位于应用程序所在的同一个目录下,或者位于其子目录中。共享程序集:
    必须有一个版本号,通常安装在GAC(global assembly cache位于Windows/assembly)。任何程序都可以引用他。
    为了保护共享程序集的唯一性,我们必须在共享程序集上加上密钥。如果密钥不同即使两个组件名称相同也不是同一个组件。结构这些结构可以在一个文件中也可以在几个文件中。
    一个文件的情况多个文件的情况

    参考:https://www.cnblogs.com/luge/p/ClR_Via_CSharp_Assembly.html