我们知道每一个系统都会给我们提供一套API(即Application Programming Interface)应用程序接口

这个是最底层的调用了 比如在Window上面有Windows API

但是.Net FrameWork 和 Windows API 有什么区别吗? 其实有的他们两个是两个不同的概念

我们现在介绍一下.Net FrameWork。

.NET Framework 是支持生成和运行下一代应用程序和 Web 服务的内部 Windows 组件。.

.NET Framework 的关键组件为公共语言运行时 (CLR) 和 .NET Framework 类库(包括 ADO.NET、ASP.NET、Windows 窗体和 Windows Presentation Foundation (WPF))。.

.NET Framework 提供了托管执行环境、简化的开发和部署以及与各种编程语言的集成

讲一下公共语言

公共语言即公共的语言....这个解释好像不太好 当然你也可以这样理解 公共 当然不是一种语言了 他是包括了ADO.NET、ASP.NET、Windows 窗体和 Windows Presentation Foundation (WPF) 然后再把这样语言转换成一种通用的语言 那么这些公司由随做呢那就是CLR(公共语言运行时)它包括了,CLS(公共语言规范)和CTS(通用类型系统)

1. CTS
C#和VB.NET都是公共语言运行时的 托管代码,它们的语法和 数据类型各不相同。CLR是如何对这两种不同的语言进行托管的呢? 通用类型系统(Common Type System)用于解决不同语言的 数据类型不同的问题,如C#中的 整型是int,而VB.NET中是Integer,通过CTS我们把它们两个编译成通用的类型Int32。所有的.NET语言共享这一类型系统,在它们之间实现无缝互操作。
2. CLS
编程语言的区别不仅仅在于类型,语法或者说语言规范也都有很大的区别。因此.NET通过定义 公共语言规范(Common Language Specification),限制了由这些不同点引发的 互操作性问题。CLS是一种最低的语言的标准,制定了一种以.NET平台为目标的语言所必须支持的最小特征,以及该语言与其他.NET语言之间实现 互操作性所需要的完备特征。凡是遵守这个标准的语言在.NET 框架下都可以实现互相调用。例如,在C#中命名是区分大小写的,而VB.NET不区分大小写,这样CLS就规定,编译后的 中间代码必须除了大小写之外有其他的不同之处。
3. .NET 编译技术
为了实现跨语言开发和跨平台的战略目标,.NET所有编写的应用都不是编译为 本地代码,而是编译成微软 中间代码MSIL(Microsoft Intermediate Language)。它将由JIT(Just In Time)编译器转换成机器代码。C#和VB.NET代码通过它们各自的编译器编译成MSIL,MSIL遵守通用的语法,CPU不需要了解它,再通过JIT编译器编译成相应的平台专用代码,这里所说的平台是指我们的操作系统。这种 编译方式实现了代码托管,还能够提高程序的运行效率。

也就是说他们的编译器生成的代码都遵守CLS规范 然后在通过  CTS 最后他们无缝的互操作 也就是所 不管你在.Net FrameWork 框架下使用什么语言最后都转换成公共语言,也就是最低的规范 最后在通过JIT编译器转换成机器代码

好了 下面说说它和Windows API 的区别

Windows API大部分定义的接口都是以头文件的方式定义的 然而在高级语言中没有头文件这个说法 特别是C# 这个时候这么办 这时候.Net FrameWork就封装了大部分的Windows API 我们只要调用就好了 不用去管原生的Windows API

