.NET Core跨平台布局的深层秘密揭秘[续篇]究竟有何独特之处?
- 内容介绍
- 文章标签
- 相关推荐
本文共计5739个文字,预计阅读时间需要23分钟。
从本质上看,.NET自诞生起就具有跨平台的基因,这与Java迥然不同。由于采用了统一的中介语言,微软的.NET仅需要针对不同平台设计不同的虚拟机(运行时),即可实现跨平台部署。
从本质上讲,按照CLI规范设计的.NET从其出生的那一刻就具有跨平台的基因,这与Java别无二致。由于采用了统一的中间语言,微软只需要针对不同的平台设计不同的虚拟机(运行时)就能弥合不同操作系统与处理器架构之间的差异,但是“理想很丰满,现实很骨感”。在过去十多年中,微软将.NET引入到了各个不同的应用领域,表面上看起来似乎欣欣向荣,但是由于采用完全独立的多目标框架的设计思路,导致针对多目标框架的代码平台只能通过PCL(参考《.NET Core跨平台的奥秘[中篇]:复用之殇》)这种“妥协”的方式来解决。如果依然按照这条道路走下去,.NET的触角延伸得越广,枷锁将越来越多,所以.NET 已经到了不得不做出彻底改变的时刻了。
一、跨平台的.NET Core综上所述,要真正实现.NET 的跨平台伟业,主要需要解决两个问题,一是针对不同的平台设计相应的运行时为中间语言CIL提供一个一致性的执行环境,而是提供统一的BCL以彻底解决代码复用的难题。对于真正跨平台的.NET Core来说,微软不仅为它设计了针对不同平台被成为CoreCLR的运行时,同时还重新设计了一套被称为CoreFX的BCL。
如上图所示,NET Core目前支持的AppModel主要有两种,其中ASP.NET Core用于开发服务器Web应用和服务,而UWP(Universal Windows Platform)则用于开发能够在各种客户端设备(Mobile、PC、Xbox、Devices + IOT、HoloLens和Surface Hub等)上以自适应方式运行的Windows 10应用。
本文共计5739个文字,预计阅读时间需要23分钟。
从本质上看,.NET自诞生起就具有跨平台的基因,这与Java迥然不同。由于采用了统一的中介语言,微软的.NET仅需要针对不同平台设计不同的虚拟机(运行时),即可实现跨平台部署。
从本质上讲,按照CLI规范设计的.NET从其出生的那一刻就具有跨平台的基因,这与Java别无二致。由于采用了统一的中间语言,微软只需要针对不同的平台设计不同的虚拟机(运行时)就能弥合不同操作系统与处理器架构之间的差异,但是“理想很丰满,现实很骨感”。在过去十多年中,微软将.NET引入到了各个不同的应用领域,表面上看起来似乎欣欣向荣,但是由于采用完全独立的多目标框架的设计思路,导致针对多目标框架的代码平台只能通过PCL(参考《.NET Core跨平台的奥秘[中篇]:复用之殇》)这种“妥协”的方式来解决。如果依然按照这条道路走下去,.NET的触角延伸得越广,枷锁将越来越多,所以.NET 已经到了不得不做出彻底改变的时刻了。
一、跨平台的.NET Core综上所述,要真正实现.NET 的跨平台伟业,主要需要解决两个问题,一是针对不同的平台设计相应的运行时为中间语言CIL提供一个一致性的执行环境,而是提供统一的BCL以彻底解决代码复用的难题。对于真正跨平台的.NET Core来说,微软不仅为它设计了针对不同平台被成为CoreCLR的运行时,同时还重新设计了一套被称为CoreFX的BCL。
如上图所示,NET Core目前支持的AppModel主要有两种,其中ASP.NET Core用于开发服务器Web应用和服务,而UWP(Universal Windows Platform)则用于开发能够在各种客户端设备(Mobile、PC、Xbox、Devices + IOT、HoloLens和Surface Hub等)上以自适应方式运行的Windows 10应用。

![.NET Core跨平台布局的深层秘密揭秘[续篇]究竟有何独特之处?](/imgrand/f6F3fP8B.webp)