注意
此产品已停用。 有关使用 .NET 8 或更高版本的项目的替换,请参阅 Community Toolkit Datasync 库。
本教程介绍如何使用 Xamarin.Forms 和 Azure 移动应用后端将基于云的后端服务添加到跨平台移动应用。 你将创建一个新的移动应用后端和一个简单的 Todo 列表 应用,用于在 Azure 中存储应用数据。
在 Azure 应用服务中使用移动应用功能的其他 Xamarin Forms 教程之前,必须先完成本教程。
先决条件
可以在 Mac 或 Windows 上完成本教程。 若要完成本教程,需要:
- 使用以下工作负载 Visual Studio 2022。
- ASP.NET 和 Web 开发
- Azure 开发
- 使用 .NET 进行移动开发
 
- 一个 Azure 帐户。
- 
              Azure CLI。
- 使用 az login登录,并在开始之前选择适当的订阅。
 
- 使用 
- (可选)Azure 开发人员 CLI。
- 
              Android 虚拟设备,具有以下设置:- 电话:任何手机图像 - 我们使用 Pixel 5 进行测试。
- 系统图像:Android 11(使用 Google API 的 API 30)
 
如果编译应用的 iOS 版本,则必须拥有可用的 Mac:
- 安装 XCode
- 安装后打开 Xcode,以便它可以添加任何额外的必需组件。
- 打开后,选择 XCode 首选项...>组件,然后安装 iOS 模拟器。
- 如果完成 Windows 上的教程,请按照指南 与 Mac 配对。
下载示例应用
- 在浏览器中打开 azure-mobile-apps 存储库。 
- 打开 代码 下拉列表,然后选择 下载 ZIP。   
- 下载完成后,打开 下载 文件夹并找到 - azure-mobile-apps-main.zip文件。
- 右键单击下载的文件,然后选择 “全部提取...”。 - 如果愿意,可以使用 PowerShell 扩展存档: - C:\Temp> Expand-Archive azure-mobile-apps-main.zip
这些示例位于提取文件 文件夹中 示例。  快速入门的示例命名为 TodoApp。  可以通过双击 TodoApp.sln 文件在 Visual Studio 中打开示例。
               
              
            
将后端部署到 Azure
注意
如果已从另一个快速入门部署后端,则可以使用相同的后端并跳过此步骤。
若要部署后端服务,我们将:
- 将 Azure 应用服务和 Azure SQL 数据库预配到 Azure。
- 使用 Visual Studio 将服务代码部署到新创建的 Azure 应用服务。
使用 Azure 开发人员 CLI 完成所有步骤
TodoApp 示例配置为支持 Azure 开发人员 CLI。 若要完成所有步骤(预配和部署):
- 安装 Azure 开发人员 CLI。
- 打开终端并将目录更改为包含 TodoApp.sln文件的文件夹。 此目录还包含azure.yaml。
- 运行 azd up。
如果尚未登录到 Azure,浏览器会启动以要求你登录。  然后系统会提示你输入要使用的订阅和 Azure 区域。  然后,Azure 开发人员 CLI 预配必要的资源,并将服务代码部署到所选的 Azure 区域和订阅。 最后,Azure 开发人员 CLI 会为你编写适当的 Constants.cs 文件。
可以运行 azd env get-values 命令,查看想要直接访问数据库的 SQL 身份验证信息。
如果已完成 Azure 开发人员 CLI 的步骤,继续执行下一步。 如果不想使用 Azure 开发人员 CLI,请继续执行手动步骤。
在 Azure 上创建资源。
- 打开终端并将目录更改为包含 - TodoApp.sln文件的文件夹。 此目录还包含- azuredeploy.json。
- 确保已使用 Azure CLI 登录并选择订阅。 
- 创建新的资源组: - az group create -l westus -g quickstart- 此命令在“美国西部”区域中创建 - quickstart资源组。 可以选择所需的任何区域,前提是可以在其中创建资源。 请确保使用本教程中提到的相同名称和区域。
- 使用组部署创建资源: - az deployment group create -g quickstart --template-file azuredeploy.json --parameters sqlPassword=MyPassword1234- 为 SQL 管理员密码选择强密码。 稍后访问数据库时需要用到它。 
- 部署完成后,获取输出变量,因为这些变量包含稍后需要的重要信息: - az deployment group show -g quickstart -n azuredeploy --query properties.outputs- 示例输出为:   
- 记下输出中的每个值供以后使用。 
发布服务代码
在 Visual Studio 中打开 TodoApp.sln。
- 在右侧窗格中,选择 解决方案资源管理器。 
- 右键单击 - TodoAppService.NET6项目,然后选择 设置为启动项目。
- 在顶部菜单中,选择 生成>发布 TodoAppService.NET6。 
- 在“发布”窗口中,选择“目标:Azure”,然后按“下一步”。   
- 选择特定目标:Azure 应用服务(Windows),然后按 下一。   
- 如有必要,请登录并选择适当的 订阅名称。 
- 确保 视图 设置为 资源组。 
- 展开 - quickstart资源组,然后选择之前创建的应用服务。  
- 选择“完成”。 
- 发布配置文件创建过程完成后,选择 关闭。 
- 找到 服务依赖项 并选择 SQL Server 数据库旁边的三点,然后选择 连接。   
- 选择 Azure SQL 数据库,然后选择 下一。 
- 选择 快速入门 数据库,然后选择“下一步”。   
- 使用部署输出中的 SQL 用户名和密码填写表单,然后选择“下一步”。   - 警告 - 使用用户名、密码或访问密钥管理连接时请小心。 不应将这些机密提交到源代码管理中,也不应放置在可能由意外用户访问的不安全位置。 在本地开发期间,通常会连接到不需要存储机密或直接连接到 Azure 的本地数据库。 在生产期间,尽可能使用无机密方法(例如 Microsoft Entra ID) 连接到 Azure SQL 数据库。 
- 选择“完成”。 
- 完成后,选择 关闭。 
- 选择“发布,将应用发布到之前创建的 Azure 应用服务。 - 显示发布按钮的  
- 发布后端服务后,将打开浏览器。 将 - /tables/todoitem?ZUMO-API-VERSION=3.0.0添加到 URL:  
配置示例应用
客户端应用程序需要知道后端的基 URL,以便它可以与后端通信。
如果使用
azd up预配和部署服务,则已为你创建Constants.cs文件,你可以跳过此步骤。
- 展开 - TodoApp.Data项目。
- 右键单击 - TodoApp.Data项目,然后选择 添加>类...。
- 输入 - Constants.cs作为名称,然后选择“添加 。  
- 打开 - Constants.cs.example文件并复制内容(Ctrl-A,后跟 Ctrl-C)。
- 切换到 - Constants.cs,突出显示所有文本(Ctrl-A),然后粘贴示例文件中的内容(Ctrl-V)。
- 将 - https://APPSERVICENAME.azurewebsites.net替换为服务的后端 URL。- namespace TodoApp.Data { public static class Constants { /// <summary> /// The base URI for the Datasync service. /// </summary> public static string ServiceUri = "https://demo-datasync-quickstart.azurewebsites.net"; } }- 可以从 “发布”选项卡获取服务的后端 URL。确保使用 https URL。 
- 保存文件。 (Ctrl-S)。 
生成并运行 Android 应用
- 在解决方案资源管理器中,展开 - xamarin-forms文件夹。
- 右键单击 - TodoApp.Forms.Android项目,然后选择 设置为启动项目。
- 在顶部栏中,选择“任何 CPU 配置和 TodoApp.Forms.Android 目标:   
- 如果改为看到 Android Emulator,则尚未创建 Android 模拟器。 有关详细信息,请参阅 Android 模拟器设置。 若要创建新的 Android 仿真器,请执行以下操作: - 选择 工具>Android>Android Device Manager。
- 选择“+ 新建” 。
- 在左侧选择以下选项:- 名称:quickstart
- 基础设备:像素 5
- 处理器:x86_64
- OS:Android 11.0 - API 30
- Google API:已检查
 
