快速入门:使用 .NET 和 Azure 门户生成 MongoDB API Xamarin.Forms 应用

Azure Cosmos DB 是 21Vianet 提供的多区域分布式多模型数据库服务。 可快速创建和查询文档数据库,这些数据库受益于 Azure Cosmos DB 核心的多区域分布和水平缩放功能。

本快速入门教程演示如何使用 Azure 门户创建 Azure Cosmos DB MongoDB API 帐户、文档数据库和集合。 然后,使用 MongoDB.NET 驱动程序生成 Xamarin.Forms 待办事项应用。

运行示例应用的先决条件

若要运行该示例,需要 Visual StudioVisual Studio for Mac 和有效的 Azure CosmosDB 帐户。

如果没有 Visual Studio,请在使用安装程序安装具有 .NET 的移动开发后,下载 Visual Studio 2017 Community Edition

如果想要使用 Mac,请下载 Visual Studio for Mac 并运行安装程序。

如果没有 Azure 订阅,可在开始前创建一个试用帐户

创建数据库帐户

  1. 在新窗口中,登录到 Azure 门户
  2. 在左菜单中,依次单击“创建资源”、“数据库”,然后在“Azure Cosmos DB”下单击“创建”。

    Azure 门户的屏幕截图,其中突出显示了“更多服务”和“Azure Cosmos DB”

  3. 在“新建帐户”边栏选项卡中,指定“MongoDB”作为 API,并填充 Azure Cosmos DB 帐户所需的配置。

    • “ID”必须是用于标识 Azure Cosmos DB 帐户的唯一名称。 ID 只能包含小写字母、数字和“-”字符,且长度必须为 3 到 50 个字符。
    • “订阅”是你的 Azure 订阅。 系统会自动填充此值。
    • “资源组”是 Azure Cosmos DB 帐户的资源组名称。 选择“新建”,然后输入帐户的新资源组名称。 为简单起见,可以使用与 ID 相同的名称。
    • “位置”是 Azure Cosmos DB 实例所在的地理位置。 请选择最靠近用户的位置。

      然后单击“创建” 。

      Azure Cosmos DB 的“新建帐户”页

  4. 创建帐户需要几分钟时间。 等待门户中显示“祝贺你!使用 MongoDB API 的 Azure Cosmos DB 帐户已准备就绪”页。

    Azure 门户“通知”窗格

本文中所述的示例与 MongoDB.Driver 版本 2.6.1 兼容。

克隆示例应用

首先,从 GitHub 下载示例 MongoDB API 应用。 这会实施一个包含 MongoDB 文档存储模型的待办事项应用。

  1. 打开命令提示符,新建一个名为“git-samples”的文件夹,然后关闭命令提示符。

    md "C:\git-samples"
    
  2. 打开诸如 git bash 之类的 git 终端窗口,并使用 cd 命令更改为要安装示例应用的新文件夹。

    cd "C:\git-samples"
    
  3. 运行下列命令以克隆示例存储库。 此命令在计算机上创建示例应用程序的副本。

    git clone https://github.com/Azure-Samples/azure-cosmos-db-mongodb-xamarin-getting-started.git
    

如果不想使用 git,也可以下载 ZIP 文件格式的项目

查看代码

此步骤是可选的。 如果有意了解如何使用代码创建数据库资源,可以查看以下代码片段。 否则,可以直接跳转到更新连接字符串

