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.更多内容请点击查看

时间: 2024-10-23 13:15:45

01-.Net编程机制的相关文章

【WCF--初入江湖】01 WCF编程概述

01 WCF编程概述 SOA的优点 1.服务独立于平台和工作环境.服务并不关心自己所处的环境,也不关心与之进行通信的服务所处的    环境. 2.服务相互隔离. 3.服务对协议.格式和传输中立. 4.服务可以扩展. 5.服务行为不受限制. 实现SOA思想的技术: 1.webService 2.WCF 什么是WCF MSDN上的定义: WCF为.NetFramework 提供了一个基础,使其能够编写代码,以在组件.应用程序.系统之间进行通信.WCF的设计遵循的是面向服务的原则.服务是指可以通过消息

C#中面向对象编程机制之多态学习笔记

C#的多态性: 我的理解是:同一个操作,作用于不同的对象时,会有不同的结果,即同一个方法根据需要,作用于不同的对象时,会有不同的实现. C#的多态包括:接口多态,继承多态. 其中继承多态又包括通过虚拟方法实现的多态和通过抽象方法实现的多态性 例如:基类动物都有吃的方法,但是不同的动物吃的东西就会不一样,例如狼吃肉,羊吃草,这样"吃"的这个方法就要在派生类里面重新实现以下,运行时,通过指向基类的指针,来调用实现派生类中的方法. 接下来举例实现多态性. 1. 接口多态性 把动物"

C#中面向对象编程机制之继承学习笔记

继承反应了类和类之间的关系. 世界上很多事物都是有共性的,共性的那一部分我们就抽象为基类,用于派生其它类,这样提高了代码的复用性,使得代码的结构清晰易读,而且易于代码的扩展和维护. C#的继承只能继承自一个基类,这一点不同于C++的继承. C#的继承具有传递性,即B继承自A,C继承自B,则C具有A的所有特性. C#的继承隐式为public的. 假如不在派生类构造器中显示调用一个基类构造器,编译器会自动插入对基类的默认构造器的一个调用,然后才会执行派生类构造器中的代码, 如果基类没有默认的构造器,

响应式编程机制总结

响应式编程的源是个流: 响应式编程的源需要提供observable功能和响应链管理功能. 响应式编程的机制实际上是一个耦合和抽象的机制: 即事件和信息的源怎么与observer建立联系. 通常这个联系需要从两个方面考察: 1.联系的建立机制: 2.通信的协议机制: 即抽象类(接口类): observable<>---->observer: 抽象类observable提供observer管理功能: observer提供通信协议. 原文地址:https://www.cnblogs.com/f

No.01——配置编程环境

======由于很喜欢Android编程,所以买来了安卓权威指南来学习.为了应用费曼技巧——把知识输出出去以检验和巩固,在此写下学习笔记======= 1. 配置编程环境 Java的JDK(Java developer Kit) http://www.oracle.com/technetwork/java/javase/downloads/index.html Android Studio http://developer.android.com/index.html 另外: FQ软件——6VP

01 模块化编程的基本概念

一.模块化编程 1. 入口 module_init(xxx); 2. 出口 module_exit(xxx); 3. 头文件 #include <linux/init.h> #include <linux/module.h> 4. 申明许可和作者 MODULE_LICENSE("GPL"); MODULE_AUTHOR("GNB"); 二.编译模块Makefile 1 KERNEL_DIR = /lib/modules/$(shell una

数据结构笔记01:编程面试过程中常见的10大算法(java)

以下是在编程面试中排名前10的算法相关的概念,我会通过一些简单的例子来阐述这些概念.由于完全掌握这些概念需要更多的努力,因此这份列表只是作为一个介绍.本文将从Java的角度看问题,包含下面的这些概念: 1. 字符串 如果IDE没有代码自动补全功能,所以你应该记住下面的这些方法. toCharArray() // 获得字符串对应的char数组 Arrays.sort() // 数组排序 Arrays.toString(char[] a) // 数组转成字符串 charAt(int x) // 获得

R语言初级教程(01): R编程环境的搭建

R是目前最流行的高级编程语言之一,被广泛用于统计分析和数据可视化.R是开源的,有非常活跃的社区来支撑. 想要了解更多有关R信息,可访问R的主页:https://www.r-project.org/. RStudio是R的一个集成开发环境(IDE).使用它的话,R编程的学习和实践会更加轻松和方便. 下面就教大家如何下载并安装R和RStudio,比较简单,这里以Windows系统的安装为例,其它系统类似. 1. 下载R安装包 步骤1:打开R安装包的镜像链接https://cran.r-project

dubbo源码分析01:SPI机制

一.什么是SPI SPI全称为Service Provider Interface,是一种服务发现机制,其本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件.这样可以在运行时,动态为该接口替换实现类. JDK提供了默认的SPI实现,但是Dubbo并未使用JDK提供的SPI,而是自己封装了一套.我们先来通过Dubbo官网给的两个例子简单了解下JDK和Dubbo的SPI是如何使用的. 1.1.JDK SPI示例 首先定义一个接口以及它的两个实现类 1 public interfac