什么';选择API的原因是什么;是针对某个.NET平台标准版本的吗?

什么';选择API的原因是什么;是针对某个.NET平台标准版本的吗?,.net,.net-core,.net,.net Core,据我所知,.NET平台标准是一种提供合同以支持不同平台的方法。因此,我们没有编写应该运行平台a、B和C的代码,而是针对这三个平台同时支持的.NET平台标准版本 据我所知,这样做的动机是每个平台都有一个可用的“基本库”(如BCL)。最后,我们的代码依赖于这个基本库,所以我们需要知道哪些API是可用的。针对平台A、B和C,我们可以知道我们可以访问平台A、B和C的基础库中同时可用的API 选择特定平台A、B和C的明显缺点是,如果出现另一个平台,并且它的基础库中也有我们需要的API,我们就不能使用它 使

据我所知,.NET平台标准是一种提供合同以支持不同平台的方法。因此,我们没有编写应该运行平台a、B和C的代码,而是针对这三个平台同时支持的.NET平台标准版本

据我所知,这样做的动机是每个平台都有一个可用的“基本库”(如BCL)。最后,我们的代码依赖于这个基本库,所以我们需要知道哪些API是可用的。针对平台A、B和C,我们可以知道我们可以访问平台A、B和C的基础库中同时可用的API

选择特定平台A、B和C的明显缺点是,如果出现另一个平台,并且它的基础库中也有我们需要的API,我们就不能使用它

使用.NET平台标准,我们针对特定的“.NET级别”,因此我们支持符合该标准的平台。从某种意义上说,我们确信,对于特定的.NET平台标准,我们有一组API,这些API将出现在平台库中

我的观点是:这里有一个从平台版本到API集合的映射。因此,对于.NET标准1.0,我们关联一个特定的API列表,对于.NET标准1.1,我们关联1.1中的相同列表,再加上更多的API,等等,直到1.4

在这种情况下,我们将为每个.NET标准版本选择一个API列表。也就是说,一个数字包含了大量信息


这背后的原因是什么?这个数字怎么能保存这么多信息?是什么定义了每个.NET标准平台级别支持哪些API?

与PCL不同,平台标准试图以一种新的方法解决兼容性问题,我们假设1.0版本与一些平台匹配(尽管事实上,这些平台在发布时并没有考虑到这样的标准)。然后在2.0版本中添加了一些新的API,因此匹配的平台得到了升级

因此,当前所有现有平台到标准平台版本的映射就像是在编造一部关于这些平台是如何“设计和发布”的历史

它更多地强调了未来应该如何管理.NET生态系统

例如,如果Microsoft和Xamarin(以及其他主要供应商)希望发布新的标准平台版本(规范),那么他们可以讨论要添加的新API是什么。之后,每个供应商都必须提供新平台(.NET Framework/.NET Core/Xamarin.iOS等),以符合新标准。否则,它们将失去在生态系统中的地位


其他编程语言,如C++,多年来一直使用这种方法,它是有效的。检查C++ 11、C++ 14和C++ 17。

< P>与PCL相比,平台标准试图解决一个新的方法中的兼容性问题,我们假设1版本与几个平台匹配(尽管事实上这些平台没有以这样的标准发布)。然后在2.0版本中添加了一些新的API,因此匹配的平台得到了升级

因此,当前所有现有平台到标准平台版本的映射就像是在编造一部关于这些平台是如何“设计和发布”的历史

它更多地强调了未来应该如何管理.NET生态系统

例如,如果Microsoft和Xamarin(以及其他主要供应商)希望发布新的标准平台版本(规范),那么他们可以讨论要添加的新API是什么。之后,每个供应商都必须提供新平台(.NET Framework/.NET Core/Xamarin.iOS等),以符合新标准。否则,它们将失去在生态系统中的地位


其他编程语言,如C++,多年来一直使用这种方法,它是有效的。检查C++ 11、C++ 14和C++ 17。< /P>只是规范的版本号。与C#version 5和C#version 6没有什么不同,数字指的是语言规范版本。一群人决定每个修订中添加的内容,当他们决定下一步要做什么时,肯定是由CoreFx团队推动的。在合作伙伴的投入下,Xamarin肯定会参与其中,因为他们是主要受益者。我理解这一点。这是一个内部决定,以标签的一套API的,因为他们想要的。但是,如果有一个平台有一些API,例如1.0版和1.2版,该怎么办?我的意思是,如果有一个平台的基本库不是这些特定的API组合中的任何一个,而这些API组合被贴上了标签,那该怎么办?只有当您将自己限制在该平台实现的版本号时,您才能获得保修。当然,也许它实现了更多,而且几乎总是这样。但是这些类型或方法不会出现在引用程序集中,因此您无法使用它们。与PCL完全相同的场景,减去置换爆炸。它只是规范的版本号。与C#version 5和C#version 6没有什么不同,数字指的是语言规范版本。一群人决定每个修订中添加的内容,当他们决定下一步要做什么时,肯定是由CoreFx团队推动的。在合作伙伴的投入下,Xamarin肯定会参与其中,因为他们是主要受益者。我理解这一点。这是一个内部决定,以标签的一套API的,因为他们想要的。但是,如果有一个平台有一些API,例如1.0版和1.2版,该怎么办?我的意思是,如果有一个平台的基本库不是这些特定的API组合中的任何一个,而这些API组合被贴上了标签,那该怎么办?只有当您将自己限制在该平台实现的版本号时,您才能获得保修。当然可以,梅布