.net core跨平台的实现

一、.net core的性能提升

  • 采用模块化的思想,重写BCL
    • BCL被分成两部分
      • CoreFX
        • 模块化,按需加载
      • 与CLR紧密相关的,被整合进另一部分,随CoreCLR一同发布
        • 主要包括基础类型,如Int、String等
        • 不会被直接引用
          • System.Private.CoreLib.dll
          • CoreFX引用System.Runtime.dll,System.Runtime.dll中使用类型转移,定向到System.Private.CoreLib.dll,即垫片技术
  • 重写CLR
    • CoreCLR
      • 分别为主流操作系统和处理器架构针对性的设计独立的一套CLR
  • 垫片技术
    • 借助垫片技术,.net framework编译的程序集可以在.net core环境中运行
    • 编译时引用的基础程序集,在.net core环境中也有一套,但这些程序集没有具体实现,都是作为垫片用的,定向到.net core自己的程序集中

在这里插入图片描述

二、.net framework、.net core、Xamarin的整合

  • 微软旗下存在三大分支,.net framework、.net core、Xamarin,各分支之间存在代码复用的问题,为了解决该问题,引出.net standard

在这里插入图片描述

  • .net standard
    • 是一套接口,需要三大分支的具体实现
    • 建立在.net standard之上的代码,可以在三大分支之间复用
    • .net standard是按照.net framework的API进行设计的,存在很多交集
    • .net core是按照.net standard进行设计的
  • .net standard整合三大分支的原理
    • 编译时引用netstandard.dll,该程序集里面只有.net standard API的存根,没有具体实现
    • 运行时,在各自分支的运行环境中,提供一个同名的netstandard.dll程序集,该程序集作为一个垫片,定向到各自分支的具体实现中,这样原本分支中的程序集就不需要改动

三、统一的.net 5

  • 由于加入了一层抽象层,三大分支都引用.net standard,所以不再区分.net framework、.net core等
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值