blazor_Blazor现在在服务器上运行:您应该知道的

blazor

自微软推出Blazor以来已有一年左右的时间 ,该工具用于在浏览器中运行.Net代码 。 一年来是不平凡的一年,有多个版本,每个版本都增加了越来越多的代码兼容性。 现在被描述为“使用C#进行全栈Web开发”的Blazor可在客户端和服务器上运行。

Blazor建立在开放标准WebAssembly平台之上 ,并在针对单页Web应用程序进行了优化的浏览器中实现了.Net运行时。 使用基于熟悉的Mono的浏览器版本,可以即时编译代码,从而驱动HTML和JavaScript页面组件。 尽管Microsoft仍将Blazor归类为试验性产品,但最近的一系列公告清楚地表明,它已经准备好迎接黄金时段。

[更深入: 如何开始使用WebAssembly WebAssembly的下一步 8个使WebAssembly崭露头角的项目 •那么, WebAssembly的下一步究竟是什么? | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

服务器上的Blazor

尽管WebAssembly Blazor与发行版之间还有一段距离,但Microsoft正在加速以ASP.Net Core 3.0的一部分的Razor Components名义发布该技术的服务器端版本。 不要被名称更改所迷惑:这将是熟悉的Blazor Razor语法,您的代码现在在服务器上运行,使您可以选择在所有Web应用程序中开发和使用共享组件

发行服务器端版本是明智的决定,因为并非所有浏览器都完全支持WebAssembly。 而不是在浏览器中运行,您的Blazor代码在ASP.Net Core中运行,使用SignalR在浏览器中JavaScript代码之间发送事件。

ASP.Net Core 3.0的发布还需要一段时间,但是现在您可以开始使用服务器端Blazor,以了解如何在应用程序中使用它。 您还可以使用Razor语法标记开发第一个服务器端Blazor组件。 学习曲线应该很短,因为Blazor与用于开发Web应用程序(将标记链接到同一文档中的代码)的原始ASP.Net方法之间存在很多相似之处。

在服务器上使用Blazor,您仍然可以使用C#编写Web应用程序。 创建一个新的服务器端Blazor应用程序将为您的代码设置一个ASP.Net Core模板 ,并为客户端提供一个SignalR端点。

为什么在服务器上使用Blazor

在服务器上使用Blazor有很多好处。 因为它是一个完整的.Net应用程序,所以它将进行预编译,并且不需要在每次加载时都在WebAssembly中进行编译。 从应用程序和页面加载时间的角度来看,这应该会使您的用户更快。 开发人员也可以获得其他好处:在运行ASP.Net Core代码的情况下使用Visual Studio的远程调试器,您可以直接访问它进行调试。 您还可以针对更广泛的客户端,包括不支持WebAssembly的较旧的移动设备。 使用SignalR作为端点意味着您还可以选择交付本机客户端和Web应用程序。

并非Blazor花园中的所有事物都红润。 浏览器托管的WebAssembly应用程序可以脱机运行,也可以作为渐进式Web应用程序的一部分运行。 服务器端Blazor并非如此,因为您需要与服务器建立SignalR连接。 该连接也将受到网络延迟的影响,这使得服务器端Blazor应用程序的运行速度明显慢于WebAssembly中运行的应用程序。

这种方法还存在其他一些问题,需要深思熟虑:Blazor本质上是用于构建无状态单页应用程序的工具,而持久的SignalR连接应为您处理状态,但始终存在您可能失去与之连接的风险客户。 您需要建立一种适当的机制来在网络连接失败的情况下恢复应用程序状态,如果您希望移动客户端使用您的应用程序,那么这是必不可少的。

在WebAssembly中和服务器上使用Blazor之间存在一定的权衡。 虽然在WebAssembly中运行意味着您可以从任何地方交付代码,而无需依赖ASP.Net Core,但这种情况不受支持,而且可能会持续一段时间。 服务器端Blazor需要一台ASP.Net Core服务器,因此,如果要采用这种方法,则需要考虑如何部署一个或多个。 与其他服务器技术相比,使用ASP.Net Core的优势之一在于它可以在Linux和Windows Nano Server上运行,从而可以轻松地使用Kubernetes以及Azure Service Fabric Mesh之类的工具进行容器化,管理和扩展。

向Blazor添加第三方组件

UI组件供应商已经提供了支持,Progress最近宣布它将在其Telerik UI框架中添加Blazor UI组件。 Telerik UI for Blazor以其熟悉的Kendo UI工具为基础,是一个早期的beta版本,该版本支持完整的Blazor组件模型,在单个文件中混合了标记和代码。 最初只是一小部分组件,带有数据网格,选项卡集和可自定义的按钮。

Progress的目标是在服务器端实现其Blazor组件。 使用Kendo命名空间作为NuGet软件包提供,可以轻松添加到Blazor代码中,并支持数据绑定和主题。 它目前是免费的,并且将在Microsoft更新其自己的Blazor实现时进行更新。 尽管服务器端Blazor支持是合乎逻辑的,但由于它使用与WebAssembly版本相同的运行时,因此您仍然可以在WebAssembly应用程序中使用Telerik组件。

Blazor从EdgeHTML过渡到Chrome

有了服务器端的未来保证,Blazor在浏览器中的下一步是什么? 尽管从EdgeHTML和Chakra到Chromium有了很大的转变,但Microsoft的Edge浏览器更改不会对Blazor产生重大影响。 WebAssembly是跨浏览器技术,所有主要的Web平台均支持该技术。 Blazor已在Chrome中运行,并且Chrome远程调试工具是确保代码正常运行的有用部分。

实际上,这是一项更改,很可能使将客户端Blazor达到生产标准变得更加容易。 Chromium的WebAssembly功能已经在Google的Chrome中提供,因此Microsoft将其引入Edge实施相对容易。 Chromium致力于在WebAssembly中获得良好的C和C ++实现,这使得.Net运行时很容易放入Chromium。 如果我要猜测的话,我建议Edge中发生的更改可能会使Microsoft更轻松地将Blazor从试验阶段移至试生产阶段,然后释放状态。

Blazor可能已经开始进行实验,但是它正Swift成为ASP.Net Core不可或缺的一部分。 将组件UI模型引入Web应用程序应该减少使用每个新应用程序重新设计网格控件的风险,并且让组件供应商参与该项目将使开发人员更容易证明在下一代Web应用程序中使用Blazor是合理的能够建立现有的支持关系和现有技能。

翻译自: https://www.infoworld.com/article/3336864/blazor-now-runs-on-a-server-what-you-should-know.html

blazor

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值