如何在 Xamarin 中从 Android 调用 SQL 服务器存储过程

How to call SQL Server stored procedure from Android in Xamarin

我们在 VB.NET 制作了一个移动应用程序,用于 Windows CE/Mobile 智能设备,用于 shipping/reception 仓库操作。此应用程序连接到 SQL 服务器并广泛使用存储过程。由于 Windows 移动设备已停产并被 Android 设备取代,我们必须使用 Visual Studio 的 Xamarin 和 C# 将我们的解决方案转换为 Android。

我是 Android 编程的新手。有没有一种方法可以直接连接到 SQL 服务器实例并从 Android 调用存储过程?我进行了一些搜索,人们说最好将 Web 服务称为 Android 和 SQL 服务器之间的中介。这是最佳做法吗?

感谢您的见解和帮助

根据所使用的技术和框架,升级遗留应用程序可能会非常复杂。

我建议首先看一下 Microsoft 为 Xamarin 和 Cross-platform 框架制作的体系结构文档,您 can see here

Typical Application Layers

  • Data Layer – Non-volatile data persistence, likely to be an SQLite database but could be implemented with XML files or any other suitable mechanism.

  • Data Access Layer – Wrapper around the Data Layer that provides Create, Read, Update, Delete (CRUD) access to the data without exposing implementation details to the caller. For example, the DAL may contain SQL statements to query or update the data but the referencing code would not need to know this.

  • Business Layer – (sometimes called the Business Logic Layer or BLL) contains business entity definitions (the Model) and business logic. Candidate for Business Façade pattern.

  • Service Access Layer – Used to access services in the cloud: from complex web services (REST, JSON, WCF) to simple retrieval of data and images from remote servers. Encapsulates the networking behavior and provides a simple API to be consumed by the Application and UI layers.

  • Application Layer – Code that’s typically platform specific (not generally shared across platforms) or code that is specific to the application (not generally reusable). A good test of whether to place code in the Application Layer versus the UI Layer is (a) to determine whether the class has any actual display controls or (b) whether it could be shared between multiple screens or devices (eg. iPhone and iPad).

  • User Interface (UI) Layer – The user-facing layer, contains screens, widgets and the controllers that manage them.

现在您可以简单地使用 System.Data.SqlClient 程序集并启动针对您的数据库运行的存储过程。然而,更常见的方法是创建一个 REST Api,它位于 in-between 您的客户端和您的 back-end 服务。

您可以下载由 Microsoft 的开发人员创建的方便的 E-book,它将向您展示一些常见的企业模式以用于 Cross-platform 技术,例如 Xamarin,它可以 be found here

下面是这些链接引用的模式类型的一个例子。

您还可以找到可以使用的各种 Web 服务的概述at this link

它为您提供的选项概览是:

  • ASMX
  • WCF
  • 休息

有很多选择,但取决于您当前的方法。