Blazor 将如何改变 Web 开发

2025-05-27

Blazor 将如何改变 Web 开发

几周前,我写了一篇关于如何在不接触 Windows 设备的情况下构建和部署 Blazor 应用的文章,后来我意识到或许应该退一步解释一下 Blazor 是什么,以及为什么人们会使用它。对于大多数前端开发人士来说,它仍然比较新,但它非常棒,你应该了解一下。

那么它到底是什么?

Blazor 是 Microsoft 的一个框架,您可以使用它通过 C# 开发交互式客户端 Web UI。

用他们自己的话说:

Blazor 允许您使用 C# 而非 JavaScript 构建交互式 Web UI。Blazor 应用由使用 C#、HTML 和 CSS 实现的可重用 Web UI 组件组成。客户端和服务器代码均使用 C# 编写,方便您共享代码和库。

很酷吧?你可以在这里下载并开始使用。 

旧方法

还记得开发 Web 应用程序的旧方法吗? 

Blazor 是什么

长期以来,我们使用 ASP.NET、PHP 等构建仅在服务器上运行的应用程序,它们生成一个 HTML 文件推送到浏览器。   

我们一直以来都使用 JavaScript 和 AJAX 进行一些交互,但多年来,大多数业务逻辑都是在服务器端处理的,服务器会生成 HTML 页面进行交互。多年来,浏览器只是一个被美化过的文档查看器。它确实能用,但我们知道可以做得更好。

我们都知道这种模式有一些缺点:

  • 服务器需要配置软件来运行 Web 应用程序。例如 ASP.NET、PHP 等。服务器上必须存在后端处理器或运行时。 
  • 大部分处理能力都在服务器上。 
  • 页面加载很烦人而且很慢。 

因此我们找到了一个新的答案。 

我们现在怎么做

随着单页应用程序的兴起,我们有了一种新的模式,包括 Angular、React 和 Vue 等框架:

Blazor 是什么

现在,我们正在用 JavaScript 构建可在浏览器上运行的完整应用程序。这将业务逻辑拆分开来,一部分在浏览器上运行,一部分在服务器上运行。JavaScript 应用程序在客户端运行,并使用消息传递与“服务器”通信。您可以轻松地用云端服务或应用程序替换“服务器”,但模型仍然相同。

这比我们之前的操作方式有了显著的改进,之前的操作方式基本上就是操作 HTML 并来回传递。现在,我们在浏览器中运行的是真正的应用程序,页面加载几乎已经成为过去式。

但 Blazor 进一步改进了该模式。使用它进行开发主要有两种方式。

选项 1:Web Assembly 方法

当您选择构建 Blazor Web Assembly 应用程序时,它看起来像这样:

Blazor 是什么

Blazor 使用Web Assembly,该语言目前已在所有主流浏览器中支持。Web Assembly 是一种二进制指令格式,可在浏览器中运行虚拟环境。

那么这到底意味着什么呢?

现在,浏览器充当应用程序的宿主。Blazor Web Assembly 应用程序中构建的文件将被编译并发送到浏览器。然后,浏览器会在浏览器自身的执行沙箱中运行 JavaScript、HTML 和 C#。它甚至会运行某个版本的 .NET 运行时。这意味着您可以在浏览器中执行对 .NET 的调用,它是一个功能齐全的浏览器应用程序。它甚至可以离线运行。

为什么这很酷:

  • 您可以在任何静态文件服务器(Nginx、ISS、Apache、S3、Heroku 等)上运行它
  • 它以字节码的形式运行 JS,并以接近本机的速度运行 C#。
  • 您可以使用 C# 开发丰富的前端应用程序。
  • Web Assembly 随所有主流浏览器提供
  • 重用 .NET 组件
  • 使用 Microsoft 工具和调试

这对于游戏等低延迟应用来说非常棒。如果不需要,无需与服务器通信。您可以下载应用程序并在浏览器中离线运行。这对于游戏和其他需要在浏览器中快速运行的应用来说非常棒。

一些缺点:

  • 需要下载.NET Framework 和其他运行时文件(一次)
  • 您受到浏览器功能的限制
  • 所有机密信息(凭证、API 密钥等)均已下载到本地
  • 并非所有 .NET Framework 组件都兼容

所以这可能并不适合所有应用程序。好消息是,我们可以使用另一种 Blazor 模式。

选项 2:Blazor 服务器

如果您决定构建 Blazor Server 应用程序,它看起来像这样:

Blazor 是什么

这更接近我们今天使用的模型。你构建一个应用程序,并拥有一个由 .NET Core 驱动的服务器,然后将 HTML 和 JavaScript 发送到浏览器作为客户端。这是一种打造极速瘦客户端的好方法。 

为什么这很酷:

  • 您可以获得 .NET Framework 的全部功能
  • 一切都在服务器上,只需少量下载
  • 不需要 Web Assembly
  • 你的秘密是安全的

一些缺点:  

  • 没有离线应用程序
  • 需要运行 .NET Core 的服务器或服务
  • 网络流量大时延迟可能较高

那么我该如何选择使用哪一个呢? 

如果您想要功能强大、可离线运行并由静态服务器提供服务的客户端应用程序,请选择Blazor Web Assembly。如果您想要充分利用 .NET 的功能并希望使用瘦客户端运行模型,请选择Blazor Server

这有什么大不了的?

Blazor 模式为开发带来了巨大的机遇。无论您是想构建一个包含多个瘦客户端的强大服务,还是想构建一个在浏览器中运行的酷炫互动游戏,Blazor 都能发挥丰富的互动应用潜力。

Web Assembly 是未来的发展方向。它能够在浏览器中实现接近原生的速度,并使用通用接口。您可以在 PC、手机和平板电脑上找到 Web Assembly。如果您的团队中有一些不从事前端编程的 C# 开发人员,现在他们可以使用自己喜欢的语言来开发前端。

这真是太棒了,我很高兴看到 Blazor 的进步。

我可以在哪儿学习它?

您可以从Microsoft 的 Blazor 网站了解更多信息

我最近写了一篇关于如何在不接触 Windows 机器的情况下设置和部署 Blazor 应用程序的教程

如果您想深入了解 Blazor,Pluralsight 有一些现代课程可以帮助您快速入门:

那就试试吧!让我知道你对 Blazor 的看法,并在评论中分享你的使用体验!

文章来源:https://dev.to/pluralsight/how-blazor-is-going-to-change-web-development-14n4
PREV
我如何让我的网站在 1 秒内加载
NEXT
CSS 布局:使用 CSS 制作的流行布局和图案的集合