Net Framework,Net Core 和 Net Standard 区别
在某个群里前天左右的一场关于技术讨论中, 我们最后感到这种交流的效果并不十分理想. 幸运的是, 在去年之前我们就已经开始对NetCore进行了相关的调研工作. 在我的个人研究经历中, 我对于这类技术问题有着一定的了解. 下面我将分享我对这三个问题的一些认识与见解. 如有不当之处, 请各位专家批评指正.
大家的讨论是这个问题引起的如下:
NetCore
Net Framework
Net Standard
最终大家想了解的是这些的区别是什么。
Net Framework 是什么
Net Framework 是一个基于 .NET 标准构建的实现方案,在支持 .NET 类库的环境中我们可以利用 C#、Visual Basic 和 F# 等编程语言来编写应用程序,并主要应用于开发基于 Windows 平台的软件系统
2.有两部分组成部分:
i. 公共语言运行时(CLR)处理应用程序
ii. 基础类库(BCL)这是可重用的代码库,使用其编写进行应用程序编写
在执行过程中,.NET编写的代码会被编译生成一种称为中间语音(IL)存储格式的文件,默认使用DLL和EXE后缀名进行保存。当程序运行时_CLR将被转换为相应的机器代码。
NET Framework本质上并不是跨平台的也就是说它仅适用于Windows平台环境如果希望实现跨平台功能则需要依赖第三方工具或解决方案
Net Core 是什么
为了应对外界环境的变化和推动软件开发的趋势发展,在各种不同的设备以及云计算技术的影响下,其他操作系统的需求也在不断增长.如果未发生变化,则可能导致市场的缩减.Net Core 旨在满足当前及未来的软件开发需求.
2.NET Core 是一个全新的开发框架, 基于 .NET 的跨平台开发, 与微软 .NET 框架拥有许多相似之处, 这就使得 .NET 框架开发者向 NET Core 迁转变得更加容易。
NET Core在各个方面均为开源,在公共接口、运行时环境以及编译工具上均可实现这一特点。自NET Core 3.0版本起开始支持C#、Visual Basic(VB)以及F#语言。
Net Standard 是什么,
1. Net Standard 是一种标准,它包含了 Net Framework 和 Net Core 必须实现的所有 API,它的出现使得各种平台上开发 .NET 应用程序的人能够方便地进行代码共享,但这一标准仅适用于开发公共接口,即意味着只有当你的类库遵循这一标准时,此类库既可以被视为 Net Framework 的类型也可被视为 Net Core 的类型。
2. 微软提供的的图表详细说明了各个不同版本的兼容情况
若要采用NET Standard 2.0库以在Net Framework与.NET Core两种实现间兼容,则根据此图表并建议我们为.NET Core项目选择该版本,并确保NET Framework组件采用4.6.1版本。
总结:
通过以上分析可以看出,.NET作为一种标准,然而.NET框架和.NET Core是.NET体系中的核心组件,此外,.NET标准作为一个行业规范存在
题外话:
作为专业的技术工作者,在微软技术站工作意味着我们在过去几年里见证了公司的多项探索与创新活动。这些经历教会我们只有通过广泛涉猎不同领域才能不断提升自身竞争力并实现职业发展的更高目标。
