|
tcwue2au0ie.jpg
在过来的几年中,JavaScript始终是单页运用中最盛行的言语。然而比来微软引入了名为Blazor的新框架。它允许咱们使用C#言语开发基于阅读器的运用顺序。在本文中,我将首先引见Blazor,以及其面前的原理,并将其与JavaScript进行对比。
啥是Blazor?
Blazor(Browser+Razor)是微软推出的一个新的web开发框架,它允许您使用c#和Razor语法以及HTML和CSS来开发基于阅读器的运用顺序。
之前,开发人员必需在办事器端履行这些Razor视图渲染,经过http传输Html代码给阅读器。然而当初,Razor视图能够间接在客户端履行。
因为Blazor使用WebAssembly,所以咱们不需求在web阅读器中装置任何第三方插件。因此,使用Blazor,您能够使用c#来开发客户端和办事器端,并经过同享库代码使您的任务更为温馨。
0i2qnqozafc.jpg
Blazor在很短的时间内就名声大噪。人们曾经开始将它与盛行的JavaScript框架进行对比。所以,让咱们看看是甚么让Blazor如斯共同。
正如我在一开始所提到的,Blazor的次要优点是,它使咱们可以使用c#开发和履行基于阅读器的运用顺序。在过来的几年里,JavaScript(或TypeScript)始终是用于创立前真个次要编程言语。假如你是一个.NET开发人员,而且想要成为一个全栈Web开发人员,你必需学习JavaScript。
而当初,使用Blazor,您能够用c#同时开发办事器端和客户端。对我来讲,无论如何,这都是Blazor的次要劣势。
与JavaScript不同,Blazor是预编译成两头言语的。当需求在阅读器上运转高机能的运用顺序时,这个特性给咱们带来了明显的益处(如PDF生成,游戏算法等)。另外,Blazor运用顺序能够离线任务。
除此以外,Blazor还有许多特征/优点:
?Blazor不需求阅读器插件。
?反对残缺.NET调试反对。
?它使用了最新的web阅读器功用。
?可用于构建可紧缩的UI的模型。
?阅读器兼容性(即便是较旧版本)。
?依赖项注入功用反对。
?能够在客户端和办事器之间同享代码。
JavaScript Vs Blazor
上面是文章中最症结的部份。Blazor会代替JavaScript吗?JavaScript能保住本人的江湖位置吗?这些问题是每集体都在寻觅谜底的。我以为,当初就对这些问题做出任何间接的预测或论断还为时过早。然而咱们能够对比一些先进的JavaScript框架和Blazor,看看它们之间的区分。
许多人以为React是web组件开发的最好库。虽然很难对比React和Blazor,但咱们必需赞成,React更成熟的,并凭借其良好的口碑和具有弱小的社区反对而博得了尊敬。
React的生态零碎正在经过资源库和框架来优化的React运用顺序的开发流程。我以为,在这些工具和库中,有一些特别优秀,好比Bit,它们能够帮忙办理和同享React组件。
这些库使React成为一种“通用言语”,可以为web、命令行、iOS、Android、Windows等零碎提供给用顺序,再加之Bit等组件同享工具,使React远远优于Blazor。
hp3qigbvq1a.jpg
比拟之下,Blazor是全新的,但它自带的Razor引擎其实不会让大家感觉生疏。已于具有.NET开发教训的人来讲,Blazor就像一个穿了新衣服的老敌人。另外,因为Blazor使用c#进行开发,所以对任何一个进行过。NET开发的人来讲,上手将会更易。只管React的成熟度带来了少量的特性和劣势,但咱们也能够留意到Blazor的一些初级特性。
?与React相似,咱们也能够将Blazor部署为动态文件。
?能够使用Nuget包。
?能够使用相反的组件,不管是客户端或者办事器端(固然,这在使用JS/TS时也是可行的)
?Blazor对路由、验证和表单处置都有内置的反对。
这些只是Blazor提供的特性的一个子集。然而,基于以后的状况,假如您的开发团队长于使用JavaScript,那末坚持使用React将是最佳的选择。另外一方面,假如你很坚决,并正在开始一个新名目,Blazor是一个很好的选择。
Angular是另外一个盛行的单页运用顺序的JavaScript框架。与React比拟,它更像是一个残缺的框架,而不是一个库。
Angular提供了客户端MVC体系构造来简化开发和测试进程。当谈到Angular和Blazor之间的对比时,Angular依旧劣势微小,由于它是家喻户晓的,不乱的,和更具出产力。另外,Angular彻底反对PWA,而Blazor的办事器端尚未兼容。另外,因为Angular使用了TypeScript,所以关于c#开发人员来讲,它比JavaScript更易了解。跟着Angular拿出着一切的牌,我看不到Blazor有任何冲破性的特征,我其实不以为一个长于TypeScript的开发人员会转向Blazor。 |
|