请解释 .NET Standard 的定义,并说明它在 .NET 生态中所发挥的作用。
考察说明
考查对 .NET Standard 本质及其在跨平台与代码复用中定位的理解。
回答思路
- 【回答框架 1】.NET Standard 是一套正式的 .NET API 规范,定义了所有 .NET 实现(如 .NET Framework、.NET Core/5+、Xamarin)必须实现的基础类库接口。它不是运行时,而是契约,任何实现若声称支持某版本,就需提供对应 API 表面。
- 【回答框架 2】它的核心作用是通过目标框架(如 netstandard2.0)使同一份类库代码能被多种 .NET 平台引用,解决了旧时代各框架 API 不一致导致的可移植性难题。选择版本时,应选能覆盖目标平台的最低版本,以获得最大兼容性。
- 【回答框架 3】与 .NET 5+ 相比,.NET Standard 主要面向类库的跨平台共享;而 .NET 5+ 是统一后的实现,包含运行时与 API。实际开发中,新类库常直接以多目标(如 net8.0;netstandard2.0)来兼顾新旧平台。
- 【回答框架 4】作用可归纳为:定义 API 契约、提供版本化兼容基线、作为类库的可移植性标准。它不指定具体实现细节,只规定最低能力集合。
- 【回答框架 5】实践中需注意,.NET Standard 版本覆盖范围是向下兼容的:netstandard2.1 不是 netstandard2.0 的超集(因排除了一些平台),选择时需核对目标平台的最高支持版本。
- 【关键点 1】.NET Standard 是 API 规范而非运行时,定义实现必须提供的 BCL 接口。
- 【关键点 2】它使类库能被多个 .NET 平台复用,解决框架碎片化导致的可移植问题。
- 【关键点 3】选择版本应取能覆盖目标平台的最低版本,以保证最大兼容性。
- 【关键点 4】.NET 5+ 是统一实现,新类库通常以多目标替代单独依赖 .NET Standard。
- 【关键点 5】.NET Standard 版本间不是单纯线性超集,使用前需核对平台支持。
- 【易错点 1】混淆 .NET Standard 与 .NET Core/5+,前者是规范,后者是具体运行时。
- 【易错点 2】误认为高版本 .NET Standard 一定兼容所有低版本平台,实际部分平台只支持到 2.0。
- 【易错点 3】忽略多目标策略,直接单一目标 .NET Standard 而丢失新 API 支持。