利用 Visual Studio 开发 Azure

如果使用云服务来处理许多原本需要以其他方式处理的问题,则应用程序开发可能更容易。 使用 Azure 云中托管的云服务时,可以使用由 Microsoft 管理的可靠且可用性高的云环境来处理许多应用和服务所需的大部分基础结构,以便你可以专注于开发应用程序的独有功能。

本文介绍了 Visual Studio 如何帮助进行 Azure 开发,无论是启动和运行网站、连接到存储、数据库或机密管理等服务,还是使用增加缓存等价值的服务,你都会有所收获。

许多 Visual Studio 订阅都包含 Azure 个人开发/测试额度。 如果你是 Visual Studio 订阅者,则可以使用这些额度来免费试用各种 Azure 服务。 如果你不是订阅者,并且没有 Azure 订阅,则可以创建免费帐户

可在 Azure 中托管 Web 应用,并动态横向扩展来服务更多的并发用户,而是重载有限的基础结构。 在 Azure 中托管让你能够利用 Azure 平台提供的丰富服务生态系统。 可使用丰富的服务(例如应用服务)或者针对 Azure 容器应用(容器化应用)更轻松地管理应用。

对于本地应用,可附加到 Azure 来获取某些特定 Azure 服务的优势,例如 Blob 存储、托管在 Azure 中的数据库、通过 App Insights 进行监视、标识管理等。

Visual Studio 具有许多功能,便于更轻松地开发连接到 Azure 服务的应用程序,或者自行部署到 Azure 并在 Azure 云中托管的应用程序。 Visual Studio 提供了一些机制,便于在初始开发阶段更轻松地连接到服务,并且可轻松地将应用程序发布或部署到 Azure,此外你还可在本地计算机上通过 Visual Studio 调试程序连接到 Azure 应用程序,使云应用程序的调试体验与本地调试一样轻松。

支持的技术和语言

使用 Visual Studio,可以开发在 Azure 云中运行的应用,以及从本地、桌面和移动应用连接到 Azure 服务。 Visual Studio 是 Windows 开发人员将 .NET 和 ASP.NET 应用程序连接到 Azure 服务时功能最全且最完整的环境。 Visual Studio 还支持在其他技术堆栈(如 Node.js 和 Python)中进行开发,而你可使用这些堆栈来创建网站和 Web 应用程序,同时这些网站和 Web 应用程序又可使用 Azure CLI 部署到 Azure。

C++ 开发人员可以使用 C++ 客户端库访问 Azure 存储等 Azure 服务,使用 C 和 C++ 的 IoT 设备开发人员可以将设备和服务连接到 Azure。 请参阅 Visual C++ 中的云和 Web 编程

Visual Studio 中许多早期版本支持的 Azure 云服务用户可以在 Visual Studio 中通过 Azure 云服务(扩展支持)继续使用这些服务。

连接到 Azure 服务

如果要在应用程序中使用 Azure 服务,通常需要对项目进行多项更改(例如包引用、代码更改和配置更改)以及在 Azure 中进行许多更改来指定要连接的服务,或者创建这些服务(如果尚不存在)。 Visual Studio 根据提供的信息,在项目和 Azure 中做出这些更改有助于简化此过程。 Visual Studio 还提供所有更改的列表,以便检查这些更改并充分了解更改的内容。

Visual Studio 连接的服务是可用于将项目(Web 和本地)连接到 Azure 服务的分步向导的名称。 请参阅关于 Visual Studio 连接的服务,详细了解可从 Visual Studio 连接到和管理的 Azure 服务。

在完成连接的服务向导时,可以直接从 Visual Studio IDE 执行所有必需的 Azure 操作。 可以预配 Azure 中的资源、创建资源组、浏览和查看 Azure 资源以及部署应用程序和服务,但不能使用 Azure 门户。 项目连接到 Azure 服务或完成部署后,“连接的服务”选项卡会显示有关资源的信息,并包含指向部署的便捷链接。 请参阅在 Visual Studio 中使用 Azure

将应用程序部署到 Azure 云

使用 Visual Studio,只需单击按钮即可按需将应用程序部署到 Azure。 在开发和测试期间,CI/CD 可能尚未配置,提供这种便利就非常有帮助。 CI/CD(持续集成和持续交付)是一种系统;通过该系统,开发团队对应用程序代码所做的本地更改会自动集成到在 Azure 中运行的已部署应用程序中,而不会中断已部署的服务。 可以使用 Azure PipelinesGitHub Actions 对此进行设置。

你要部署什么?

