应用程序开发 - 寻找合适的平台从现有基础架构迁移到

App Development - Finding the right platform to migrate to from an existing infrastructure

我们有一个现有的跨平台移动应用程序,它还有一个附带的 Web 应用程序,它使用 AWS 作为后端(用于数据库的 RDS、四个服务器实例和一个用于分配流量的负载均衡器)。 APK 和 IPA 文件被打包并发送到商店,而组件是根据请求从我们的服务器检索的,这使我们能够减少商店构建的数量,并使将更改发送给客户的过程更加容易。

我们正处于开发阶段,我们需要转移到另一个平台以更好地促进我们快速增长的客户群。

鉴于我们客户的条件,必须考虑这些事情。

我们目前正在寻找 Xamarin 来帮助我们进行此迁移,但是有很多 的文档和插件可以完成各种不同的事情。

作为开发人员,我们都有一些 .net / c# 经验,但是 none 尤其是 Xamarin。

我们有一个特定的时间表需要遵守(并且需要在接下来的几周内加快速度),现在基本上处于研究阶段的 Limbo,因为我们负担不起做对一些事情。在我们知道 Xamarin(或其他一些框架)能够完成我们需要它做的一切之前,我们无法前进。

很难摆脱 'code it all ourselves' 心态 - 特别是当我们不知道从哪里开始寻找 Xamarin 的第三方包及其文档本身时。

很多文档都提到了 Azure 的各种系统——如果_必须这样做,我们不会反对通过 AWS 迁移到 Azure*,但由于 AWS 的现有基础设施——继续使用 AWS 显然是首选(在我们构建新系统的同时,用户需要访问当前系统)

这个堆栈溢出 post 是为了就选择框架、设计模式、方法论、第三方包等过程中涉及的任何事物征求建议、评论或其他意见。

显然,我们希望对所有向前发展的事物使用最佳实践,以获得最佳的可扩展性和更清晰、更健壮的代码。只是不知道从哪里开始!

我们将不胜感激任何意见。

干杯!

编辑: 我知道这是 'asking for recommendations',也就是 'specifically off-topic'。我已阅读 posting guidelines about open ended discussion,并且非常有信心这种情况有所不同。这里有一个潜在的问题,因为我们正在寻求与列表中的所有项目完全兼容的框架和插件组合的建议(上图)

让我们尝试分解问题中提到的每个要求和约束。

1。你需要一个离线优先架构(With Sync机制)

Xamarin + Azure 对您来说是一个很好的组合,因为它支持开箱即用的离线存储(通过简单的 PullAsync 调用)。 尽管有适用于 Xamarin 的 AWS SDK。就这样 http://docs.aws.amazon.com/mobile/sdkforxamarin/developerguide/setup.html

所以你来电吧。在 Xamarin 中实现缓存离线存储的其他方法很少,您可以在您的逻辑中构建这些策略。另外还有一个非常有趣的 C# 库 Akavache 用于缓存和离线存储。

2。 OAuth 2.0 身份验证

Xamarin 有一个非常好的库,名为 Xamarin.Auth。虽然我不会说它在这方面很容易扩展,但 Xamarin 在这个库上进行了一些认真的工作。

但我会说它非常易于使用。到目前为止,我开发的应用程序包括 - Google OAuth、Facebook 集成、Microsoft 帐户集成。它对所有人都很好。

3。基于云的分发

Microsoft 提供了很好的工具。这使得分发变得容易。看看 https://mobile.azure.com 。我发现 hockeyApp 也适合分发。

从哪里开始https://channel9.msdn.com 对你来说是一个很好的起点。只需去那里用关键字 "Xamarin" 搜索并观看一些视频。可能所有这些跨平台动态对您来说都会容易得多。

总的来说,我发现 Xamarin 是一个很酷的产品。因为任何可以在本机 Objective C/Swift 或 Java 中完成的事情都可以在 Xamarin 中使用 C# 很好地完成。