01-.Net编程机制
.NetFarmwark特点:
多平台:该系统可以在广泛的计算机上运行,包括从服务器、桌面机到PDA和移动电话。
行业标准:该系统使用行业标准的通信协议,比如XML、HTTP、SOAP和WSDL.
安全性:该系统能提供更加安全的执行环境,即使有源可疑的代码存在。

.NetFarmwar组成部分:
编程工具、公共语言运行库(CLR)、基类库(BCL),严格地说.Net框架由两部分组成 CLR和FCL(框架类库),不包括工具。FCL是BCL的超集,还包括WindowsForms、Asp.Net、Linq以及更多命名空间。
CLR包括:内存管理、代码安全验证、代码执行、垃圾收集。

编译成CIL
.net语言的编译器接受源代码文件。并生成名为程序集的输出文件。程序集可以是执行文件或DLL文件。
程序集包含的信息有程序的CIL,程序中使用的类型元数据,对其他程序集引用的元数据。
程序的CIL直到它被调用运行时才会被编译成本机代码。
运行CLR执行下面的步骤:
1.检查程序集的安全特性。
2.在内存中分配空间
3.把程序集中的可执行代码发送给实时编译器,把其中一部编译成本机代码。
当被编译成本机代码后,CLR就会在它运行时管理它,执行并释放无主的内存,检查数组边界
检查参数类型和管理异常的一些任务。这时也就产生了两个概念:托管代码和非托管代码
托管代码:为.Net框架编写的代码并使用CLR管理的称为托管代码
非托管代码:不在CLR管理下运行的代码,如Win32 C/C++ Dll,称为非托管代码。

