gpt4 book ai didi

c# - 选择 PCL 配置文件时不针对遗留 .NET 平台的原因

转载 作者:行者123 更新时间:2023-11-30 12:28:09 28 4
gpt4 key购买 nike

我正在维护一个面向主要 .NET 和 Mono 平台的可移植类库。核心 PCL 使用配置文件 147(.NET 4.03 + Windows Store + Silverlight 5 + Windows Phone 8),但是由于某些技术原因,NuGet 包包含三个版本:核心 PCL(配置文件 147)、.NET 4 和 Silverlight 5。实际上我可以更改核心 PCL 的配置文件并将 .NET 4.03 替换为 .NET 4.5 并删除 Silverlight 5。我不会这样做以防其他 PCL 使用我的库 - 因此我想使用最宽的 PCL。

所以我的第一个问题是这个假设是否正确。例如。即使我有单独的 SL5 实现,选择支持 SL5 的 PCL 配置文件也会使其对 PCL 更加友好,例如另一个以 SL5 为目标的 PCL 将能够引用我的库。

如果这个假设是正确的,我的下一个问题是这是否值得。现在 Xamarin 开发有流行的 PCL 配置文件选择,但没有一个以 .NET 4 为目标。推荐的是不以 Silverlight 为目标的配置文件 78。我还没有找到关于不选择这些配置文件的后果的详细描述,所以我无法弄清楚继续使用配置文件 147 我会失去什么。如果存在已知问题和不支持的功能,我当然会切换到更现代的配置文件,但正如我之前写的那样,如果可能的话,我想瞄准更广泛的平台集。

最佳答案

这是广度和功能之间的权衡。如果使用 Silverlight 的目标配置文件支持您想要或需要的所有 API,那么坚持使用它。你别无选择,去广度。不包括测试成本,没有必要限制您自己或您的消费者。

但是,当使用 Silverlight 或其他平台选择配置文件时,您将无法使用特定功能(并且尚未带外提供该功能,例如通过 Microsoft BCL Portability Pack ),这就是您需要做的地方艰难的决定。本页支持功能表Cross-Platform Development with the Portable Class Library可以通过显示针对特定平台而失去/获得的功能来帮助您做出此决定。

查看内部数据,我可以看到“Profile78”(.NET Framework 4.5、Windows 8、Phone 8、Xamarin.Android、Xamarin.iOS)压倒了最流行的目标(~45% 的可移植项目目标这)。这并不奇怪。它以广泛的现代平台为目标,具有合理的大型功能支持。此配置文件所针对的这些平台也支持我们认为的“现代表面区域”,因此与面向支持我们旧表面区域(Silverlight、.NET Framework 4)的平台的配置文件相比,具有更多的共享 API 表面。此处详细介绍了这两个表面积之间的差异:What is .NET Portable Subset (Legacy)? .

关于c# - 选择 PCL 配置文件时不针对遗留 .NET 平台的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22954634/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com