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众多实现中的早期版本。

原文链接:https://www.cnblogs.com/liuxtj/p/11344539.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

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

  1. 通过Blazor使用C#开发SPA单页面应用程序(4) - Ant Design

    通过Blazor使用C#开发SPA单页面应用程序(1) 通过Blazor使用C#开发SPA单页面应用程序(2) 通过Blazor使用C#开发SPA单页面应用程序(3) 前面学习了Blazor的特点.环 ...

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

    今天我们尝试创建一个默认的Blazor应用. .Net Core 3.0需要Visual Studio 2019 的支持. 安装.Net Core 3.0 预览版 SDK版本,注意预览版对应的VS版本 ...

  3. 从零开始学习小程序1-1开发一个单页面小程序

    1,在本地电脑中创建一个文件夹"test",2,打开微信开发者工具 3,新建项目文件test,按以下步骤填写完整4,初始页面是这样的5,点开app.json页面,删掉原始代码,配置 ...

  4. 单页面应用程序的优缺点

    一,优点 SPA 单页面应用程序最显著的 3 个优点如下: ① 良好的交互体验 单页应用的内容的改变不需要重新加载整个页面,只有一个HTML页面 因为没有页面之间的跳转,不会出现"白屏现象& ...

  5. Java快速开发平台,JEECG 3.7.5 Vue SPA单页面应用版本发布

    JEECG 3.7.5 Vue SPA单页面应用版本发布 导读            ⊙ Vue+ElementUI SPA单页面应用 ⊙Datagrid标签快速切换BootstrapTable列表风 ...

  6. spa单页面应用html缓存问题

    一.背景 浏览器的http请求都有一个缓存机制,简单点说就是同路径同名文件会默认被缓存下来,提升下次访问时的速度,默认只有刷新页面或长时间未访问时才会刷新缓存. 而spa单页面应用是通过路由切换来访问 ...

  7. 当spa单页面应用遇上SEO,蛋痛的经历

    spa单页面应用优点当然毋庸置疑:效果酷炫,我在视觉和产品面前无从反驳:性能高速度快,全JS嘛当然快,我在运维和产品面前无言以对:运算分散,异步加载,又省硬件又省流量,我在开发和产品面前彻底投降:JS ...

  8. [vue] SPA单页面的实现方式有哪些?

    [vue] SPA单页面的实现方式有哪些? 1.监听地址栏中hash变化驱动界面变化2.用pushsate记录浏览器的历史,驱动界面发送变化3.直接在界面用普通事件驱动界面变化它们都是遵循同一种原则: ...

  9. [vue] 说说你对SPA单页面的理解,它的优缺点分别是什么?

    [vue] 说说你对SPA单页面的理解,它的优缺点分别是什么? 介绍:SPA应用就是一个web应用,可理解为:是一种只需要将单个页面加载到服务器之中的web应用程序.当浏览器向服务器发出第一个请求时, ...

最新文章

  1. Apache Struts2(S2-045)漏洞反思总结
  2. 漏洞分析技术专家聚会——博文视点OpenParty第二期
  3. 网站为什么要做优化?
  4. nginx反向代理相关 负载均衡及优化
  5. php笔记之表单验证
  6. VS Code Remote 发布!开启远程开发新时代
  7. linux新的API signalfd、timerfd、eventfd使用说明
  8. 服务器中文件设置密码,共享服务器文件权限怎么设置密码
  9. 红帽Redhat网络功能虚拟化产品指南、规划和配置指南
  10. java实训---------双色球彩票管理系统(LotterySystem)
  11. 远程控制软件也要有plan B备选方案
  12. html去掉右侧滚动条,html中去掉textarea右侧滚动条和右下角拖拽
  13. FPS游戏的方框透视+自瞄原理
  14. 游戏设计学习笔记 —— 梦的开始
  15. 利用Python进行数据分析的学习笔记——chap12
  16. mysql导出excelsql语句乱码_excel打开是乱码-悄悄告诉你,MySQL 通过SQL语句导出到Excel的方法...
  17. 心路历程 部分感想
  18. [附源码]java毕业设计点餐系统论文
  19. 春风里,爱水墨画的他
  20. 网络架构之路(二):性能

热门文章

  1. 如何在iPhone和iPad上允许“不受信任的快捷方式”
  2. keras系列︱Application中五款已训练模型、VGG16框架(Sequential式、Model式)解读(二)...
  3. linux ubuntu deepin apache2 rewrite
  4. 《微软云计算Microsoft Azure部署与管理指南》即将上市!!!
  5. 转:java的各个拓展类库的推荐方案
  6. [ JS 进阶 ] Repaint 、Reflow 的基本认识和优化 (2)
  7. 安装debian的zabbix-agent客户端
  8. 关于一个js栈溢出的异常
  9. 如何正确执行碎片整理或在群集共享卷(CSV)上使用CHKDSK命令
  10. .NET Core中异常过滤器ExceptionFilter的使用介绍