.NET中的一些基础概念

应用程序域

  应用程序域是CLR中提供代码运行范围、错误隔离和安全设置隔离的逻辑单元,功能类似于操作系统的进程。一个或多个应用程序域在一个操作系统的进程中运行。应用程序域的创建和销毁所需要的开销,相对于操作系统的进程较小。但和操作系统的进程一样,应用程序域之间的数据共享相当困难。

JIT(及时编译,Just-In-Time)

  JIT引擎在编译中间代码之前,会寻找方法在本机机器代码缓存并且判断其是否可用,如果可用直接加载,如果不可用,它会查找类型中的方法存根,找到该中间代码并且进行编译。

强签名程序集和弱签名程序集

  强签名程序集是一个带有公钥和数字签名的程序集,每个强签名都可以由四个元素来唯一标识,它们分别是:文件名、版本号、语言文化和公钥。这些信息都被包含在程序集的清单中。

  弱签名程序集拥有和强签名程序集一样的元数据、CLR头文件和程序集清单,唯一不同是弱签名程序集没有公钥,也不能进行数字签名。弱签名程序集不能放入GAC中,只能进行私有部署。

GAC(全局程序集缓存,Global Assembly Cache)

  GAC是一个具有特定目录结构的文件夹,所有强签名的程序集都可以被放入GAC中。可以通过.Net Framework自带的asssembly viewer来简单的拖动添加一个程序集到GAC中,或者别的工具。都是更具GAC的规范和程序集本身的特性在GAC的目录下建立相应的子目录。

  GAC的优点:

  •   程序集被多出引用时,可以有效的减少内存成本。
  •   通过发布者策略可以有效的发布程序集的最新版本。
  •   同一个程序集的多个版本可以共存,并且可以通过配置进行切换。

延迟签名

  延迟签名就是指把对强签名程序集的私密钥加密和数字签名延迟到实际发布时进行。延迟签名提高了开发测试阶段的效率,也方便了机构和项目组管理自己的私钥。

时间: 2024-10-06 13:09:30

.NET中的一些基础概念的相关文章

RabbitMQ基础概念详细介绍

你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用.通讯的问题而苦恼.挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题. 消息服务擅长于解决多系统.异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC).本文将要介绍的RabbitMQ就是当前最主流的消息中间件之一. RabbitMQ简介 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议

rabbitmq 基础概念介绍

[引言] 你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用.通讯的问题而苦恼.挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题. 消息服务擅长于解决多系统.异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC).本文将要介绍的RabbitMQ就是当前最主流的消息中间件之一. [RabbitMQ简介] AMQP,即Advanced Message Queuing Protocol,高级消息队列协议

Cocos2d-x中的基础概念

Cocos2d-x中的基础概念 尊重原创:http://cn.cocos2d-x.org/tutorial/show?id=1926 在你阅读本章节之前你可能知道一些关于Cocos2d-x的知识,但是你可能想知道更多关于如何使用Cocos2d-x来制作出自己梦想的游戏. 没问题,让我们从现在开始. Cocos2d-x是一个跨平台的游戏引擎.什么是游戏引擎?现在不要被这个问题吓到! 一个游戏引擎就是一个可以提供大多游戏常用功能的软件作品.你之前也许听到过将它称之为API或者框架.但在本书中我们会使

关系型数据库常用基础概念知识归纳

声明:我的文章都是只挑主要的写,次要细节太多,归纳就没意义了,同时归纳主要是给自己看的, 而且基本都是凭自己的一些记忆和理解即时写的.不一定对和全(但大多是一些需要理解的概念),请各位看管见谅! 数据库设计篇 1.范式 A.1范式,原子性,即列不可分 B.2范式,完全依赖,即有个主键唯一区分 C.3范式,不能传递依赖,即表中不能还有其他表的非主键信息 2.模型 A.概念模型,即ER图等 B.逻辑模型,即建逻辑表 C.物理模型,即生成物理表 事务 1.四大特性, A.原子,要么..要么.. B.隔

分布式学习——基础概念篇

概述 最近这段时间一直在看分布式有关的东西,但是关于分布式自己还是不能很好的理解,所以本文对分布式基础概念进行下学习. 分布式处理 首先先了解一下分布式处理,分布式处理和集中式处理正好是相反的的体系架构,集中传输集中到式处理顾名思义就是将所有的信息都一个统一的信息中心进行处理:分布式处理就是将不同地点的,或具有不同功能的,或拥有不同数据的多台计算机利用通信网络连接起来,让各个计算机各自承担同一个工作任务的不同部分,在控制中心的管理下,同时运行,共同完成同一个工作任务. 提到分布式处理就不能不提到

js基础--javascript基础概念之语法

掌握一门语言 必须先掌握它的语法! javascript 的语法和C.Java.Perl 的语法有些相似.但是比它们更加宽松. javascript 中的一切都是严格区分大小写的.例如变量: demo 和 Demo 两个变量是完全不同的. javascript 标示符,所谓标示符 是指 变量.函数.属性 的名字或函数的参数.标示符的格式是按照以下规则组合的一个或多个字符. 1.第一个字符必须是字母,下划线,或 $ 符号. 2.其他字符可以是字母.下划线.$ . 或数字. 注意 不能把关键字 保留

数据库系统0T1(0):基础概念

数据库,简单来说可视为电子化的文件柜--存储电子文件的处所,用户可以对文件中的数据运行新增.截取.更新.删除等操作. 数据库存储的基本对象是数据,数据可以是数字.文字.图片.音频.视频等等. 数据库的基本特征 数据按一定的数据模型组织.描述和储存 可为各种用户共享 冗余度较小 数据独立性较高,与应用程序互不依赖 易扩展 类型 关系数据库:MySQL.SQL Server.Oracle等 非关系型数据库(NoSQL):BigTable(Google)Cassandra.MongoDB等 键值(ke

js基础--javascript基础概念之数组(二)

js基础--javascript基础概念之数组 数组栈方法 数组可以像栈一样.栈是一种先进后出的数据结构,最先添加的数据最后一个出来.栈方法添加数据也称为 推入  移除数据称为 弹出. js为数值栈方法提供了 push()   和  pop() ;  两个方法. push() push() 方法接受参数就是你要添加进入到数组的值.push()  方法会将他们逐一添加到数组的末尾  数组的length属性会跟着更新数据. *push(多个数组元素值) 返回的修改后的数组长度 var array =

js基础--javascript基础概念之数组

js基础--javascript基础概念之数组 在ECMAScript 中 ,数组是很常用的数据类型,js中的数组和其他很多语言的数组有明显的区别.js的数组可以保持任何类型的数值,一个数组中可以保存着多个不同类型的数值.js数组大小(长度)是可以调整的.可以随着数据的添加自动增长数组长度. 创建数组: 一.数组字面量 数组字面量由一对包含数组项的方括号[]表示. var array = [ 'kin', 'cheong', 'change', 'hello', 'haha', 'hi' ];