.NET是什么?

  •.NET是一个平台,而不是一种语言。
  •.NET是Microsoft的用以创建XML Web服务(下一代软件)平台,该平台将信息、设备和人以一种统一的、个性化的方式联系起来。
 

公共语言运行库(CLR)

  •公共语言运行库,即Common Language Runtime,简称CLR。
 
  •CLR是.NET Framework的核心,通常在CLR控制下运行的代码称为托管代码(managed code)
 
  •在CLR执行编写好的源代码之前,需要编译它们。在.NET中编译分为两个阶段:
    1、把源代码编译为Microsoft中间语言(IL);
    2、CLR把IL编译为平台专用的代码。
 

.NET中的编译过程(CLR)

中间语言(IL)

  •Microsoft中间语言和java字节码一样都是低级语言,语法简单,能快速转换为本地机器码。这种设计的通用语法有很重要的优点:平台无关性、提高性能和语言的互操作性。
 
  •中间语言的主要特征:
      1、面向对象和使用接口
    2、值类型和引用类型之间的显著差异
    3、强数据类型化
    4、异常处理
    5、使用特性
 

通用类型系统(CTS)

  •CTS定义了可以在IL中使用的预定义数据类型,所有面向.NET Framework的语言都可以生成基于这些类型的编译代码。
  •例子:假定VB定义的一个类中包含一个返回值为Integer类型的方法,C#定义的一个类包含这个类的一个实例,要它的调用返回值为Integer类型的方法,而C#中没有名称为Integer的数据类型,这个问题在.NET中是怎么处理的呢?
  •对于这个问题,VB中的Integer实际上是一个32位有符号的整数,它实际映射为中间语言类型int32,因此在IL代码中就指定这种数据类型,C#编译器就可以使用这种类型,所以就不会有问题了。
  •CTS不仅指定了基本数据类型,还定义了一个类型层次结构,其中包含设计合理的位置,在这些位置上,代码允许定义自己的类型。
 
  
 

公共语言规范(CLS)

  •公共语言规范(Common Language Specification, CLS)和通用类型系统一起确保语言的互操作性。
  •CLS是一个最低标准集,所有面向.NET的编译器都必须支持它。
  •例子:IL是区分大小写的语言,但VB是不区分大小写的语言。CLS通过指定CLS兼容代码不适用任何只根据大小写区分的名称,解决了不区分大小写的问题。因此,VB代码可以与CLS兼容代码一起使用。
 
  •CLS的两种工作方式:
    1、各个编译器的功能不必强大到支持.NET的所用功能;
    2、如果限制类只能使用CLS兼容的特性,就要保证用其他兼容语言编写的代码可以使用这个类。
 

程序集(Assembly)

  •程序集(assembly)是包含编译好的、面向.NET Framework的代码的逻辑单元。
 
  •程序集是完全自描述的,它是一个逻辑单元而不是物理单元,可以存储在多个文件中。如果一个程序集存储在多个文件中,其中就会有一个包含入口点的主文件,该文件描述了程序集中的其他文件。
 
  •程序集的结构:
    1、程序集元数据
    2、类型元数据
    3、MSIL代码
    4、资源
 
 
 
 
 
  

