连接到 Azure 服务、gRPC、OpenAPI 等
开发人员正在构建具有越来越多的服务的应用,但服务技术的发展速度同样快。
借助 Visual Studio Connected Services,可以体验现代服务使用,每个服务皆能定制其使用体验,并提示你所需的相关问题以便快速入门。
连接服务包括 Visual Studio 中的工具集合,可帮助你将应用程序连接到以下内容:
- Azure 服务
- OpenAPI 终结点
- gRPC(远程过程调用)终结点
- Windows Communication Foundation (WCF) 终结点
- 数据库和数据提供程序
右键单击 解决方案资源管理器 中的 连接服务 节点,然后选择 管理连接服务。
首先,右键单击项目节点,然后选择“添加”>“连接的服务”。 还可以右键单击解决方案资源管理器 中的 连接服务 节点,然后选择要添加的特定服务。
支持的项目类型因服务类型而异。 你将在列出的选项中看到适用于项目类型的选项。
很多 Visual Studio 订阅包括 Azure 个人开发/测试信用额度。 如果你是 Visual Studio 订阅者,可以使用这些额度来试用各种 Azure 服务,不收费。 如果你不是订阅者,并且没有 Azure 订阅,则可以 创建免费帐户。
将应用连接到 Azure 服务
使用连接服务将应用程序连接到实时 Azure 服务模拟器和其他 Azure 服务的本地替代项。 Visual Studio 目前支持以下各项:
名字 | 描述 |
---|---|
Azure 应用配置 | 访问在 Azure 中集中管理的键值设置和功能标志。 |
Azure 应用见解 | 为实时 Web 应用提供可扩展的应用程序性能管理和监视。 |
Azure 应用服务 | 为实时 Web 应用提供全方位、可缩放的托管服务。 |
Azure Functions | 为 Web API 等提供可缩放的按需计算服务。 |
Azure 存储 | 支持 Blob、表、队列和磁盘的可缩放的云存储空间。 |
Azure SignalR 服务 | 通过 HTTP 的实时 Web 功能。 |
Azure Key Vault(Azure 密钥保管库) | 为 Azure 应用程序使用的加密密钥和其他机密提供安全的云存储。 |
Azure SQL 数据库 | 云托管的 SQL 数据库。 |
Azure Cache for Redis | 基于 Redis 软件的内存中数据存储。 |
Azure Cosmos DB | 用于新式应用开发的完全托管 NoSQL 数据库。 |
Microsoft 标识平台 | 使用Microsoft标识和社交帐户进行身份验证。 |
备注
使用发布可将应用程序部署到 Azure 托管服务,例如 Azure VM、Azure 应用服务、Azure Functions 和 Azure 容器注册表
数据库和数据提供程序
Visual Studio 提供了连接到本地数据库、本地模拟的数据提供程序版本以及 Azure 数据库服务的选项。
名字 | 描述 |
---|---|
容器上的 Azure Cosmos DB 模拟器 | 在本地容器中运行的 Azure Cosmos DB 模拟器。 |
容器上的 MongoDB | MongoDB 文档数据库提供较高的可靠性和轻松的可伸缩性。 此选项使它在本地容器中可用。 |
PostgreSQL 在容器 上 | PostgreSQL 是一个对象关系数据库系统,可提供可靠性和数据完整性。 此选项使它在本地容器中可用。 |
SQLite | SQLite 是一个进程内库,它提供无配置的独立事务 SQL Server 数据库引擎。 |
SQL Server 数据库 | 本地 SQL Server 数据库。 |
支持 Azure 模拟器和本地替代方案
通过简化从本地模拟服务到云中运行的服务的转换,Visual Studio 可以更轻松地在本地开发 Azure 应用程序。 可以使用连接服务将应用程序连接到本地模拟器,其中一些模拟器在本地容器中运行,以及 Azure 服务的其他本地替代项。 Visual Studio 目前支持以下各项:
Visual Studio 会生成任何必要的客户端或服务器代码来促进通信。
名字 | 描述 |
---|---|
Azure Cosmos DB 模拟器 在容器 上 | 在本地容器中运行的 Azure Cosmos DB 模拟器。 |
Azure 存储模拟器 | Azurite 是在本地计算机上运行的 Azure 存储模拟器。 |
Application Insights SDK | Application Insights 服务的本地模式。 |
容器上的 RabbitMQ | RabbitMQ 是一个开源多协议消息中转站。 此选项使它在本地容器中可用。 |
容器上的 Azure Cache for Redis | 托管在本地容器中的 Azure Redis 缓存。 |
Secrets.json | Key Vault 的本地替代项。 |
SQL Server Express LocalDB | Azure SQL 数据库的本地替代项。 |
将应用连接到 gRPC、OpenAPI 和 WCF 终结点
使用连接服务将应用程序连接到以下任何服务:
名字 | ASP.NET 链接 | 描述 |
---|---|---|
OpenAPI 终结点 | ASP.NET Core API 应用中的 OpenAPI 支持 | 一种标准格式,用于描述计算机可读和人类可读形式的服务的功能。 |
gRPC 终结点 | .NET 上的 gRPC 服务简介 | 开源实时过程调用服务。 |
WCF 终结点 | N/A | 一种 .NET Framework 解决方案,支持使用分布式服务网络进行编程。 |
器皿
连接服务可帮助运行在容器中本地模拟 Azure 服务的应用程序依赖项。 例如,可以在本地容器中运行名为 Azurite 的 Azure 存储模拟器。 下一部分介绍在容器中使用这些模拟服务时,Visual Studio 提供哪些支持,用于将应用从开发模式转换为在 Azure 中运行的实际服务。
本地和连接的配置
在开发期间,通常使用本地模拟器、本地数据库或在本地容器中运行的模拟服务。 使用 Visual Studio 中的发布过程部署到云时,无论是 Azure、Docker 中心还是另一个受支持的远程环境,Visual Studio 都可以指导你完成连接到实际服务和数据库的转换。 右键单击 解决方案资源管理器 中的项目节点并选择 发布时,将引导你将应用部署到云,但之后,以前配置为本地使用的服务依赖项现在会显示在连接服务 UI 中,带有黄色警告图标和 配置 链接:
如果单击这些链接,Visual Studio 将显示一些屏幕,这些屏幕会要求将连接信息发送到云中运行的“真实”服务,云应用将使用该服务而不是本地服务。 例如,如果最初将应用配置为使用本地运行的 SQL LocalDB 实例运行,则会提供连接字符串名称和引用 LocalDB 数据库的初始值。 首次将应用部署到云环境后,可以使用 配置 链接来指定要在云中使用的连接字符串。 对于 Azure 部署方案,Visual Studio 还提供使用 Azure Key Vault 安全地存储连接字符串和其他机密的选项。
工作原理
Visual Studio 在“解决方案资源管理器”下创建两个新文件,称为“serviceDependencies.json”和“serviceDependencies.local.json”。 这两个文件都可安全地签入,因为它们不包含任何机密。
Visual Studio 还会创建一个名为 serviceDependencies.local.json.user 的文件,该文件在解决方案资源管理器中默认不可见。 此文件包含可被视为机密(例如 Azure 中的资源 ID)的信息,不建议签入。