.NET Framework 之 Common Language Runtime

FPGA面试题目笔记(二)——同步异步D触发器、静动态时序分析、分频设计、Retiming 二选一多路器实现实现异或。LUT 。寄存器锁存器,为什么多用寄存器,行为级描述中锁存器如何产生。 D触发器实现2倍分频。 高阻态。`include和条件编译。行为级和RTL级。 阅读详情

.NET Framework 之 Common Language Runtime

CLR是什么?

上次讲到运行在.NET Framework中的代码叫做managed code,反之叫做unmanaged code。相比unmanaged code,managed code 有很多好处,比如可以用多种编程语言编写、提高安全性、易于版本控制和程序发布等等。这些都是由CLR提供的。但也有一些不利点,最容易想到的就是代码运行速度问题了。

要为managed code提供以上功能,CLR必须知道代码中的数据类型、类和与她有关连的assembly的定义。这些信息叫做metadata,而metadata就包含在代码中的某个部分(编译后)。CLR利用这个metadata加载代码段、管理内存、执行方法调用等操作。

.NET出来以前,在不同编程语言之间共享原代码,简直是不可能的事情。因为每个编程语言定义的数据类型不同,而且语法也不同。微软大师们想到了把数据类型统一的好办法。这个技术叫CTS(common type system)。现在做项目开发就比较简单了(用不同语言),比如一个项目组里有会用VB的,会用C++的。可能以前的方法是把两个人之间互相调用的功能写成DLL或COM。但现在不用这么麻烦了,你直接就可以使用其他语言编写的代码了。具体一点,用VB.NET可以继承C++.NET写的类,反过来也是可以的。

我们安装软件的时候常碰到这样的提示 - 系统中的组件比要安装的组件的新,你要替换还是保留?是不是很讨厌?!现在开始你就用.NET吧,她不会因为这个“小”问题而打扰你了。因为每个代码都包含与她相关的metadata,CLR会根据这个信息来管理代码的不同版本。而且因为不用把代码的信息注册到注册表,所以可以用X-COPY的方式安装代码(就是简单的拷贝粘贴了)。

是用VB做好呢?还是用C++做好呢?这些问题是我们做项目的时候常要考虑的问题。但在.NET用什么编程语言已经变得不重要了(但还是有一定的差别,在特定项目中),因为CLR提供CTS(还有base class library),而且都运行在CLR上面。在.NET中VB,C++等语言都有了相当多的提高,而且有了新的语言C#。C#已经申请了标准而且通过,可想而知她的POWE了。大家知道borland也发布了相关的开发工具C# builder。

做个小结

n         .NET代码都包含与自己相关的信息叫做metadata。

n         CLR提供CTS(CLS也有功劳),所以可以在不同编程语言之间共享原代码。

n         用metadata管理代码信息(不是利用注册表),所以代码易于安装。

n         使用统一的数据类型和类库,所以编程语言的选择变得不重要了,而且易于团队开发。

代码在CLR中的运行过程

n         选择编译器

首先CLR选择编译器,因为CLR中可以运行不同语言开发出来的代码。

n         把代码编译成MSIL

CLR利用选择的编译器生成MSIL(Microsoft intermediate language)和metadata把她们加载到PE(portable executable file)。

MSIL:解释语言,包含代码信息,让JIT易于编译成机器语言。与操作系统和编程语言无关。

PE:可执行文件格式,windows就是DLL或EXE了。

n         用JIT编译器把MSIL编译成机器语言

有两种方式一种是只编译当前执行的代码段,另一种是把整个代码一次性编译。JIT会检测代码的安全性。

n         执行代码

代码首次调用就会编译成机器代码,再次调用的时候就不再重新编译了。

相关工具

-MSIL生成器 - MSIL Assembler(ilasm.exe)

-MSIL反编译器 - MSIL Assembler(ildasm.exe)

使用法

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptools/html/cpconmsilassemblerilasmexe.asp

相关资料

-PE结构

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconmetadatapefilestructure.asp

 

参考资料

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconsourcecodelanguage.asp

Customizing the Microsoft dot NET Framework Common Language Runtime Customizing the Microsoft dot NET Framework Common Language Runtime,微软推荐C#图书 立即下载

相关推荐

Customizing the Microsoft dot NET Framework Common Language

.Net的进阶图书

李宏毅机器学习第七周_深度学习新的优化器

本文介绍了优化方法中的几种常见算法,包括SGD、SGDM、Adagrad、RMSProp和Adam。这些算法在训练神经网络模型时起到关键作用。文章还介绍了一些改进的算法,如RAdam、AMSGrad、AdaBound和Lookahead,它们在提高优化算法性能和稳定性方面具有重要作用。此外,文章还提到了一些优化技巧,如学习率调度策略(如Cyclical LR和One-cycle LR)、参数更新技巧(如NAG和Nadam)以及正则化和防止过拟合的技术(如Dropout和Gradient noise)。

weixin_48772700的博客 754

ONFI5.0命令字实战指南:从基础操作到高级应用

本文深入解析ONFI5.0协议的核心——命令字,提供从基础操作到高级应用的实战指南。详细拆解了NAND闪存的复位、读状态、数据读取(00-30)、页编程(80-10)和块擦除(60-D0)等关键命令周期,并探讨了多平面操作与缓存操作等高级性能优化技巧,帮助开发者高效、稳定地与NAND芯片进行底层交互。

vscode5coder的博客 463

AFTN和SITA报文简介

飞行动态固定格式电报分为:AFTN和SITA两种格式的电报。 AFTN格式电报:供空中交通管制部门使用 SITA格式电报:供航空公司航务部门使用, 两种格式不能混合使用 1.AFTN报文 AFTN全称为民用航空飞行动态固定电报格式,具体格式如下: (1)第一行:电报种类 (2)第二行:使用时间(UTC时间) (3)第三行:电报级别 下面分别对以上格式内容做说明: 电报种类说明:用三个字母表示电...

飞羽的博客 3万+

实战:RK3568 Android14 集成 AP6212A WiFi/BT 二合一模块

AP6212A 的集成在 RK3568 上非常成熟。只要电源、32K 时钟、SDIO 线序、UART 流控这四点硬件没问题,软件上主要是 DTS 对应的 GPIO 别填错即可。希望这篇博文能帮你一次点亮 WiFi 和蓝牙!

qq_33427070的博客 1450

学Simulink——基于扩展卡尔曼滤波(EKF)的列车牵引电机转子温度在线估计仿真

本文介绍了一种基于扩展卡尔曼滤波(EKF)的列车牵引电机转子温度在线估计方法,通过Simulink建模实现。文章首先阐述了EKF在估计电机转子温度中的优势,即利用易测量信号(如电流、电压、转速)在线估计难以直接测量的转子温度,并分析了温升对电机性能的影响。随后详细讲解了电机热电增广模型的构建,包括定子电阻温度关系、一阶热近似模型和PMSM的dq轴方程。接着,文章提供了Simulink建模的详细步骤,包括PMSM+FOC电流环的搭建、EKF算法的实现(推荐使用ExtendedKalmanFilter块或MAT

xiaoheshang_123的博客 57

C#编程,浅谈.NET中程序集的动态加载

C#程序集的动态引用

君一席 2163

2024年全国青少年信息素养大赛复赛真题(算法创意实践挑战赛C++试卷:带解析)

2024年全国青少年信息素养大赛复赛真题(算法创意实践挑战赛C++试卷:带解析)

王老师青少年编程 4787

.NET Framework读书笔记

.NET Framework主要由两部分组成1.Common Language Runtime2.Framework Class LibraryCLR主要由四部分组成1.Common Type System (CTS)-----------------------定义一套通用的数据类型,允许不同语言共享相同的类型2.Common Language Specification (CLS)

NetGhost的专栏 1847

abapGit 安装与初始化完整指南:从 on-premise 到 SAP BTP ABAP environment 的一条龙实践

本文为ABAP开发者提供abapGit从安装到团队协作的完整指南。内容涵盖社区版ZABAPGIT的on-premise安装、Eclipse ADT插件配置、BTP环境使用及常见网络问题处理。重点包括:获取最新构建的安装步骤、EN语言环境的重要性、ADT插件安装方法、以及如何实现on-premise与BTP间的代码迁移。文中特别强调企业环境下代理设置、证书配置等注意事项,并提供实际操作案例,如将RAP业务对象迁移到BTP环境。文末附有可复用的实施清单,帮助开发者快速落地abapGit。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 417

YOLOv5源码逐行超详细注释与解读(3)——训练部分train.py

全网最详细的YOLOv5项目源码解读之训练部分train. py。全文近5万字!代码逐行注释,逐段讲解,小白入门必备!

路人贾的博客 3万+

.NET Common Language Runtime Unleashed 2-volume set

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/topmvp - topmvpThe .NET Framework provides a runtime environment called the Common Language Runtime, which manages the execu

TopMVP 652

前程无忧Python岗位数据采集:基于API直连的高效招聘信息爬取实战

本文介绍了一个基于Python requests库的前程无忧招聘数据采集系统。项目通过分析API接口结构,配置完整的请求头和身份验证参数,实现了高效稳定的数据采集。系统支持多页数据批量获取,包含工作名称、薪资范围等关键字段的结构化解析,并将结果存储为Excel文件。技术实现涉及API分析、身份验证、请求头配置、数据清洗等关键步骤,同时强调遵守法律和道德规范。该系统可为求职者、HR和市场分析师提供有价值的行业数据支持,适用于市场分析、职业规划等场景。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 1553

.NET Framework Essentials (2nd Edition)

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/topmvp - topmvpFully updated for Microsofts official release, .NET Framework Essentials, 2nd Edition is an objective, conci

TopMVP 575

PCB_Project.PrjPcb 4 Not in version control

Altium Designer中PCB项目出现"NOT in version control"错误的解决方法:1. 禁用不需要的版本控制集成(DXP→Preferences→Version Control);2. 清理项目缓存(Projects面板右键→Clean Project);3. 检查文件读写权限;4. 如无效可新建项目重新添加文件。如需使用SVN版本控制,需正确配置SVN客户端路径,创建或连接SVN仓库,并将项目文件提交至版本控制系统。注意新建SVN仓库必须使用空目录,建议使用

whm128的博客 1599

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

.net 的几个基本概念

.net 的基本概念

kimBlog 1061

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

.net framework是什么?

Microsoft .NET Framework 软件开发工具包 (SDK) 2.0 版 (x86) 包括了开发人员编写、生成、测试和部署 .NET Framework 应用程序所需的工具、文档和示例。 NET Framework: 就是微软Web Services 引擎 有许多程序设计师和使用者,非常渴望有一个完善而且透明清楚的基础架构,来建立WebServices(因特网服务)。.NET Fr

漳州软件园二期(漳新高科) 1054

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

.NET Framework 4.6.2发布

原文:Announcing .NET Framework 4.6.2 作者:Stacey Haffner 翻译:王嘉怡 责编:仲培艺 .NET Framework 是一个 Microsoft Windows 组件,是一种采用系统虚拟机运行的编程平台,以通用语言运行时(Common Language Runtime)为基础,支持多种语言(C#、VB.NET、C++、Python等)的开发...

Joy0921的博客 2472

.NET Framework For Java Programmers(转)

.NET Framework For Java Programmers Author: Ashish Banerjee ObjectiveAfter reading this article Java programmers s...

congguijiang5851的博客 237

黑马程序员-学习笔记1—c#基础知识。。。

---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------                    概要:                              — c# language 是一种面向对象的程序设计语言,

a5a5a5c4的专栏 407

使用系统命名空间using namespace System的方法

在我们使用VS2008编程时,可能会用到系统的命名空间,但是在直接使用时经常出现问题,比如:   using namespace System; VS2008会报错,说找不到system等名,这是因为vs这里用到了clr,也就是Common Language Runtime,而不般情况下是不用的,在属性里,打开对clr的支持就可以了。 右键单击Solution Explorer中的工程 --

Gushleo的专栏 1万+

.NET Framework

Wiki上面的关于.NET Framework的内容收藏一下 [hide] v • d • e .NET Framework Architecture ...

weixin_34010949的博客 90

NET Framework:

NET Framework: 就是微软Web Services 引擎 有许多程序设计师和使用者,非常渴望有一个完善而且透明清楚的基础架构,来建立WebServices(因特网服务)。.NET Framework 就是为了这个需求,而提供的基础架构。.NETFramework 提供了应用程序模型及关键技术,让开发人员容易以原有的技术来产生、布署,并可以继续发展具有高安全、高稳定,并具高延展的Web

我地地盘 486

浅析.NET Framework对PE文件格式的扩展

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 599
上一篇: .NET Framework 介绍
下一篇: N-tier 代码生成器
nathan2003
博客等级 码龄23年 0粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值