- 名称:
- 选择 创建。
- 如有必要,请接受许可协议。 然后,将下载映像。
- “开始”按钮出现后,按 “开始”。
- 如果系统提示你 Hyper-V 硬件加速,请阅读文档以在继续之前启用硬件加速。 仿真器在未启用硬件加速的情况下速度会很慢。
 - 提示 - 在继续之前启动 Android 仿真器。 可以通过打开 Android 设备管理器并按所选模拟器旁边的 “开始” 来执行此作。 
- 按 F5 生成并运行项目。 
应用启动后,你将看到一个空列表和一个文本框,用于在模拟器中添加项。 您可以:
- 在框中输入一些文本,然后按 Enter 插入新项目。
- 选择要设置或清除已完成标志的项目。
- 按刷新图标从服务重新加载数据。
               
              
            
生成并运行 iOS 应用
注意
必须 按照指南 与 Mac 配对。 在没有配对的 Mac 的情况下编译或运行 iOS 应用程序时,将收到错误。
- 在解决方案资源管理器中,展开 - xamarin-forms文件夹。
- 右键单击 - TodoApp.Forms.iOS项目,然后选择 设置为启动项目。
- 在顶部栏中,选择 iPhone 模拟器 配置和 TodoApp.Forms.iOS 目标:   
- 选择 iPhone 模拟器 
- 按 F5 生成并运行项目。 
应用启动后,你将看到一个空列表和一个文本框,用于在模拟器中添加项。 您可以:
- 在框中输入一些文本,然后按 Enter 插入新项目。
- 选择要设置或清除已完成标志的项目。
- 按刷新图标从服务重新加载数据。
               
              
            
故障 排除
Visual Studio 2022 附带的远程模拟器与 XCode 13.3 不兼容。 将收到以下错误消息:
               
              
            
若要解决此问题,请执行以下操作:
- 禁用远程模拟器(工具/选项/iOS 设置/取消选中 远程模拟器到 Windows)。 取消选中后,模拟器将在 Mac 而不是 Windows 上运行。 然后在 Windows 上使用调试器等时,可以直接在 Mac 上与模拟器进行交互。
- 禁用上述远程模拟器,以便模拟器在 Mac 上运行。 然后使用远程桌面应用从 Windows 连接到 Mac 桌面。 远程桌面选项包括 Devolutions 远程桌面管理器(快速且有可用免费版本),以及 VNC 客户端(较慢且免费)。
- 使用物理设备测试而不是模拟器。 可以获取 免费预配配置文件 来完成身份验证教程。
后续步骤
继续学习本教程,向应用添加身份验证。