CLR是.Net框架的核心组件,它在操作系统的顶层并管理程序的执行。
CLI(Common Language Infrastructure,公共语言基础结构)是定义基本类型(整数,浮点数,字符等)的一组标准
,它把所有.Net框架的组件连续成一个内聚的、一致的系统。
CTS(公共类型系统)定义了那些在托管代码中一定会使用的类型的特征,其中包括:
1.CTS定义了一组丰富的内置类型,以及每种类型确定的、详细的特性。
2.Net兼容编程语言提供的类型通常映射到CTS中已定义的内置类型集的某一个特殊子集。
3.CTS最重要 的特征之一是所有类型都继承自公共的基类——Object.
4.更多内容请点击查看。
01-.Net编程机制的更多相关文章
- 【WCF--初入江湖】01 WCF编程概述
01 WCF编程概述 SOA的优点 1.服务独立于平台和工作环境.服务并不关心自己所处的环境,也不关心与之进行通信的服务所处的 环境. 2.服务相互隔离. 3.服务对协议.格式和传输中立. 4. ...
- php hook编程机制
说明 hook,中文翻译为钩子,编程中的钩子类似我们现实中的钩子,需要挂在东西的时候 直接挂载到上面即可.程序中也是,需要运行的代码挂载到上面即可. 具体思想就是:在项目代码中, ...
- 01网络编程(基础知识+OSI七层协议+TCP与UDP)
目录 01 网络编程 一.软件开发架构 1.1 CS架构 1.2 BS架构 二.网络理论前戏 2.1 简介 2.2 常见硬件 三.OSI七层协议(五层) 3.1 七层协议 3.2 五层协议 3.3 知 ...
- obj-c编程01[扩展学习01]:对象消息机制工作原理
obj-c中的类就像C语言中的struct.NSObject类声明一个成员变量isa,因为NSObject类是整个继承树的根,所以每个类中都有一个isa其指向创建的对象.在类结构中有实例变量(成员变量 ...
- Java并发编程实战 01并发编程的Bug源头
摘要 编写正确的并发程序对我来说是一件极其困难的事情,由于知识不足,只知道synchronized这个修饰符进行同步. 本文为学习极客时间:Java并发编程实战 01的总结,文章取图也是来自于该文章 ...
- 数据结构笔记01:编程面试过程中常见的10大算法(java)
以下是在编程面试中排名前10的算法相关的概念,我会通过一些简单的例子来阐述这些概念.由于完全掌握这些概念需要更多的努力,因此这份列表只是作为一个介绍.本文将从Java的角度看问题,包含下面的这些概念: ...
- javaweb笔记—01(编程英语、常识、Tomcat配置问题)
第一部分: 编程英语: legal:adj. 法律的:合法的:法定的 Userful :出版商 sponsor: n. 赞助者:主办者:保证人 | vt. 赞助:发起 essential:n. 本质 ...
- No.01——配置编程环境
======由于很喜欢Android编程,所以买来了安卓权威指南来学习.为了应用费曼技巧——把知识输出出去以检验和巩固,在此写下学习笔记======= 1. 配置编程环境 Java的JDK(Java ...
- 01 shell编程规范与变量
前言: 大家对shell脚本应该都不算陌生了,如果突然问你什么是shell脚本?是干什么用的?由什么组成以及怎么使用?变量的概念是什么?作用范围是什么?变量间的算术运算怎么表示?你能很容易答出来吗 本 ...
随机推荐
- Python:generator的send()方法流程分析
先来一个简单地例子: def foo(): print('starting') while True: r = yield 2 print(r) f = foo() print(f.send(None ...
- Java与面向对象之随感(1)
大一下学期上完了c++课程,当时自我感觉很良好,认为对面向对象编程已经是身经百战了,但是上了院里HuangYu老师的Java课之后,才发现自己对于面向对象的编程风格的理解只在皮毛,着实惭愧不已. 假设 ...
- Ubuntu 16.04系统下安装PHP5.6*
Ubuntu 16.04系统默认php7,并没有php5*的包,所以需要自己安装: 方法: 1.删除所有的php包列出安装的php包,dpkg -l | grep php| awk '{print $ ...
- 用 parseInt()解决的 小 bug
在做轮播模块的时候遇到问题是:你在 连续指示小按钮 时候再去 只有 点击 下一张按钮,出现bug: 指示小按钮的 className 当前显示的 calssName 为 undefined ! // ...
- Android学习探索之运用MVP设计模式实现项目解耦
前言: 一直致力于提高开发效率降低项目耦合,今天想抽空学习一下MVP架构设计模式,学习一下如何运用到项目中. MVP架构设计模式 MVP模式是一种架构设计模式,也是一种经典的界面模式.MVP中的M代表 ...
- Visual Studio(VS) F12 查看DLL源代码
前言 我在VS中调试某个函数时,突发奇想"能不能使用VS的F12(转到定义)查看这个dll中当前函数的实现(源码),而不是像VS自带功能那样只能看到函数名和参数?" 回想起来在安装 ...
- ArrayList 进阶方法之ListIterator
同样看的都是jdk1.8 中 ArrayList中的源码,整理测试一下而已ListIterator(int index)方法,返回指定下标(包含该下标)后的值,此时index位置的元素就是新列表迭代器 ...
- 用Visual Studio2017写静态库
造轮子是一件有趣的事情,VS是一个强大的工具,能胜任超大规模的工程,但是讲真,对不那么大的项目配置起来不是那么友好(网上的其他教程也一点都不友好Orz).这里就展示一下构建一个简单的静态库的正确姿势. ...
- 03(3) 基于GMM-HMM的SR基础
1.GMM-HMM的训练 1)训练GSM-HMM (1)确定HMM拓扑结构 (2)初始化HMM模型参数 (3)在所有的utterances中计算所需的统计量 (4)使用公式更新模型参数 (5)不收敛, ...
- Unix系统操作指令汇总
一.目录及文件操作命令 1.1 ls 语法: ls [-RadCxmlnogrtucpFbqisf1] [目录或文件--] 说明: ls 命令列出指定目录下的文件,缺省目录为当前目录 ./,缺省输出顺 ...