.net组件技术的更多相关文章

  1. .Net 组件技术概述

    1. 基本原理 组件是组件系统中功能的表现,没有组件就没有功能.特定接口是用于给组件管理程序来操纵.管理该组件,特定功能是组件需要完成的任务.在一个使用组件建立的产品中会随着功能数目的多少而会有多个组 ...

  2. vue项目实现按需加载的3种方式:vue异步组件技术、es提案的import()、webpack提供的require.ensure()

    1. vue异步组件技术 vue-router配置路由,使用vue的异步组件技术,可以实现按需加载. 但是,这种情况下一个组件生成一个js文件. 举例如下: { path: '/promisedemo ...

  3. 微信团队分享:iOS版微信的高性能通用key-value组件技术实践

    本文来自微信开发团队guoling的技术分享. 1.前言 本文要分享的是iOS版微信内部正在推广和使用的一个高性能通用key-value 组件的技术实践过程,该组件在微信内部被命名为MMKV(以下简称 ...

  4. 【VS开发】COM组件技术概述

    这篇文章对COM做出来比较完整的解释,非常好. COM是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术.在COM构架下,人们可以开发出各种各样功能专一的组件,然后将它 ...

  5. Java Web编程的主要组件技术——Struts核心组件

    参考书籍:<J2EE开源编程精要15讲> Struts配置文件struts-config.xml Struts核心文件,可配置各种组件,包括Form Beans.Actions.Actio ...

  6. Java Web编程的主要组件技术——Struts入门

    参考书籍:<J2EE开源编程精要15讲> Struts是一个开源的Java Web框架,很好地实现了MVC设计模式.通过一个配置文件,把各个层面的应用组件联系起来,使组件在程序层面联系较少 ...

  7. Java Web编程的主要组件技术——MVC设计模式

    参考书籍:<J2EE开源编程精要15讲> MVC(Model View Controller),Model(模型)表示业务逻辑层,View(视图)代表表述层,Controller(控制)表 ...

  8. COM组件技术名称解释

    GUID:全局唯一标识. CLSID 或 ProgID :唯一地表示一个组件服务程序,那么根据这些ID,就可以加载运行组件,并为客户端程序提供服务了. IID :唯一的表示接口ID. COM 组件是运 ...

  9. super_curd组件技术点总结

    1.基于包的导入的方式实现单例模式 # test1.py class AdminSite(object): def __init__(self): self.registry = {} self.ap ...

  10. Java Web编程的主要组件技术——Hibernate入门

    参考书籍:<J2EE开源编程精要15讲> Hibernate是对象/关系映射(ORM,Object/Relational Mapping)的解决方案,就是将Java对象与对象关系映射到关系 ...

随机推荐

  1. 字符编解码的故事–ASCII,ANSI,Unicode,Utf-8区别(转)

    很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们认为8个开关状态作为原子单位很好,于是他们把这称为”字节”. 再后来,他们又做了一些可以处理这些字节的 ...

  2. Resource is out of sync with the file system的解决办法

    在eclipse中,启动server时报此错,是因为文件系统不同步造成的,解决方法有两个: (1)选中工程,右键,选择F5(手动刷新): (2)Window->Preferences->G ...

  3. 使用phantomjs实现highcharts等报表通过邮件发送

    使用phantomjs实现highcharts等报表通过邮件发送(本文仅提供完整解决方案和实现思路,完全照搬不去整理代码无法马上得到效果)   前不久项目组需要将测试相关的质量数据通过每日自动生成报表 ...

  4. 关于矩阵最通俗的解释-超级经典zz

    线性代数课程,无论你从行列式入手还是直接从矩阵入手,从一开始就充斥着莫名其妙.比如说,在全国一般工科院系教学中应用最广泛的同济线性代数教材(现在到了第四版),一上来就介绍逆序数这个“前无古人,后无来者 ...

  5. RAPIDXML 中文手册,根据官方文档完整翻译!

    简介:这个号称是最快的DOM模型XML分析器,在使用它之前我都是用TinyXML的,因为它小巧和容易上手,但真正在项目中使用时才发现如果分析一个比较大的XML时TinyXML还是表现一般,所以我们决定 ...

  6. linux 压缩/解压命令大全

    .tar 解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)———————————————.gz解压1:gun ...

  7. uva 1642 Magical GCD

    很经典的题目,愣是没做出来.. 题意:给出一个序列,求一子序列,满足其GCD(子序列)* length(子序列)最大. 题解: 类似单调队列的思想,每次将前面所得的最大公约数与当前数进行GCD,若GC ...

  8. 结构体key

    http://www.cnblogs.com/xpchild/p/3770823.html http://blog.sae.sina.com.cn/archives/3968 实例 http://bl ...

  9. bzoj2794

    这题我得到一个经验,bool型的dp一定要想办法把bool去掉来表示更多的东西(1933也是这个道理) 暴力大家都会,这里有两个限制条件 一个限制条件我们可以排序不断加入,另一个呢 我们可以用f[i] ...

  10. UVa 10285 Longest Run on a Snowboard【记忆化搜索】

    题意:和最长滑雪路径一样, #include<iostream> #include<cstdio> #include<cstring> #include <c ...