【问题标题】:Web App and Mobile App with same database in AzureAzure 中具有相同数据库的 Web 应用程序和移动应用程序
【发布时间】:2016-08-13 09:05:13
【问题描述】:

我的目标是开发一个网络应用程序和一个移动应用程序来共享来自同一数据库的数据。 实现这一目标的最佳方法是什么(使用 azure)?

我想我应该:

  • 使用 SQL 数据库从 Azure 门户创建 Web 应用
  • 使用现有数据库(我之前创建的数据库)从 Azure 门户创建移动应用

然后我将开发我的 ASP.net MVC 项目,使用 Entity Framework 创建 db Schema,并将其发布到 Azure。 最后,我将开发我的移动应用程序(在这种情况下,我想使用 Xamarin)并使用 Easy Tables 的代码访问数据库(之前创建的)。

对吗?或者我想错了,这不是使用 Azure 在 Web 应用程序和移动应用程序之间共享相同数据库的最佳架构?

【问题讨论】:

    标签: asp.net azure azure-web-app-service azure-mobile-services


    【解决方案1】:

    这应该没问题。请记住,Azure 移动应用服务器会自动将一些系统列添加到您的数据库表中(createdAt、updatedAt、deleted 和 version)。此外,移动应用程序的一个限制是主键名称必须称为id

    【讨论】:

    • 我认为这应该不是问题。但是,您认为可能是更好的解决方案吗?
    • 在不了解您的要求的情况下无法说出 - 当然有很多解决方案! Azure 移动应用提供了一个客户端,可以轻松访问数据(和离线使用数据)、发送推送通知和验证用户身份。您也可以在 Web 应用中使用客户端,也可以直接访问数据库。
    • 最后我使用了这个解决方案,但正如你所建议的那样,我在系统列方面遇到了一些问题。但是我解决了它们。
    【解决方案2】:

    如果您想开发网站和移动应用共享同一个数据库,这是一个不错的选择。

    【讨论】:

      【解决方案3】:

      Azure 移动应用程序是一个普通的旧 ASP.NET 应用程序或 Node.js 应用程序。 Easy Tables 只是 Node.js 版本的数据投影。如果您使用的是 ASP.NET,那么您不会得到 Easy Tables。

      话虽如此,将 Azure 移动应用 SDK 添加到现有 Web 应用相对容易。

      1) 将示例应用中App_Start\Startup.MobileApp.csStartup.cs 中的代码复制到您的ASP.NET 应用中

      2) 确保您的所有模型都继承自 EntityData,以便它们“准备好移动”。如果您的模型已经有一个自动递增的 Id 列,请参阅https://shellmonger.com/2016/05/11/30-days-of-zumo-v2-azure-mobile-apps-day-19-asp-net-table-controllers/ 以了解解决方法

      3) 为您的移动数据库表投影搭建 Azure 移动应用程序表控制器。

      您可以在 MVC 控制器和移动控制器上使用相同的模型。如果您的应用使用 AJAX 调用来获取数据,您可以将这些 AJAX 调用替换为适用于 Azure 移动应用的 JavaScript SDK,这样您就不必重复。

      您将不得不进行的主要工作是集成身份验证。大多数 MVC 应用程序使用身份数据库,因为它们是从现有的 MVC 模板之一发展而来的。您将需要实现自定义移动身份验证机制来重用数据库。您可以在 azure.com HOWTO 文档中找到相关信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-28
        • 1970-01-01
        • 2017-03-18
        • 1970-01-01
        • 2014-07-02
        • 1970-01-01
        相关资源
        最近更新 更多