我正在尝试找出对于我们的项目而言哪种方法更好。
PCL 库或 Xamarin 的共享项目。
在Xamarin 文档链接中,它说选择共享项目还是 PCL 库的一个经验法则是当我们不想分享库时就选共享项目。共享项目可以使用 #if 写成多平台通用的代码 - 这也会导致一些重构 #ifs 不起作用的问题。
但是我有一种直觉,将此代码放到共享类中并不正确。如果要在 Windows、Android 和 IOS 移动平台上使用的代码使用共享项目而不是 PCL,这意味着我们在共享项目中使用 #ifs 而不是在特定平台的特定项目中编写特定平台的代码。
这样尝试通过 #ifs 来支持非 PCL 项,并使共享代码变得更加复杂和难以维护。这不应该是 Xamarin 改进 .NET PCL 代码库的工作吗?
而且这意味着我们将平台特定的功能放入共享项目而不是特定于平台的项目中 - 即从平台项目本身中隐藏了针对特定平台的复杂性 - 这在架构方面感觉不对。
我是对的吗(如果是,那么我与 Xamarin 文档相冲突)还是我漏掉了什么?