写点什么

对打 Angular,Blazor 赢在哪里?

  • 2022-05-17
  • 本文字数:3028 字

    阅读完需:约 10 分钟

对打 Angular,Blazor 赢在哪里?

Blazor 是一个 Microsoff ASP.NET Core 框架,用它无需任何附加组件或插件即可在浏览器中运行.NET 应用程序。相比之下,Angular 是一种基于组件的流行 JavaScript 框架,用于构建可扩展的 Web 应用程序。


本文将深入探讨 Blazor 和 Angular 之间的异同,以帮助大家为自己的下一个项目选择最佳框架。

Blazor 是什么?


Blazor 是微软新出的 ASP.NET Core Web 框架,允许开发人员在 Web 应用程序中使用 C#代码。Blazor 应用基于现有的 Web 技术(例如 HTML 和 CSS)构建,但该框架允许开发人员使用 C#和 Razor(一种流行的模板标记语法)而不是 JavaScript 语言。Blazor 这个名称是 Browser 和 Razor 的组合。


使用 Blazor,开发人员能够为在.NET 中开发的,基于 WebAssembly 的客户端应用程序创建交互式和可复用的 Web UI。此外,它让开发人员能够共享代码和库,因为客户端和服务端代码都是用 C#编写的,从而为开发人员提供了一个平台,可以使用.NET 端到端开发充满活力的现代单页应用程序(SPA)。


Blazor 的最大卖点是它使用最新的 Web 标准,并且不需要额外的插件或附加组件即可在两个单独的部署模型(客户端 WebAssembly 和服务端 ASP.NET Core)中运行。


Blazor 在 GitHub 上已经积累了超过 9K Stars,非常适合 Web 应用开发用途。但要完全理解 Blazor,我们必须深入了解它的起源。Blazor 提供了两种开发选项,服务器和 WebAssembly。除此之外,Blazor 中还有另外三个可用的开发选项:


  • Blazor PWA:开发渐进式 Web 应用。

  • Blazor Hybrid:开发混合应用程序。

  • Blazor Native:为移动平台创建原生应用程序。

Blazor 中的功能


  • 使用 C#创建 Web UI。

  • 支持渐进式 Web 应用开发。

  • 创建可复用的 C#组件。

  • 完全支持服务端调试。

  • 支持服务端渲染,用于更快的 WebSocket 连接。


下面我们讨论一下 Blazor 的一些优缺点。

