【问题标题】:What kind of project I should create for Xamarin.Form(Shared or .Net Standard)?我应该为 Xamarin.Form(共享或 .Net 标准)创建什么样的项目?
【发布时间】:2018-10-17 23:33:06
【问题描述】:

我必须按以下方式创建应用程序。

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

2- 分辨率应该支持移动和标签

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

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

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

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

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

我都试过了。有一点是,我还没有找到包含 .Shared.Portable 之类的名称的库,而这些名称是我在我的一个旧项目中找到的。

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

谢谢。

【问题讨论】:

标签: xamarin.forms xamarin.ios xamarin.android visual-studio-2017


【解决方案1】:

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

  • 共享项目包含在您的平台项目中,就像源代码文件是项目本身的一部分一样
  • .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 配置文件不支持,但对于 .NET Standard,这不再是必需的了。

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

【讨论】:

    【解决方案2】:

    .NET Standard 是未来,所有插件和库迟早都需要遵循和支持它。

    与 Xamarin forms 3.0 的新预发布版本一样:

    我们现在使用 .NET Standard 2.0 构建,使用 多目标,同时仍支持 PCL 配置文件和其他 您可能需要的 .NET Standard 版本。注意你的速度有多快 使用 .NET Standard 项目类型时会加载项目!

    Update To Xamarin.Forms 3.0 prerelease

    .NET Standard 将提供许多开箱即用的功能。开发人员现在正在升级他们的解决方案和插件以支持该标准。

    【讨论】:

      【解决方案3】:

      .Net 标准。是一个新的 PCL。像使用 PCL 一样使用它。

      【讨论】:

      • 谢谢。在我的一个旧项目中工作的所有 PCL 组件/概念/机制都可以工作(在屏幕截图中给出)?
      • 是的。你应该没有任何问题。
      猜你喜欢
      • 2018-05-18
      • 2012-02-23
      • 1970-01-01
      • 2014-08-08
      • 1970-01-01
      • 2020-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多