部署目标 文档
Azure 应用服务 (.NET Core) 部署 ASP.NET Core Web 应用
Azure 应用服务 (.NET Framework) 部署 ASP.NET Web 应用 (.NET Framework)
Azure 容器应用 使用 Visual Studio 部署到 Azure 容器应用
Azure Functions 在 Azure 中使用 Visual Studio 创建你的第一个 C# 函数
Azure 容器注册表 使用 Visual Studio 将 ASP.NET 容器部署到容器注册表

如果需要帮助首次为 GitHub 存储库配置 CI/CD,Visual Studio 可帮助你开始使用 GitHub Action 初学者工作流。 请参阅使用 Visual Studio 创建的 GitHub Actions 工作流将应用程序部署到 Azure了解详细信息。 请参阅持续部署到 Azure 应用服务,详细了解如何设置 CI/CD 以部署到 Azure。

使用 Visual Studio 在 Azure 中调试

可以当应用程序在 Azure 中运行时使用 Visual Studio 调试该应用程序,以便在尽可能接近生产环境中的环境中识别和重现问题。 有关在 Azure 应用服务中托管的 Web 应用,请参阅在 Azure 应用服务上远程调试 ASP.NET Core。 有关 Azure Functions,请参阅使用 Visual Studio 开发 Azure Functions - 远程调试

如果使用虚拟机 (VM) 托管 ASP.NET Core Web 应用,请参阅使用 Visual Studio 中的 Azure VM 在 IIS 上远程调试 ASP.NET Core

使用集成的 Azure 功能

在 Azure 云中运行时,应用可以受益于 Azure 的高可用性标准、纵向扩展横向扩展功能、监视负载测试和其他优势。 Visual Studio 集成了远程调试和查看日志等 Azure 功能。

借助本地仿真支持节省成本

在开发阶段,可以使用 Azure 服务的本地模拟器进行试验和开发以取得方便和节省成本,并稍后部署到 Azure。 请参阅本地和连接的配置了解详细信息。

Docker 支持

还可以使用 Docker 来容器化应用和服务。 使用 Docker 容器可为正在运行的应用程序提供一致且可重现的操作系统和环境。 Visual Studio 可在调试容器时提供同样熟悉的体验,有助于在本地监视和管理容器的生命周期,并且可以将容器部署到容器注册表

容器化应用后,可以使用 Azure App 服务Azure 容器应用等服务轻松地将容器部署到 Azure。

将应用连接到 Azure 存储和数据库服务

Azure 存储是一种可用性高、可大规模缩放、持久且安全的存储,适用于云中的各种数据对象,使用它可以更轻松地管理文件和数据。 可使用 Azure 存储来存储所有内容,并使它可用于 Web 站点、桌面应用或移动应用。

Azure 还提供许多适合不同需求的不同数据服务,例如用于轻松地从本地 SQL Server 过渡的云托管的 SQL 数据库,以及可纵向扩展到最大要求的大数据解决方案,等等。

连接到 Azure 存储

  • 存储和检索 Blob
  • 管理文件
  • 使用队列实现消息传送
  • 管理结构化 NoSQL 数据

请参阅 Azure 存储以了解详细信息,并了解如何使用 Visual Studio 连接 Azure 存储

连接到数据库

连接到 Azure SQL 数据库和其他 Azure 数据库产品/服务(如 Azure Cosmos DB)就像连接到本地 SQL Server 一样简单。 有关详细信息,请参阅数据库和数据提供程序

连接到 Web 和数据服务

数据提供商通过标准协议(如,开放数据协议 (OData) 和 gRPC)来提供服务。 可以连接到这些服务,或者如果自己创建 Web 服务,则可以选择 ASP.NET Web API、Azure Functions 或 Azure API 管理,并添加这些连接。 有关受支持的服务和协议的列表以及如何连接到它们,请参阅将应用连接到 gRPC、OpenAPI 和 WCF 终结点

ASP.NET Core Web 应用程序方案

ASP.NET Core 提供了全面的解决方案,可满足简单 Web 站点和复杂 Web 应用程序的需求。 Azure 服务可以帮助满足许多需求,并解决 Web 站点和 Web 应用程序开发中出现的许多难题。 ASP.NET Core Web 应用程序经常使用客户端 JavaScript。

Web 应用程序示例体系结构的示意图。

连接到 Azure Cache for Redis

Azure Cache for Redis 为 Azure 服务、Web 站点和 Web 应用程序提供内存中数据存储。 可以使用 Azure Cache for Redis 作为分布式数据或内容缓存、会话存储、消息代理等。 支持的场景包括:

  • 缓存来自 API 的数据(从而减少 API 调用)
  • 缓存输出(这可以减少 CPU 使用率)
  • 缓存会话状态

参阅什么是 Azure Cache for Redis?了解详细信息,或者通过学习使用 Visual Studio 连接的服务连接到 Azure Cache for Redis 开始入门。

对用户进行身份验证