Blazor 的优势


  • Blazor 共享服务端代码和客户端代码:Blazor 允许开发人员在前端和后端之间复用代码。

  • 依赖注入:依赖注入是一个可用的对象,可以在 Blazor 中充当一个服务。Blazor 在其应用程序中使用依赖注入来实现控制反转,它允许为对象提供依赖。在 Blazor 中,依赖注入可以分为多个类:注入器、客户端和服务。Blazor 还有不同的注入器,例如构造器、属性和方法。

  • Visual Studio Code:我们可以使用 Visual Studio Code 开发 Blazor 应用,因为它们都是微软产品。当你在 Blazor 框架中开发应用程序时,VSCode 将帮助你轻松利用其各种功能。

  • 与 JavaScript 的互操作性:Blazor 使用 Blazor WebAssembly 中的互操作功能来处理 DOM 操作。此外,这个 JavaScript 功能可以在 Blazor WebAssembly 中使用浏览器 API 调用。因此,Blazor 应用可以将.NET 方法与 JavaScript 函数结合使用。要了解更多信息,请参阅这篇文章:在 Blazor 中使用 JavaScript 互操作的优缺点(地址:https://www.syncfusion.com/blogs/post/pros-and-cons-of-using-javascript-interop-in-blazor.aspx)。

Blazor 的缺点


Blazor 服务器的缺点:


  • 无离线支持:Blazor Server 必须有活动的网络连接。如果连接失败,应用程序将停止工作,原因是整个项目托管在服务端,需要连接到互联网。

  • 使用 ASP.NET Core:Blazor 始终需要 ASP.NETCore 服务器才能运行。因此,如果你使用 Blazor 开发任何应用,你都应该先安装 ASP.NETCore。


Blazor WebAssembly 的缺点:


  • 应用程序体积:Blazor 执行时间取决于应用的体积。因此,基于 Blazor WebAssembly 构建的较重应用可能会影响性能。

  • 受限于浏览器:浏览器的功能在 Blazor 中受到限制。因此,只要浏览器可以处理 Blazor,应该就不会有什么问题。然而,并不是所有的浏览器都支持 WebAssembly,所以如果你碰巧在使用 Internet Explorer,可能就会遇到麻烦。

Angular 是什么?


Angular 是一个基于 TypeScript 的前端框架。它被评为世界上最受欢迎的开源 Web 框架之一。它可以帮助开发人员创建交互式用户界面、单页 Web 应用、高级 Web 应用等。它的前身是使用 JavaScript 的 AngularJS。但是随着技术的发展,TypeScript 已经在 Angular 中取代了 JavaScript。


让我们看看使用 Angular 的一些优势。

Angular 的优点


  • 支持:与 Blazor 相比,使用 Angular 的社区规模非常大。因此对于 Angular 来说,我们在应用开发过程中遇到问题时,找到解决方案的机会很高。

  • 使用 TypeScript:TypeScript 有很多比 JavaScript 更好的属性。例如,干净、可理解和可预测的代码在 Angular 上表现更好。

  • 可复用性:Angular 也像 Blazor 一样支持可复用性,这对开发人员来说很有用。

  • MVVM:Angular 是一个开源的 MVVM 框架,它将程序逻辑与用户界面控件分开。用户可以使用模型-视图-视图模型(也称为模型-视图-绑定器)来保持代码结构清晰、项目各自分离。他们可以快速轻松地更新、编辑和修复代码。视图负责托管可视项目并接收来自模型的输入。ViewModel 连接视图和模型。最后,模型包括了程序的逻辑。

Angular 的缺点


  • 难学:即使对于经验丰富的工程师来说,Angular 也是一个难以掌握、问题多多的框架。Angular 的难度来自于陡峭的学习曲线和需要深度知识才能理解的全套文档。此外,Angular 是一个固执的框架,这意味着它有自己的做事方法,开发人员别无选择,只能遵循它的风格。然而,一旦你掌握了 Angular,它就会成为一个非常有益的工具。

  • 搜索引擎优化:默认情况下,Angular 对搜索引擎优化并不友好。除非网站建立在服务端,否则搜索引擎爬虫很难对其进行索引。但网站应该没有障碍地在 SERP 中被索引和发现才对。

  • 体积较大:Angular 项目包的大小通常比其他框架的更大,这使得 Angular 应用运行缓慢。

Blazor 与 Angular 对比


我们来直接比较 Blazor 和 Angular。


Angular 和 Blazor 都是开源 Web 框架。主要区别在于 Angular 使用 TypeScript,而 Blazor 使用 C#。但两者之间存在一些关键差异:


  • Angular 已经存在了一段时间,但 Blazor 仍处于早期阶段。

  • 每个客户端都必须有一个活动连接,并且 Blazor 将每个客户端的组件状态保存在服务器上。

  • Blazor 现在提供了 scoped 组件样式和 CSS 隔离。在 Angular 中,与组件样式和 CSS 隔离相关的工具链已经非常成熟了。

  • Angular 提供了对 PWA 的支持,但服务端 Blazor 不能用作 PWA。


下表详细列出了 Angular 与 Blazor 的对比细节。



编程语言、发展历史和流行度是两者之间最显著的区别。因为世界各地的大公司都在使用 Angular,所以找到一份 Angular 开发人员的工作也容易得多。此外,Angular 是一个优秀的企业解决方案,它主要用于此类需求。


你应该根据你的目标来选择框架。如果你想确保自己选择的框架有一个庞大的社区,可以在需要时为你提供帮助,请选择 Angular。PWA 得到了 Angular 的强力支持,但 Blazor 的服务端尚未赶上。另一方面,Blazor 更适合熟悉 C#的开发人员,而对于经验丰富的 TypeScript 开发人员来说,上手 Blazor 会有些麻烦。如果你正在寻找一个完善的产品,Angular 是正确的选择。


在选择 Blazor 或 Angular 时,你必须考虑以下几点:

何时使用 Blazor:


  • 如果你是想要更快构建应用的 C#开发人员。

  • 当项目需要更快的周转时间时。

何时使用 Angular:


  • 如果你愿意在 Angular 上投入大量的学习努力,以从一个久经考验的框架中获益。

  • 如果你是一个顽固的 JavaScript 开发人员,永远不会选择使用.NET 进行 Web 开发。

  • 如果你需要开发具有高灵活度的最小设计应用。

结论


在本文中,我全面概述了 Blazor 和 Angular 各自的功能和用法。这两个框架都令人印象深刻,但每个框架都有其优点和局限性。最终,你应根据项目要求在 Blazor 和 Angular 之间进行选择,选出最能满足你需求的一种。我建议阅读它们的文档以获取更多信息。


现在你知道该选择什么了,如果你用过它们,请在下面的评论中分享你的经验。感谢你的阅读!


原文链接:https://www.syncfusion.com/blogs/post/blazor-vs-angular.aspx/amp

2022-05-17 14:3214830

评论 1 条评论

发布
用户头像
篡改了原文的题目。谁说blazor赢了?
2022-07-04 11:50
回复
没有更多了
发现更多内容

HPC、AI与云计算:当智能时代三叉戟在亚马逊云科技完美融合

脑极体

自媒体代运营为何被诟病,代运营的水有多深

石头IT视角

C语言基本的窗口开发

计算机魔术师

8月月更

【Django | 开发】面试招聘信息网站(快速搭建核心需求)

计算机魔术师

8月月更

leetcode 303. Range Sum Query - Immutable 区域和检索 - 数组不可变(简单)

okokabcd

LeetCode 算法与数据结构

IPv6邻居发现协议详解

穿过生命散发芬芳

NDP 8月月更

微服务的拆分与设计原则

阿泽🧸

微服务 8月月更

[极致用户体验] 网页里的「返回」应该用 history.back 还是 push ?

HullQin

CSS JavaScript html 前端 8月月更

Kubernetes 重大更改和删除

CTO技术共享

开源 签约计划第三季 8月月更

我眼中的无影云桌面‖云桌面使用者角度

乌龟哥哥

8月月更

RocksDB在大规模分布式系统应用中的经验

CnosDB

时序数据库 开源社区 CnosDB 工程师有话说 CnosDB Tech Talk

5 分钟温故知新 RxJS 【转换操作符】

掘金安东尼

前端 函数式编程 8月月更

寻找海量数据集用于大数据开发实战(维基百科网站统计数据)

程序员欣宸

大数据 数据集 8月月更

关于 SAP ABAP 字符变量和字符串变量字符个数的一个知识点

汪子熙

字符串 SAP abap Netweaver 8月月更

Kubernetes 云原生日志构建

CTO技术共享

开源 签约计划第三季 8月月更

【React源码系列】React Context原理,为什么我建议尽可能少的使用React Redux管理状态 审核中

爱切图的木子老师

react源码 react context react redux

新书上市 | 连载 5 年,千万读者追更,这本书讲透了通信背后的故事!

图灵教育

百炼成钢 —— 声网实时网络的自动运维丨Dev for Dev 专栏

声网

Dev for Dev 自动运维

每日一R「09」类型系统(三)

Samson

8月月更 ​Rust

深度学习公式推导(3):初探神经网络

老崔说架构

ABAP工作进程对数据库表读取操作的检测

汪子熙

数据库 SAP abap Netweaver 8月月更

RocketMQ高可用设计之故障规避机制

急需上岸的小谢

8月月更

把充电宝拆了看看

Sher10ck

拆解 充电宝

C++继承中的多继承语法与菱形继承

CtrlX

c c++ 面向对象 继承 8月月更

Kubernetes Kruise Rollout

CTO技术共享

开源 签约计划第三季 8月月更

文件管理-Linux系统压缩打包

Albert Edison

Linux centos 文件管理 tar命令 8月月更

头脑风暴:最长递增子序列

HelloWorld杰少

算法 LeetCode 数据结构, 8月月更

开源一夏 | Node.js实战对于Buffer和Stream模块系统的深入剖析

恒山其若陋兮

开源 8月月更

对打 Angular,Blazor 赢在哪里?_大前端_Ravindu Shehan Perera_InfoQ精选文章