当前位置: 移动技术网 > IT编程>开发语言>.net > 通过Blazor使用C#开发SPA单页面应用程序(1)

通过Blazor使用C#开发SPA单页面应用程序(1)

2019年08月13日  | 移动技术网IT编程  | 我要评论

华为 荣耀7,军统女特务,异世医仙最新章节

    2019年9月23——25日 .net core 3.0即将在.net conf上发布! .net core的发布及成熟重燃了.net程序员的热情和希望,一些.net大咖也在积极的为推动.net core而不懈的努力。在这次.net core 3.0中一项新的技术也首次出现在人们的视野,这就是blazor。说起blazor也许许多人并不知晓,但这几年一片热火朝天的angular,react,vue等前端技术估计无人不知无人不晓。对blazor就是microsoft提供的使用c#构建spa的技术,虽然他姗姗来迟,但带给了大家一个与angular,react,vue等框架完全不一样的体验、完全不一样的架构。

    由于这是一个全新的技术,目前学习资料非常有限,我将自己学习到的内容记录汇总在这里以便查阅,也给感兴趣的童鞋提供参考。

1.    简介

    blazor是一个新的web ui框架,使用c#,razor和html以及webassembly (w3c标准)。它允许您使用c#而不是javascript构建交互式web ui。blazor应用程序由使用c#,html和css实现的可重用web ui组件组成。客户端和服务器代码都是用c#编写的,允许您共享代码和库。

2.    在webassembly或服务器上运行

    blazor可以使用webassembly直接在浏览器中运行客户端c#代码。因为它是在webassembly上运行的真实.net,所以您可以从应用程序的服务器端部分重用代码和库(客户端渲染)。

或者,blazor可以在服务器上运行您的客户端逻辑。客户端ui事件使用signalr(实时消息传递框架)发送回服务器。执行完成后,所需的ui更改将发送到客户端并合并到dom中(服务器端渲染)。

3.    web assembly (wasm)

    基于w3c开放标准,用于在浏览器中运行低级字节代码。使用此标准,我们可以直接在浏览器中运行服务器端语言(rust,c ++,c#...)而不是javascript。

    还记得java applet和microsoft silverlight吗,我们必须在浏览器中安装插件来运行java和c#代码,但是webassembly提供了基本标准,现在我们不需要任何插件,他的二进制格式以.wasm文件表示,能够提供接近本机的性能。

4.    建立在开放的web标准之上

    blazor使用开放的web标准,没有插件或代码转换。blazor适用于所有现代web浏览器,包括移动浏览器。

    在浏览器中运行的代码在与javascript框架相同的安全沙箱中执行。

 

blazor 客户端渲染支持的浏览器

浏览者

版本

microsoft edge

当前

mozilla firefox

当前

google chrome, 包括 android

当前

safari, 包括 ios

当前

microsoft internet explorer

不支持 *

* microsoft internet explorer 不支持webassembly。

razor 服务器端渲染支持的浏览器

浏览者

版本

microsoft edge

当前

mozilla firefox

当前

google chrome, 包括 android

当前

safari, 包括 ios

当前

microsoft internet explorer

11x17 *

*需要额外的填充代码 (例如, 可通过polyfill.io捆绑添加承诺)。

5.    单页面应用程序(spa)

    单页面应用程序(spa)是一种构建在浏览器中单个页面上的web应用程序,页面块可以动态呈现而无需呈现完整的页面。

angular,react,vue和许多其他语言为构建spa提供了支持,但所有这些语言都构建在相同的javascript语言之上。现在,microsoft提供了使用c#和razor页面构建spa的基础,类似asp.net core中的语法,所以它被称为blazor。

    blazor是asp.net core提供的新的web框架,用于在浏览器中使用c#和webassembly标准构建spa。

    asp.net core是一个在linux,mac或windows操作系统上运行的开源web框架。

6.    javascript互操作

    c#代码可以轻松调用javascript api和库。在c#中编写逻辑时,您可以继续使用存在于客户端ui中的大型javascript库生态系统。当然如果愿意您还可以从 javascript 调用 .net 实例方法和静态方法。

7.    优点

  • 受益于 .net 的性能、可靠性和安全性,提供近乎原生的性能,高效且便携
  • 使用 c# 代替 javascript 来编写代码。
  • 利用现有的 .net 库生态系统,我们可以在网页中使用现有的丰富.net生态系统功能。
  • 在服务器和客户端之间共享应用逻辑。
  • 始终高效支持 windows、linux 和 macos 上的 visual studio。
  • 以一组稳定、功能丰富且易用的通用语言、框架和工具为基础来进行生成。
  • 码维护和调试更可靠。

8.    缺点

  • javascript已经非常成熟,许多组件库已经存在于市场中。
  • 具有web assembly标准的blazor是市场上的新手,需要时间才能成熟,而且.net是webassembly众多实现中的早期版本。

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网