我应该为 Xamarin.Form 创建什么样的项目(共享或 .Net 标准)?

Dev*_*per 2 xamarin.ios xamarin.android xamarin.forms visual-studio-2017

我必须创建应用程序如下。

1- 应用程序应适用于 Android 和 iOS。

2-分辨率应支持移动设备和选项卡

3- 数据存储在云端。因此,Restful API 调用将用于数据交易

4-可能有用于配置设置的本地存储

5-某些功能可能有本机代码implement UrbanAirship Notification,例如Facebook

当我为 Xamarin.Forms 创建项目时,我有 2 个选项来创建应用程序:

1- 共享,2- .Net 标准。

我两者都尝试过。一点是,我还没有找到包含类似名称.Shared.Portable我在旧项目之一中找到的名称的库。

这里是比较。请建议我应该为下一个项目创建哪种类型的项目。

在此输入图像描述

谢谢。

Pau*_*her 5

最后归结为口味问题。主要区别是

  • 共享项目包含在您的平台项目中,就像源代码文件是项目本身的一部分一样
  • .NET Standard 项目被编译为自己的程序集

.NET Standard 取代了可移植类库。后者已被弃用,不应再使用。无论如何,没有理由这样做,因为 .NET Standard 更方便并且支持 .NET 的更大子集(实际上 - 取决于 PCL 配置文件,但与 Xamarin 兼容的一个非常有限,例如很少支持的课程System.IO)。

.NET Standard 和共享项目各有利弊。在共享项目中,您可以直接在平台项目中使用类(无论如何,如果您尝试开发 SOLID 代码,这可能是不可取的),但是您必须使用#ifdefs 来使用仅与其中之一兼容的代码平台。使用.NET Standard,您可能需要编写包含平台相关代码的类两次,并通过DependencyService甚至更好的完全成熟的 IoC 容器加载它们,但因此它们更加干净,并且关注点也更好地分离。

在 PCL 时代,有充分的理由采用混合方式,例如System.IO.File从直接在平台项目中编译的类中使用,因为两者都支持它,但 PCL Xamarin Profile 不支持,但使用 .NET Standard 则可以实现这一点。不再需要了。

由于上述原因,我总是会选择 .NET Standard 库。