Blazor与JavaScript工具

在过去的几年中,JavaScript已成为开发单页应用程序(SPA)的最流行和广泛使用的语言。今天就是这种情况。但是最近微软发布了一个名为Blazor的新框架。它允许您用C#编写浏览器应用程序。 在本文中,我想谈谈Blazor是什么,我想揭示在此框架周围产生大量噪音的原因,我将其与JavaScript生态系统中的工具进行比较。











什么是Blazor?



Blazor(Browser + Razor)是Microsoft发布的新的Web框架。除了HTML和CSS,它还允许您使用C#和Razor语法创建基于浏览器的应用程序。



以前,任何使用Razor的人都必须在服务器上启动Razor视图,从而生成可以由浏览器呈现的HTML。现在,可以在客户端执行Razor视图。



由于Blazor使用WebAssembly,因此我们不需要在浏览器中安装任何第三方插件或插件来执行相应的代码。结果,事实证明,使用Blazor,您可以在C#中创建应用程序的客户端和服务器部分。在客户端和服务器上共享代码和库的能力使开发人员的工作变得更加轻松。



这是Blazor中使用的一些示例代码。





开拓者代码



为什么在Blazor周围有这么多嗡嗡声?



Blazor在相当短的时间内就获得了相当大的欢迎。他们开始将其与流行的JavaScript框架进行比较。互联网上有很多关于客户端Web开发的未来的讨论,在这些对话中也提到了Blazor。所有这些只会增加他的知名度。我建议了解造成这种情况的原因,并讨论为何将如此多的注意力吸引到Blazor。



如前所述,Blazor的主要优势在于其使用C#开发基于浏览器的应用程序的能力。近年来,JavaScript(或TypeScript)已成为开发客户端Web应用程序的主要语言。也就是说,如果某人是.NET程序员,则为了开发Web的全栈应用程序,他们需要学习JavaScript。借助Blazor,您可以使用C#编写前端和后端Web应用程序。对我个人而言,这是Blazor的主要优势。



与JavaScript代码不同,为Blazor编写的代码在到达浏览器之前已预先编译为中间格式。在开发性能密集型浏览器应用程序时,此功能为我们提供了一些很棒的功能。此外,Blazor应用程序适合解决客户端上的资源密集型任务。例如-创建PDF文件或使游戏算法起作用。



但除上述之外,Blazor还具有其他有趣的功能:



  • 您不需要浏览器插件即可使用Blazor。
  • 为Blazor开发时,您可以完全调试.NET代码。
  • 该框架利用了最新的浏览器功能。
  • Blazor维护了用户友好的界面开发模型。
  • 该框架具有良好的浏览器支持。
  • Blazor支持依赖项注入。
  • 使用Blazor允许您在应用程序的客户端和服务器部分之间共享代码。


JavaScript工具和Blazor的比较



现在我们到了本文的主要部分。让我们寻找一下Blazor是否可以替代用JavaScript编写的库和框架的问题的答案。JavaScript能否站稳脚跟?也许对前端开发的当前状态感兴趣的任何人都想知道这些问题的答案。我认为得出最终结论,甚至对此分数做出一些假设还为时过早。但是要更接近事实,我们可以将一些领先的JavaScript库和框架与Blazor进行比较。



laBlazor vs React比较



许多人认为React是开发Web组件的最佳库。尽管很难比较React和Blazor,但我们必须承认React是一个精心设计的库,已证明其对开发实际项目的价值。围绕React形成了一个强大的程序员社区。



React生态系统充满了库和框架,可轻松开发优化的React应用程序。这些库和框架使React成为一种“通用语言”,可用于为Web,命令行iOS和Android以及桌面创建应用程序



与React相比,Blazor相对较新。但不要忘记,Blazor背后具有坚固的Razor系统。因此,我们不能说Blazor是程序员完全不知道的东西。另外,由于Blazor使用C#,因此.NET开发人员可以更轻松,更快地学习此框架。随着时间的推移,React得到了改善,它为开发人员提供了许多机会,而React具有许多优势,尽管Blazor很小,但它也具有非凡的优势:



  • 像React项目一样,Blazor项目可以部署为静态文件。
  • 您可以在Blazor应用程序中使用NuGet软件包。
  • 在客户端和服务器上使用Blazor时,可以使用相同的代码(当然,在使用JS / TS时也是如此)。
  • Blazor具有内置的路由机制,用于验证用户输入,处理表单。


这只是Blazor功能的一小部分。但是,如果您关注当前情况,我们可以说,如果一个团队有信心使用JavaScript,那么他们肯定应该只使用React。另一方面,对于在启动新的Web项目时对.NET命令比JavaScript更好的命令的人来说,Blazor是一个不错的选择。



▍Blazor与Angular比较



JavaScript框架Angular在开发单页应用程序方面也很流行。如果将其与React库进行比较,事实证明它包含更多标准功能。 Angular为客户端应用程序开发人员提供了MVC架构,以简化构建和测试项目的过程。如果将Angular和Blazor进行比较,那么事实证明Angular在前端开发中具有稳固的地位,因为它是众所周知的稳定框架,适合构建实际应用程序。此外,Angular完全支持渐进式Web应用程序,而Blazor的服务器端机制尚未朝这个方向发展。此外,由于Angular使用TypeScript,因此与基于JavaScript的框架和库相比,此框架对C#程序员更近,更易理解。鉴于Angular的所有优势,我认为没有理由让拥有TypeScript知识的人选择Blazor。



结果



Blazor无疑是一个有趣的项目,尽管它相对较新,但值得关注。它是否可以替代前端开发中的JavaScript工具的问题仍然悬而未决。



您尝试过Blazor吗?






All Articles