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

问题描述:

我们有一个现有的跨平台移动应用程序,这也有一个附带的Web应用程序,使用AWS作为后端(RDS数据库,四大服务器实例,负载均衡器来分配流量)。 APK和IPA文件被打包并发送到商店,而每个请求都会从我们的服务器中检索组件,这使我们能够减少商店构建的数量,并使流程更易于将更改发布到客户端。应用程序开发 - 寻找合适的平台从现有的基础设施迁移到

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

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

  • 必须是跨平台(Android/iOS)。
  • 必须脱机基础(用户需要能够没有互联网连接来访问)
  • 必须能够与现有数据库进行同步时,有连接
  • 要求身份验证
  • 基于云(可能不是正确的术语,但意为我们存储组件的服务器上,并有更新的设备检查,并下载一个本地副本的能力 - 使我们的工作和更快分发补丁)
  • 与AWS

目前,我们正在寻找在Xamarin,以方便我们这一举动理想的兼容,但有文件和插件在那里的很多做各种不同的事情。

作为开发者,我们都有一些.NET/C#的经验,但是,没有特别Xamarin。

我们有一个特定的时间表,我们需要坚持(并且需要在接下来的几周内提高),而且现在基本上停留在研究阶段的Limbo,因为我们无法承受有些事情是对的。直到我们知道Xamarin(或其他框架)能够做我们需要做的每件事情时,我们都无法前进。

很难从“码这一切我们自己”的心态来逃避 - 尤其是当我们不知道从哪里开始寻找第三方软件包Xamarin而言,他们的文档本身。

很多文档都提到了Azure的各种系统 - 如果AWS要完成*,但由于现有AWS基础架构,我们不会反对在Azure上转向Azure,而是坚持使用AWS显然是首选(用户需要访问当前系统,同时我们构建新系统)

此堆栈溢出帖子是要求对关于选择框架,设计模式等过程中所涉及的任何和所有内容提出建议,评论或其他观察。方法,第三方软件包等

显然,我们想用的最佳实践的一切前进的最佳小号可用性和清洁,代码更健壮。很难知道从哪里开始!

任何输入将不胜感激。

干杯!

编辑:我知道这是'要求推荐',这是'特别偏离主题'。我已阅读帖子guidelines about open ended discussion,并且我相当确信这种情况是不同的。这里存在一个根本问题,因为我们正在寻求与列表中所有项目完全兼容的框架和插件组合的建议

+2

'这个堆栈溢出帖子是要求推荐'这是特别关闭的主题:问题要求我们推荐或找到一本书,工具,软件库,教程或其他异地资源是堆栈溢出他们倾向于吸引自以为是的答案和垃圾邮件。相反,请描述问题以及到目前为止解决问题所做的工作。 – John3136

+0

嗨,约翰 - 谢谢你的回复。 我知道这是要求推荐,但这里有一个特定的问题。 我们需要找到一个解决方案来考虑上面列表中的所有点。 换个口吻,不客气地说,问题是 '我们可以探索什么样的框架或软件包组合,以促进这些事情' - 只是碰巧对此的答案可能是开放式的,因为我们正在问对于现有软件和插件的建议和指针 – James

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

1.你需要离线第一架构(使用同步机制)

Xamarin + Azure中会成为一个好comdo你,因为这将支持离线存储在箱子外面(用一个简单的通话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.基于云的分布

有可与微软不错的工具。这使分配变得容易。看看https://mobile.azure.com。 hockeyApp也适合我发现的分布。

从哪里开始: 对您而言,一个非常好的起点是https://channel9.msdn.com。只需到那里搜索关键字“Xamarin”并查看一些视频。可能所有这些跨平台的动态对你来说都会容易得多。

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

+1

感谢您的回答,这正是我希望看到的那种答案。 我们已经经历了channel9的大部分工作,不仅要从基础开始,还要选择能够满足我们现在和未来需求的插件或标准。 特别感谢分享你的知识,重新脱机和基于云的分布,非常有帮助。 根据您的体验(如果适用),是否可以使用Azure和AWS的组合,还是应该将其移至主要使用的Azure – James

+1

我建议迁移到Azure,因为我发现Azure与Xamarin非常灵活。此外,微软在Xamarin + Azure整合方面投入了大量精力 - 离线支持和同步就是其中之一。 – Subhamoy

+1

谁投了赞成票让我知道投票的理由。这将有助于我改进答案。 – Subhamoy