use*_*326 27 .net mono android portable-class-library xamarin
我想弄清楚哪个是更好的方式去我们的项目.
Xamarin的PCL图书馆或共享项目.
在这里的Xamarin文档链接中,它说经验法则是在我们不共享库时选择共享项目.共享项目可以用#if编写,以确保它适用于多个平台 - 这也会导致一些重构#ifs无效的问题.
但我有一种直觉,认为将此代码放入共享类是不对的.如果Windows,Android和IOS移动平台可用的代码使用共享项目而不是PCL - 这意味着我们在共享项目中使用#ifs而不是在特定于平台的项目中编写特定于平台的代码.
这是试图通过#ifs支持非PCL项目,并使共享代码更复杂,更难维护.这不应该是Xamarin要改进.NET PCL代码库的工作吗?
而这也意味着我们将平台特定功能放在共享项目而不是平台特定项目中 - 即从平台项目本身隐藏特定平台的复杂性 - 这在架构方面感觉不对.
我是对的(在这种情况下,我与Xamarin文档相冲突)或者我错过了什么?
SKa*_*all 20
两者都有自己的位置.例如,您可以将接口放入PCL,然后在共享代码中实现它,如果实现具有相当数量的共享代码.
我也不喜欢编译器标志,我更喜欢使用部分类.这样您就可以避免大部分甚至全部编译器标志.Class1.cs将进入共享项目,其余的将进入他们的平台特定项目.
Class1.cs
Class1.ios.cs
Class1.android.cs
Class1.wp8.cs
Run Code Online (Sandbox Code Playgroud)