【Blazor-01】-什么是Blazor?

现如今如何开发Web应用程序

img

  • 对于服务端开发,我们使用C#、Java、PHP等编程语言,这些都是服务端编程语言。
  • 对于客户端开发,使用 Angular、React、Vue 等JavaScript框架,这些JavaScript框架也是最近几年开始主导客户端开发。

作为开发人员,为了在业务中持续保持竞争力,我们不可避免的要同时学习服务端编程语言和客户端编程语言。但问题是,我们为什么要学习和使用两套不同的编程语言和框架呢?

使用C#同时进行服务端和客户端开发

我们为什么要使用 blazor

可以使用C#同时进行服务端和客户端开发吗?答案是可以的,借助Blazor,我们可以使用C#而不是JavaScript构建交互式的Web UI。C#代码可以在服务器和客户端浏览器上执行。这意味着.Net开发人员可以重用他们的C#技能,而不是学习新的JavaScript框架而带来的巨大的学习成本。

浏览器如何执行C#代码

众所周知,浏览器只能执行JavaScript代码。那么如何在客户端浏览器执行C#代码?答案是WebAssembly

blazor 和 webassembly

Blazor 可以使用 WebAssembly 在浏览器中直接运行 C# 代码。它与 Angular、React、Vue 等 JavaScript 框架在同一个安全沙箱中运行。

事实上,不仅仅是 C#,我们可以使用 WebAssembly 在浏览器中运行任何类型的代码。

WebAssembly 基于开放的 Web 标准。所以它是所有现代浏览器的原生部分,包括移动浏览器。这意味着要是Blazor应用程序正常工作,不需要安装任何插件。

Blazor托管模型

Blazor 提供 2 种托管模型。

  • Blazor WebAssembly
  • Blazor Server

image-20220411220906408

Blazor WebAssembly

客户端托管模型:应用程序直接在 WebAssembly 的浏览器中运行。

因此,应用程序所需的一切,即编译后的应用程序代码本身、它的依赖项和 .NET 运行时都下载到浏览器。

使用 Blazor WebAssembly App 模板来创建具有客户端托管模型的 Blazor 应用程序。

Blazor server

服务器托管模型:应用程序在 ASP.NET Core 应用程序内的服务器上执行。

在客户端和服务器之间,建立了 SignalR 连接。

例如,当客户端上发生事件(例如单击按钮)时,有关事件的信息将通过 SignalR 连接发送到服务器。服务器处理事件并为生成的 HTML 计算差异。整个 HTML 不会再次发送回客户端,它只是通过已建立的 SignalR 连接发送给客户端的差异。然后浏览器更新 UI。Blazor 采用单页面应用程序体系结构。

使用 Blazor Server应用程序模板来创建具有服务器托管模型的 Blazor 应用程序

Blazor开发环境

安装.NET6或更高版本

验证本地安装的.NET SDK

1
dotnet --list-sdks

可以使用Visual Studio、Visual Studio Code 或 .NET Core CLI 构建 Blazor 应用程序。

下载Visual Studio

先决条件

image-20220411220940383