【问题标题】:How to call SQL Server stored procedure from Android in Xamarin如何在 Xamarin 中从 Android 调用 SQL Server 存储过程
【发布时间】:2019-07-17 19:40:55
【问题描述】:
我们有一个用 VB.NET 为 Windows CE/Mobile 智能设备制作的移动应用程序,用于仓库中的运输/接收操作。此应用程序连接到 SQL Server 并广泛使用存储过程。由于 Windows Mobile 设备已停产并被 Android 设备取代,我们必须使用 Visual Studio 的 Xamarin 和 C# 将我们的解决方案转换为 Android。
我是 Android 编程的新手。有没有一种方法可以直接连接到 SQL Server 实例并从 Android 调用存储过程?我进行了一些搜索,人们说最好将 Web 服务称为 Android 和 SQL Server 之间的中介。这是最佳做法吗?
感谢您的洞察力和帮助
【问题讨论】:
-
我工作的公司已经这样做了一段时间,但我们正计划迁移到 Azure。我会查看documentation 以获取有关如何将数据导入您的应用程序的完整指南
-
标签:
sql-server
mobile
xamarin.android
windows-ce
【解决方案1】:
升级旧版应用程序可能非常复杂,具体取决于所使用的技术和框架。
我建议首先看看微软为 Xamarin 和跨平台框架制作的体系结构文档,您 can see here
典型应用层
数据层 – 非易失性数据持久性,可能是 SQLite 数据库,但可以使用 XML 文件或任何其他合适的文件来实现
机制。
数据访问层 – 围绕数据层的包装,提供对数据的创建、读取、更新、删除 (CRUD) 访问,而无需
向调用者公开实现细节。例如,DAL
可能包含用于查询或更新数据的 SQL 语句,但
引用代码不需要知道这一点。
业务层 –(有时称为业务逻辑层或 BLL)包含业务实体定义(模型)和业务逻辑。
商业外观模式的候选者。
服务访问层 – 用于访问云中的服务:从复杂的 Web 服务(REST、JSON、WCF)到简单的数据检索和
来自远程服务器的图像。封装网络行为和
提供一个简单的 API 供应用程序和 UI 层使用。
应用层 – 通常特定于平台的代码(通常不跨平台共享)或特定于
应用程序(通常不可重复使用)。一个很好的测试是否放置
应用层与 UI 层中的代码是 (a) 确定
该类是否有任何实际的显示控件或(b)它是否
可以在多个屏幕或设备之间共享(例如 iPhone 和
iPad)。
用户界面 (UI) 层 – 面向用户的层,包含屏幕、小部件和管理它们的控制器。
现在您可以简单地使用System.Data.SqlClient 程序集并启动针对您的数据库运行的存储过程。然而,更常见的方法是创建一个位于客户端和后端服务之间的 REST Api。
您可以下载由微软开发人员创建的方便的电子书,它将向您展示一些用于跨平台技术(如 Xamarin)的常见企业模式,可以be found here
这是这些链接所指的那种模式的一个例子。
您还可以找到可以使用的各种 Web 服务的概述at this link
它为您提供的选项有:
有很多选择,但取决于您当前的方法。