.NetFrameWork介绍相关推荐

  1. 高并发应用场景下的负载均衡与故障转移实践,AgileEAS.NET SOA 负载均衡介绍与实践...

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  2. xamarin使用mysql_[开源] .NetCore .NetFramework Xamarin 使用 ORM FreeSql 访问 MySql

    1.创建项目 我们以 console 类型项目试验 插入.删除.更新.查询 等功能,创建控制台项目,使用命令: dotnet new console dotnet add package FreeSq ...

  3. WPFToolkit DataGrid 使用介绍zz

    首先:这版本需要.NetFrameWork SP1的支持 WPF Toolkit - February 2010 Release 下载地址:http://wpf.codeplex.com/releas ...

  4. 园子里有没有介绍netframework3.0的

    最近公司项目组,说下个项目要用netframework3.0了!不知道园子里有没有相关文章介绍3.0的?         看了下http://www.microsoft.com/china/MSDN/ ...

  5. .NET Standard 2.0 特性介绍和使用指南

    前言 早上起来.NET社区沸腾了,期待已久的.NET Core 2.0终于发布!根据个人经验,微软的产品一般在2.0时会趋于成熟,所以一个新的.Net开发时代已经来临!未来属于.NET Core. 对 ...

  6. .NET开源项目介绍及资源推荐:数据持久层

    在.NET平台下,关于数据持久层框架非常多,本文主要对如下几种做简要的介绍并推荐一些学习的资源: 1.NHibernate 2.NBear 3.Castle ActiveRecord 4.iBATIS ...

  7. 《介绍一款开源的类Excel电子表格软件》续:七牛云存储实战(C#)

     两个月前的发布的博客<介绍一款开源的类Excel电子表格软件>引起了热议:在博客园有近2000个View.超过20个评论. 同时有热心读者电话咨询如何能够在SpreadDesing中 ...

  8. CodeSmith介绍和常见问题解决方案

    一.CodeSmith介绍 CodeSmith模板代码生成实战详解  https://www.cnblogs.com/knowledgesea/p/5016077.html 二.CodeSmith连接 ...

  9. Kinect的介绍和应用【转】

    一.Kinect简介 Kinectfor Xbox 360,简称 Kinect,是由微软开发,应用于Xbox 360 主机的周边设备.它让玩家不需要手持或踩踏控制器,而是使用语音指令或手势来操作 Xb ...

最新文章

  1. python常用的字串格式化选项
  2. mmcv 对比 cv2 处理视频速度
  3. Windows平台下安装PhoenixSuit要点
  4. 纪念一下我2020年的努力结果,腾讯云社区创作总结
  5. .NET Core前后端分离快速开发框架(Core.3.0+AntdVue)
  6. 特斯拉副总裁回应“质量不合格”报道:离谱 已准备起诉
  7. 语言专升本必背代码_广东省 2021 年普通高等学校专升本招生学科门类与专业基础课对应表...
  8. 二进制的科学计数法?白话谈谈计算机如何存储与理解小数:IEEE 754
  9. 华为 HR 内网 5000 字实名控诉:研发兄弟一个月加班 160 小时却被说不努力...
  10. AI头发笔刷_笔刷不够用?给你送1000款~快来拿走
  11. 计算机网络总结-一本书一个晚上一个奇迹
  12. Pascal基础教程
  13. 闪讯无线助手-Android端闪讯破解路由器拨号实现原理
  14. 微信小程序下拉刷新/上拉加载组件
  15. 逻辑思维训练1200题-蓝桥杯计算思维参考
  16. #分治#poj 3889 Fractal Streets
  17. Linux ——objdump和readelf的使用
  18. RocketMQ 分布式事务消息过程分析
  19. 第一章 计算机概要和技术
  20. ContextCaptureCenter4.4.12 安装教程

热门文章

  1. 浅谈Linux信号那些事
  2. 流程引擎(flowable)之会签相关
  3. 正负±5V(-5V到+5V)转0-3.3V简单电路实现(其他输入输出值只需稍微更改)
  4. Net Core 6.0 webApi+sqlServer数据库教程实战
  5. 新手站长说说之织梦DedeCMS列表页标题SEO优化
  6. 公有链、联盟链、私有链及网络配置介绍
  7. 小老板生意总是做不大,而真正老板只做三件事
  8. 国家标准修订参与情况
  9. URL请求后台获取不到特殊字符的参数
  10. 好消息|2、4、7号线北延段工程获江苏省发改委批复