大多数 Web 站点都需要某种用户管理和身份验证机制,无论该机制是特定于站点的,还是由用户现有帐户的标识提供者提供的。 Azure 应用服务支持内置用户身份验证。 参阅在 Azure 应用服务和 Azure Functions 中进行身份验证和授权了解详细信息,并通过学习向 Azure 应用服务上运行的 Web 应用添加应用身份验证开始入门。 Microsoft Entra ID(以前称为 Azure Active Directory)是一项功能齐全的基于云的标识管理服务。 有关详细信息,请查看什么是 Microsoft Entra

支持的身份验证提供程序包括:

  • 社交帐户:Facebook、Google、Microsoft 帐户等
  • Microsoft Entra 帐户(来自单个租户)
  • Microsoft Entra 帐户(来自多个不同的租户)

参阅在 Visual Studio 中使用连接的服务连接到 Microsoft Entra ID,了解如何在应用中开始使用这些服务。

应用程序配置

部署到 Azure 的 ASP.NET Web 应用可能需要针对所有环境(测试、用户验收测试 (UAT)、预生产和生产)进行配置。 可以通过 Azure 应用程序配置管理此配置。 参阅使用 Visual Studio 连接的服务连接到 Azure 应用程序配置,了解如何将应用连接到 Azure 应用程序配置。

机密管理

安全存储密码和其他机密(例如数据库的访问密钥和 API 提供程序的令牌)是 Azure 密钥库提供的安全解决方案所针对的常见问题。 可以使用 Azure 密钥库存储 Azure 中运行的应用的机密,还可以在开发期间使用 Azure 中的密钥库,或者使用本地存储 (secrets.json) 进行本地执行、测试和调试。 开始为设计和开发过程,此过程不依赖于云,但随后会无中断地过渡到后续的测试和生产阶段。 参阅 Azure 密钥库了解详细信息,并通过学习使用 Visual Studio 连接的服务将密钥库连接到 Web 应用程序开始入门。

使用实体框架进行数据迁移

Visual Studio 可帮助解决在本地开发应用和更改数据库,然后在 Azure 中与生产数据库同步的问题。

如果是使用 Azure SQL 数据库和实体框架的 ASP.NET Web 应用,则对数据库进行本地更改时,可以使用实体框架迁移以结构化方式将这些架构更改和数据更改推送到 Azure。 请参阅实体框架迁移

辅助角色服务

ASP.NET Web 应用可以从运行辅助角色服务中受益。 在现有应用服务实例上运行辅助角色服务无需额外的成本,并且可以直接替代可能在本地或虚拟机中运行的 Windows 服务。 请参阅.NET 中的辅助角色服务

其他 Web 应用程序技术

使用 JavaScript 和 Python 的开发人员可以使用 Visual Studio 或 Visual Studio Code 进行 Azure 开发。 在任一开发环境中,安装 Azure CLI 并按照 Azure CLI 文档中的教程进行操作,然后在每个 Azure 服务的对应文档中查找有助于手动添加连接代码的快速入门说明和教程。

Node.js 为使用服务器端 JavaScript 进行 Web 应用程序开发提供了另一个选项。 参阅什么是面向 JavaScript 开发人员的 Azure了解详细信息。通过学习在 Azure 中部署 Node.js Web 应用开始入门。

Python 是一种越来越热门的语言,该语言使用 Web 框架 Django 和 Flask 时,是开发 Web 应用程序的另一种方式。 请参阅 Azure 上的 Python 入门

本部分可帮助你了解哪些 Azure 服务可能很有用。 首先完成这些快速入门,这些快速入门使用 Visual Studio 作为开发工具演示了如何开始使用每个服务。 这些链接指向每个 Azure 服务的文档,首先是面向 Visual Studio 用户的页面(如果可用)。

如果不确定 Azure 服务非常适合你的需求,请尝试 Azure 应用服务

触发器是设置为在发生某些条件时运行代码的事件。 可根据计时器计划这些触发器,也可将其设置为响应队列中的消息、其他 Azure 服务中的事件或 Webhook。 如果需要触发器,请尝试使用 Azure Functions

如果需要简单的容器,请尝试使用 Azure 容器应用

如果需要高级容器,请尝试使用 Azure Kubernetes 服务

若要在 API 的基础上添加控件,请尝试使用 Azure API Management

如果要支持多个长时间的客户端连接,请尝试使用 Azure SignalR 服务

如果要开发复杂的分散式应用,并且需要在许多服务之间协调,请试试 .NET Aspire

后续步骤

参阅 Azure 服务,详细了解你可能感兴趣的 Azure 服务。

Azure 体系结构中心获取 Azure 开发的体系结构建议。

若要使用旧版 Azure 云服务,请参阅 Azure 云服务 - 外延支持