快速上手Blazor WebAssembly技术

本文旨在为开发者提供一个快速上手指南,帮助他们迅速掌握微软的客户端BlazorWebAssembly(WASM) 技术。本文将涵盖本地调试客户端和服务器代码、部署到本地IIS和远程Azure服务器、演示依赖注入、共享C#类、CORS、日志记录、AD安全性、本地化、SignalR、Entity Framework和API(CRUD)调用等相关内容。

1. 目的

本文的目的是为开发者提供一个路线图,以便在开发客户端Blazor(WASM) 项目时能够快速上手。

2. 范围

本文的范围是传达设计和部署现代软件环境中客户端Blazor(WASM) 应用程序所需的架构和技术。

3. 前提条件

要开始本教程,需要以下条件:

  • Visual Studio2022(社区版)
  • 最新的.NET SDK(撰写本文时为SDK 6)
  • Postman(Win 64位)
  • 免费的Azure账户(用于远程调试)

4. 演示目标

在本演示中,将:

  • 在Visual Studio中创建一个Http触发器AzureFunction项目
  • 该项目将查询(Azure)数据库并返回结果列表
  • 本地调试
  • 部署到Azure
  • 使用Postman测试Azure
  • 使用Visual Studio调试Azure

5. Azure Function解释

Azure Function是一个单一的端点,执行单一任务,遵循SOLID原则中的“S”。Http触发器更多用于B2B(来自其他应用程序的webhooks)。一旦完成任务,它将结果传递给下一个Azure Function,直到整个过程完成,最终结果返回给调用者。

可以使用Azure Function设计微服务架构,通过一组函数,每个函数执行单一任务,但共同执行一个过程。这使能够只扩展微服务的一部分。

Azure Functions基于触发器,意味着必须发生一个事件,Azure Function才会执行(例如,数据库条目、API调用或文件插入到Azure Blob存储)。Visual Studio有默认的Azure Function触发器,但它也有一个后备的空触发器,可以自定义以满足需求。因此,可以说Azure Functions遵循事件/可观察设计模式。

AzureFunctions遵循无服务器架构模式,但因为它们是API,所以遵循REST架构风格。但因为它们是无服务器的,所以可以按需运行,而不需要托管在服务器上和管理基础设施。如果已经有Azure计划,它们是免费的。在本文示例的Azure Function中,基本上使用了微服务数据库每服务模式,服务处理它自己的数据库(偶然😊)。

6. 创建Azure Function项目

Visual Studio中,创建一个新项目(文件→新建→项目):

  • 选择可用的项目模板中的Azure Functions
  • 输入项目名称
  • 选择Http触发器应用程序模板,保持存储帐户和授权级别默认值

这将创建默认的Azure Function项目(将默认函数类重命名为LatestAlbums.cs):

关于认证级别(当本地调试时不需要API密钥)。这个API密钥附加在URL上或其主体中:

  • 函数:需要特定函数的API密钥。
  • 这是当级别未明确设置时的默认值。
  • 匿名:任何人都可以调用该函数
  • 管理员:需要主密钥来运行这个函数

https://myhttptriggerfnx.azurewebsites.net/api/FuncMusicStore?code=2h8UpMZhExR32wBFZIWLmI7mpM67mAlpPIZIx0CzKHmuAzFued3ZZg==

7. Azure Function代码解释

默认的HTTP动词是Get和Post(红框),可以根据需要删除或替换它们。如果是Get请求,可以像平常一样从URL获取数据(蓝框),或者如果在请求主体中发布数据,可以使用StreamReader(橙框)检索。在粉色框中,正在对SQL Server数据库进行dbContext调用,并将数据以json格式返回给客户端。

8. 部署到Azure

注意:需要有一个(免费的)Azure账户(订阅)来完成本节。

  • 右键单击Azure Function,选择发布,点击Azure,然后点击下一步:
  • 选择适合订阅的Azure服务:

如果Azure订阅详细信息没有出现 - 检查是否已登录Azure。

如果函数应用部分为空,需要先创建一个Azure Function资源,然后刷新函数应用部分。

然后将在Visual Studio中看到发布屏幕,确保调试为配置设置,然后点击发布(这将部署将在调试中使用的pdb文件)。

将在构建窗口中看到部署状态。

如果导航到Azure中的函数资源,应该看到新部署的Azure Function:

要找出Azure function的API密钥(它将需要从客户端安全地调用API)。点击函数,几秒钟后,获取函数URL将变得可用,点击它获取将需要调用函数的完整URL。

https://func-version1-demo.azurewebsites.net/api/LatestAlbums?code=MLlNpmvdOodDkE6xZ5P9o6t6H1OA8onLMKYB0ZvggUfWAzFuVyJJaw==

9. 使用Postman本地调试

在调试模式下运行Azure Function项目,将断点放在代码上。然后在Postman中粘贴localhost URL,并带有标题参数,点击发送。

断点将像平常一样被击中:

返回JSON数据列表:

也可以将标题参数放在URL的主体中,它将被Azure Function拾取。

10. 使用Postman测试Azure

回到发布屏幕,点击托管eclipse,选择附加调试器,因为已经以调试模式部署了解决方案。

这次在Postman中输入URL和从Azure获得的API代码,将参数放入主体。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485