我的任务是构建一个新的android应用程序。我需要将应用程序数据持久存储到本地SQL Server中。不需要将数据从SQL Server传输到android应用,也就是说,我只需要CRUD中的C。我不确定该如何设置。有人可以帮助架构吗?我是否需要先将数据持久保存到本地SqlLite DB中,然后运行一些内容以传输到内部SQL Server DB?
我从来没有使用过Azure或在.NET中构建过一个宁静的服务。我们有一个旧的.NET Web服务(.asmx),我更愿意使用它。有可能吗?
答案 0 :(得分:0)
所以这个问题有几个要素。我将分三个部分进行回答。
1。网络(REST)
您将需要(如您所述)RESTful服务,以将外部请求连接到本地SQL Server。我相信您可以使用.NET(.asmx)来创建这样的API(有许多在线指南可以找到)。您还可以使用诸如ASP .NET Core之类的东西或诸如Node.js,Ruby on Rails之类的更现代的技术。
对于CRUD的“ C”,您将需要一个端点。这将是PUT还是POST端点将取决于实现和用例的具体细节。看到这样的答案:PUT vs. POST in REST
您可能还需要某种身份验证系统,以确保只有授权人员才能访问您的数据库。为此,您可以尝试使用Microsoft的Identity Framework,更多自定义身份验证方案(请参见this)或其他库之类的东西。
2。 Android
在Android方面,您将需要通过互联网访问API。最简单的方法是利用某种网络库(我建议使用OkHttp)。由于网络请求(点击API)可能会花费一些时间,因此强烈建议您在主线程/ UI线程之外执行此操作。通过使用诸如RxJava之类的线程库,Android中的操作变得更加容易。关于如何将OkHttp与RxJava一起使用的例子很多(例如,请参见this答案)。
3。缓存
这是额外的功劳部分。如果您想在Android设备上缓存创建操作(例如,如果您没有网络),则需要使用设备上的持久性存储。如果这不是必需的,则可以跳过此步骤。对于设备上的持久性存储,我建议您研究Android Room persistence library(它与RxJava的集成度也很高)。
请清楚一点,您只需要将数据持久存储在要缓存创建操作的实例中的本地SqLite数据库中即可。
祝你好运!