qcon 广州站2022已开启,三大关键词:数字化、国产化、云原生。戳此了解
写点什么

对打 angular,blazor 赢在哪里?-金马国际

  • 2022 年 5 月 17 日
  • 本文字数:3028 字

    阅读完需:约 10 分钟

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 之间进行选择,选出最能满足你需求的一种。我建议阅读它们的文档以获取更多信息。


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


原文链接:

2022 年 5 月 17 日 14:321686

评论

发布
暂无评论
发现更多内容
网站地图