【问题标题】:Are there any pros to using PCL profile 158 over 78 for Xamarin and MvvmCross?对 Xamarin 和 MvvmCross 使用 PCL 配置文件 158 超过 78 是否有任何优点?
【发布时间】:2013-11-28 15:38:26
【问题描述】:

我正在使用 Stuart Lodge 出色的 MvvmCross 框架开发面向 iOS 和 Android 的跨平台 Xamarin 应用程序。

Microsoft 最近发布了他们的 Portable Class Library BCL 包的新版本,Stuart 在http://slodge.blogspot.com.au/2013/11/quick-run-through-using-pcls-in.html 中描述了如何使用这些包设置项目。

使用 PCL 配置文件 158 时,必须添加 BCL 异步包并进行一些调整才能使 iOS 项目正常工作。

使用 PCL 配置文件 78 时,这似乎可以自动运行,无需 BCL 包。

为什么要使用配置文件 158 而不是配置文件 78?

【问题讨论】:

  • 据我了解,由于 4(由 104、158 等配置文件使用)和 4.5(由 78 使用)之间的反射差异,您目前不能将 78 用于 Xamarin - 但希望您的“便携式- class-library”和“xamarin”标签会吸引知道更明确答案的人。

标签: xamarin mvvmcross portable-class-library


【解决方案1】:

Profile158 支持更多平台。具体来说,它可以在 Silverlight 5 上运行,而 Profile78 则不能。此外,Profile158 使用“较旧”的反射 API,因此如果您有使用反射的现有代码,则可能更容易移植到 Profile158。

在其他条件相同的情况下,我建议您使用 Profile78,除非您有理由不这样做。它应该可以在 Xamarin 上运行,如果不能,则将其报告为错误。 :)

【讨论】:

  • 我不知道新的反射 API。为其他感兴趣的人找到了一个不错的 MSDN Blog post
  • 看起来 Profile78 刚刚成为新的(尚未发布)默认值 -> monodevelop/master d7f8378 Jeffrey Stedfast:[核心] 将默认 PCL 配置文件更改为 Profile78
【解决方案2】:

除了 Daniel Plaisted 的评论之外,profile 78 还缺少一些类型

  1. System.Threading.ThreadPool
  2. System.Threading.Timer

两者都可以通过为每个平台创建具有特定实现的插件或引用具有这些并包装这些类型的旧框架来解决,请参阅timer-in-portable-library

除此之外,微软还发布了一个强大的集合:Immutable-Collection
它支持 PCL,但在 silverlight 中不受支持,因此在配置文件 158 中不受支持,但在配置文件 78 中受支持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多