以下代码片段全部摘自 MongoService 类,可在以下路径找到:src/TaskList.Core/Services/MongoService.cs。

  • 初始化 Mongo 客户端。

    MongoClientSettings settings = MongoClientSettings.FromUrl(
        new MongoUrl(APIKeys.ConnectionString)
    );
    
    settings.SslSettings =
        new SslSettings() { EnabledSslProtocols = SslProtocols.Tls12 };
    
    MongoClient mongoClient = new MongoClient(settings);
    
  • 检索对数据库和集合的引用。 如果它们尚不存在,MongoDB.NET SDK 会自动创建该数据库和集合。

    string dbName = "MyTasks";
    string collectionName = "TaskList";
    
    var db = mongoClient.GetDatabase(dbName);
    
    var collectionSettings = new MongoCollectionSettings {
        ReadPreference = ReadPreference.Nearest
    };
    
    tasksCollection = db.GetCollection<MyTask>(collectionName, collectionSettings);
    
  • 以列表形式检索所有文档。

    var allTasks = await TasksCollection
                    .Find(new BsonDocument())
                    .ToListAsync();
    
  • 查询特定文档。

    public async Task<List<MyTask>> GetIncompleteTasksDueBefore(DateTime date)
    {
        var tasks = await TasksCollection
                        .AsQueryable()
                        .Where(t => t.Complete == false)
                        .Where(t => t.DueDate < date)
                        .ToListAsync();
    
        return tasks;
    }
    
  • 创建任务并将其插入到 MongoDB 集合。

    public async Task CreateTask(MyTask task)
    {
        await TasksCollection.InsertOneAsync(task);
    }
    
  • 更新 MongoDB 集合中的任务。

    public async Task UpdateTask(MyTask task)
    {
        await TasksCollection.ReplaceOneAsync(t => t.Id.Equals(task.Id), task);
    }
    
  • 删除 MongoDB 集合中的任务。

    public async Task DeleteTask(MyTask task)
    {
        await TasksCollection.DeleteOneAsync(t => t.Id.Equals(task.Id));
    }
    

更新连接字符串

现在返回到 Azure 门户,获取连接字符串信息,并将其复制到应用。

  1. Azure 门户的 Azure Cosmos DB 帐户的左侧导航栏中,单击“连接字符串”,并单击“读写密钥”。 在后续步骤中,将使用屏幕右侧的复制按钮复制“主连接字符串”。

  2. 打开 TaskList.Core 项目的 Helpers 目录中的 APIKeys.cs 文件。

  3. 从门户复制“主连接字符串”值(使用复制按钮),并将其设置为 APIKeys.cs 文件中 ConnectionString 字段的值。

现已使用与 Azure Cosmos DB 进行通信所需的所有信息更新应用。

运行应用

Visual Studio 2017

  1. 在 Visual Studio 中,右键单击解决方案资源管理器中的每个项目,并单击“管理 NuGet 包”。
  2. 单击“还原所有 NuGet 包”。
  3. 右键单击“TaskList.Android”,并选择“设为启动项目”。
  4. 按 F5 开始调试应用程序。
  5. 如果想要在 iOS 上运行,首先请将计算机连接到 Mac(参阅操作说明)。
  6. 右键单击“TaskList.iOS”项目,并选择“设为启动项目”。
  7. 单击 F5 开始调试应用程序。

Visual Studio for Mac

  1. 在平台下拉列表中,根据使用的平台选择“TaskList.iOS”或“TaskList.Android”。
  2. 按 cmd+Enter 开始调试应用程序。

在 Azure 门户中查看 SLA

在 Azure 门户中监视帐户中资源的吞吐量、存储空间、可用性、延迟和一致性。 让我们快速了解一下这些指标。

  1. 在导航菜单中单击“指标”。

    Azure 门户中的指标

  2. 单击每个选项卡,以便了解 Azure Cosmos DB 提供的指标。

    Azure Cosmos DB 服务级别协议 (SLA) 关联的每个图表都提供了一行,显示是否违反了任何 SLA。 Azure Cosmos DB 通过此套指标使监视 SLA 的操作更透明。

    Azure Cosmos DB 指标套件

清理资源

如果不打算继续使用此应用,请按照以下步骤删除本快速入门中创建的所有资源,以免产生任何费用:

  1. 在 Azure 门户的最左侧选择“资源组”,,然后选择创建的资源组。

    如果左侧菜单处于折叠状态,请单击 “展开”按钮 将其展开。

    Azure 门户中的指标

  2. 在新窗口中选择资源组,然后单击“删除资源组”。

    Azure 门户中的指标

  3. 在新窗口中键入要删除的资源组的名称,然后单击“删除”。

后续步骤

本快速入门已介绍如何创建 Azure Cosmos DB 帐户和使用 API for MongoDB 运行 Xamarin.Forms 应用。 现在可以将其他数据导入 Cosmos DB 帐户。