2022年3月19日,Blazor Day in China 在线上精彩落幕。

7位 Blazor 技术大咖围绕什么是 Blazor,什么是 MAUI,如何使用 .NET MAUI 即将推出的 Blazor Hybrid 支持来构建跨平台原生应用,Blazor 全局异常处理的实现逻辑,什么是 Orleans,如何用 Orleans 与 Blazor 实现反应式物联网应用,什么是 ABP 框架,如何扩展模块 UI 并更改 UI 框架到 Ant Design,如何将 JavaScript 控件封装为 Blazor 组件等 Blazor 相关技术话题,用代码与在线观众进行了一场思维碰撞。

活动在某知名投资银行开发工程师董彬的主持下进行。

点击观看完整视频

本次活动分享资料下载,请进入 .NET Conf 官网获取.NET Conf 官网http://netconfchina.front.milisx.xyz/#/detail?id=c93de7b8-1780-45ee-83cd-72263bcc3736

使用 Blazor Hybrid 的原生客户端应用

活动开篇,作为微软 ASP.NET 团队 Principal Program Manager,Daniel Roth 用清晰简明的实际操作,向我们演示了如何使用 .NET MAUI 即将推出的 Blazor Hybrid 支持,来构建适用于移动端和桌面的跨平台原生应用程序。

分享的最后,他也为我们预告了即将在2022年第二季度发布的 Blazor Hybrid 支持,同时,.NET MAUI 及 Blazor 也是 .NET 7的一部分,它将在今年11月与大家见面。

Daniel Roth 也隔着时差回答了线上观众的提问,针对在线观众提出的 MAUI Blazor 怎样生成 exe 文件在 Windows 上运行,Mobile Blazor Binding 以及 Blazer Web Window 是否还在继续,MAUI 能否支持 AOT,PWA 在 Blazor 上的支持如何,是否有相关的教程,MAUI 能否在 Linux 上运行等问题,给出了他的回答。

 Blazor webasm 有没有针对 PWA 开发教程?

Blazor WebAssembly PWAs:

https://docs.microsoft.com/aspnet/core/blazor/progressive-web-app

问 MAUI 发布的具体时间有确定吗?如果确定是哪个时间?

.NET MAUI 将于 5月份 发布

Blazor 中的全局异常处理

北京磐石桓雅科技 CTO 张广坡,平时喜欢自己造轮子,在本次分享中,他针对我们在使用 Blazor 进行日常项目开发过程中,最常遇到的全局异常处理的问题,分享了他自己在实践中探索出的一套解决方案框架,并在线 coding,向我们展示了这一实现逻辑。

线上观众也在观看这一演示中提出了一些疑问,如 OnParameterSet 会执行很多次的问题是否有比较好的解决办法,长链接对 Web 页面会不会是一个缺点,Blazor 能否用中间件进行全局拦截,平时是否会用 Mac 系统开发 Blazor,有没有权限相关的模板可以使用,能否解释一下 Blazor 的生命周期等,张广坡老师一一给出了自己的解答。

Blazor 记录日记的时候,有没有 Webapi 中 Requestld 的概念,方便追溯当前请求中记录的所有日志?

目前设计中没有 RequestId。

有模板权限吗?

目前 Gitee 平台开源项目 BootstrapAdmin 中有完整的 Blazor 权限模板,地址是:https://gitee.com/LongbowEnterprise/BootstrapAdmin

在线演示地址:https://admin.blazor.zone/

Github 开源权限模板示例:https://github.com/ArgoZhang/IdentitySample

长连接对于 web 页面会不会是缺点?

是缺点还是优点是相对的,主要还是看设计与需求的契合度,看应用场景是否匹配。

有没有左边树结构,右边内容的推荐?

左侧树状结构其实就是菜单,上面提到的例子中都是这种设计。

Blazor 有没有中间件,全局拦截报错?

Blazor 中中间件只有管道建立时运行一次,建立链接开始 Blazor 应用后中间件就不起作用了,所以使用中间件或者过滤器来做全局拦截在 Blazor 中是无法实现的。

MAC不支持 Blazor 吗?为什么在 MAC 电脑上还要开 WIN 来运行 Blazor?

Mac 系统支持 Blazor 开发,vscode/vs for mac/rider 均可以使用,演示中我是本机与云服务器的切换,并不是我本机安装了 Windows 云服务的性能比我本机更强大。

有模板权限吗?Blazor 的应用拓展性怎么样?有移动 UI 组件库了吗?

不太理解这个扩展性具体指的那个方面,不好回答,目前 Blazor 移动端组件库不是很多,很多解决思路都是走通用化然后移动端适配,并不想以前有很多 js 的移动端 UI 库。

能不能解释一下 Blazor 的生命周期?

文字解释比较多,我给一个地址链接,可以通过微软文档进行系统学习,地址如下:https://docs.microsoft.com/en-us/aspnet/core/blazor/components/lifecycle?view=aspnetcore-6.0&WT.mc_id=DT-MVP-5004174

Blazor 适合做什么项目?

强烈建议不要使用 Blazor 做互联网这种高并发项目,强烈推荐做企业内部系统或者类似餐饮业店铺内的点单系统。

有没有代码更新后页面实时更新方案推荐?

代码更新后页面实时更新是什么需求?是动态编译吗?目前 Blazor 本身并无此功能。

开源的 Blazor 管理后台模板

来自温州数闪科技有限公司的技术总监谷首道,本次分享他带来的是他参与设计与搭建的开源项目 MASA Framework Admin,向我们详细介绍了基于 MASA Blazor 和 MASA Framework 实现的 .Net 6 管理后台模板,包括用户、组织架构、多点登录互斥、RBAC 等功能。

对于观众咨询的 Pro 是否收费的问题,谷老师也表示 MASA Stack 放出的一些开源产品,除协议可能不同外,功能类的产品全部都是免费的;针对其他诸如在使用 Blazor 的过程中对于性能有怎样的感受和见解,有没有考虑做移动端的组件库,有没有关于 Dapr 的教程,MASA Framework Admin 是否是已经发布正式版本的状态等问题,谷老师也结合在线演示,给出了详尽的回答。

有考虑出一个移动端组件库吗?

我们是基于 vuetify 尽量1:1还原的,理论上支持移动端,通过响应式布局来兼容。我们的文档站点已经兼容移动端,可以看这里 https://blazor.masastack.com/

Pro 是收费的吗?

免费的,但这只是个纯前端的样式库。包括注册,rbac 等功能可以看一下 MASA.Framework.Admin

有没有 Dapr 的相关推荐?

国内很多大佬都出过 Dapr 系列文章,大家写的都蛮好。但是我们的手把手教你学 Dapr 系列是经过没有编程经验的运营小姐姐手敲认证的简单 ^_^,传送门:https://www.cnblogs.com/doddgu/p/dapr-learning-3.html

能不能聊一下性能的问题?

Blazor 有两种模式,Server 的话注意不要跟前端频繁交互,保证网络畅通的话,其实影响不大。而 Wasm 模式下要注意的性能优化会相对较少,但如果动画类效果需要在.net和js中超频繁交互也可能会存在一些问题。总而言之,你可以在 js 或 .NET 中任意选择一个地方集中处理问题而不要让他们过于频繁交互即可,在这方面 wasm 的容忍性会比 server 高很多。

authing 只有 SaaS 版吧?

身份云平台是个不错的方向,但云计算方面大家为什么要自建的问题同样问到身份云,那可能只有每个人心中才能有答案了。

Hello!MAUI Blazor!

来自正泰集团,同时也是微软 MVP 的陈超超首先为我们带来 MAUI Blazor 的话题。他为我们介绍了 MAUI Blazor 可以帮助我们解决哪些问题,MAUI 是如何工作的,并在线 coding,用现有项目存在的需求,采用 MAUI 做了演示。由于网络配置原因,演示的最后出现了一点小问题,超超老师也在结束之后找到了原因,并进行了运行和调试演示。

随后的答疑环节,超超老师也为在线观众提出的 MAUI 项目是否可以直接创建出一个使用 Blazor 的初始项目,MAUI 和 Xamarin 有什么区别,Xamarin 之后是否还会维护等问题进行了解答。

演示代码:https://github.com/TimChen44/Hello-MAUI-Blazor

Blazorwebview 有预装环境吗?

不清楚问题中预装环境的具体意思,如果是开发环境,在 VS 安装工具中选择 MAUI 后,工具会帮我们安装完整的开发与调试环境,如果是运行环境,你只需要按照要求进行打包,安装包里会包含必要的运行环境。

MAUI 和 Xamarin 有什么区别?

MAUI 基于 Xamarin.Forms 技术演变过来的,很多组件功能和 Xamarin.Forms 完全相同,只是更换了命名空间,但是 MAUI 提供了更多的支持,就比如本次主题 Blazor 的支持。

Xamarin 还会维护不?

目前微软没有给出这方面的信息,我个人认为微软会继续维护 Xamarin 的 bug,但是新功能可能不会添加了。

Blazorbrowser 能加载网页吗?

问题中 Blazorbrowser 指的是 BlazorWebView,那当然支持加载网页,Blazor 应用就是一个网页,如果只想载入网页建议使用 WebView 更加合适。

BlazorWebView:https://docs.microsoft.com/zh-cn/dotnet/maui/user-interface/controls/blazorwebview

WebView:https://docs.microsoft.com/zh-cn/dotnet/maui/user-interface/controls/webview

MAUI 安卓如何命令行启动 SO 库?

这属于安卓平台特性,目前文档库中 MAUI 的资料还没添加,你可以参考 Xamarin.Android 的资料 https://docs.microsoft.com/en-us/xamarin/android/platform/native-libraries

ABP 框架主题系统与 Ant Design

Volosoft 软件工程师梁士伟,他向我们介绍了 ABP 这一基于 ASP.NET Core 的开源应用程序框架,以及 ABP 框架中的主题系统这一特性的设计,并通过他基于 Ant Design Blazor 制作的一套 ABP 的主题,展示了如何快速的替换基础主题模块到Ant Design主题模块,并且两种常见扩展模块 UI的方式 。

之后,他也对线上的 Ant Design Blazor 和 ABP 的架构是如何集成的,以及其他 ABP 框架相关的问题作了解答。

有没有 Ant Design 的组件呢?

Ant Design 主题模块全部使用的 Ant Design 组件编写,ABP抽象了一些通用的服务,比如通知,消息,curd 基类组件等,这些都使用 Ant Design 重新实现。你也可以在项目中使用任何的 Ant Design Blazor 组件。

梁老师的项目地址是多少 ?是否可以提供一个相关的联系方式公众号等?

项目地址 https://github.com/realLiangshiwei/presentations/tree/master/2022-03-19-Blazor-Day, 微信公众号是 abp framework。

探讨 Orleans 与 Blazor 实现反应式物联网应用

Ant Design Blazor 项目作者、微软 MVP 杨舜杰向我们分享的是 Orleans 这一基于 .NET 的反应式框架,与大家探讨了用 Orleans 与 Blazor 来构建一款物联网采集服务的开发方式,并通过一个 Demo 对其实际表现进行了演示。

之后,杨老师也解答了线上观众对于 Orleans 和 Dapr 有什么不同,Orleans 在分布式的场景下如何解决一致性的问题,Grain 是否有容量限制,超出限制会怎么处理,Azure IOT/Service Bus/Eventhub 是否是采用 Orleans 做的等疑问。

这个不会是每个设备有一个状态服务负责吧?

是每个设备的状态和操作都由一个 .NET 对象来维护,与设备的状态同步,方便系统实时获取设备的信息,以及控制这个设备。这与一般的信息系统每次交互都通过数据库表来维护信息有很大的不同。

奥尔良不是微服务架构吗?

Orleans 是对象粒度的分布式框架,而且是有状态的。跟一般的无状态微服务有多不同点。

Orleans 和 Dapr 有什么区别?

Orleans 是基于.NET的框架,可以使用 BCL 和所有类库,集群通讯是用 tcp 和 gossip,性能和扩展性更好,还有流的功能。

而 Dapr 是多语言的、基于sidecar模式做多语言集成的,基于 http2 和 grpc 通讯,性能相比 Orleans 低一些。另外,Dapr 可以方便地与中间件做集成(只需要中间件与 dapr 集成,各语言的服务都能使用)Dapr 的 Actor 部分是侵入式的,依赖特定语言SDK的实现。当然 .NET SDK 的功能是最完整的。如果是 .NET 团队想用 Actor,又没有多语言的场景,更加推荐 Orleans。

Orleans 在分布式场景下,如何解决多节点数据 CAP 问题?

内置了点对点通讯机制和 Paxos 分布式一致性算法,能保证节点下线后 Grain 的重新激活。详情可以看文档https://dotnet.github.io/orleans/docs/implementation/cluster_management.html

微软目前已经退出了 Dapr,将 Orleans 很多概念迁移过去,日后微软重点是否转移到Dapr,OELeans 是否会被边缘化?

自从 Orleans 基于.NET Core发布 3.0版本后,渐渐走到.NET的门面。目前已经在微软文档上线 https://docs.microsoft.com/zh-cn/dotnet/orleans/?WT.mc_id=DT-MVP-5003987

也加入了ASP.NET 7 的路线图中 https://github.com/dotnet/aspnetcore/issues/39504,很可能会成为 ASP.NET 众多编程模型的一员。其实现在 Orleans 已经很方便地集成到 ASP.NET 中,通过 WebAPI 公开对 Actor 模型的操作。

将 JavaScript 控件封装为 Blazor 组件

Ant Design Blazor Organization 成员孙皓为我们分享的是如何将 JavaScript 控件封装为 Blazor 组件。将这些使用 JS 编写的优秀的控件库用于 Blazor,能够极大地丰富 Blazor 生态。在分享的同时,孙皓老师也在线演示了这一实现方式。

最后,孙老师也回答了线上观众的一些疑问,如对于现在已经有的比较成熟的 Vue 或者 React 的组件库,有没有什么方法能够把他们很好地封装成 Blazor 的组件库,以及 Blazor 有没有针对 WebGL 的操作库等。

对于现在已经有的比较成熟的 Vue 或者 React 的组件库,有没有什么方法能够把他们很好地封装成 Blazor 的组件库?

没有特别好的办法。通过调用 js 的方式来创建 vue 或 react 的组件是可行的,但是不推荐这样做。

Vue React 的组件好集成吗?

同上,能够集成,但是不推荐。

请问 Blazor 有没有针对 WebGL 的操作库?

不太了解这方面有没有人做过封装,通过原生js方式操作是可以的。

Blazor 开发者调研

欢迎参与 Blazor 开发者调研,一起更好地建设 Blazor 中文社区以及 Blazor 生态。

奖品说明

由于不可控原因,我们暂定在五月中旬安排奖品邮寄。如有突发情况无法及时寄出,我们将在群内另行通知。感谢大家的支持,请大家耐心等待。

主办方

Blazor 中文社区

协办方

微软 Reactor

微软最有价值专家

支持伙伴

abp Community

B站:超超TimChen44

BootstrapBlazor 社区

MASA Blazor

近期活动分享

.NET社区联合主办.NET 20周年学习挑战赛 火热进行中

.NET 20周年学习挑战赛-CSDN社区https://bbs.csdn.net/topics/605229434

全程回顾 Blazor Day in China 精彩分享相关推荐

  1. 直播回顾|蒋烁淼:《下一代企业级应用软件论坛》可观测性主题精彩分享

    <下一代企业级应用软件论坛>由上海开源信息技术协会发起,以开源软件.企业级大数据平台.web应用.中间件等为切入点,通过邀请行业重量级嘉宾直播分享的方式,深度剖析国内外应用软件现状,解读国 ...

  2. 混合现实平台 Mesh、云服务能力翻倍扩容、福利 150 万人……Ignite China 精彩盘点...

    作者 | 伍杏玲 出品 | CSDN (ID:CSDNnews) "两年前微软曾提出一个目标:将中国云服务能力翻倍扩容:两周前,微软云服务能力已实现第二次翻倍扩容!" 微软全球资深 ...

  3. 合肥.NET技术社区首次线下聚会全程回顾【多图】

    2019年3月16日对于合肥.NET来说是一个特别的日子,因为这是合肥.NET技术社区首次非正式线下聚会!这次聚会受场地限制(毕竟是聚餐的形式),即使换成了小椅子后,最多也只能容纳24个人,所以还有一 ...

  4. 延续精彩分享,感受技术力量 | 开发者说·DTalk 鉴赏

    十二月赋予了我们回顾 2021 的意义,产品版本的更新迭代让技术更加成熟,开发工具的适配让实践更加得心应手,各种活动的成功举办让交流更加深刻... 感谢开发者们的一路陪伴,与我们一同见证 Androi ...

  5. 5月10日云栖精选夜读:阿里专家直击前端盛会JSConf2017_Day2:见证Moment.js精彩分享...

    摘要: 第二天的会议个人认为最精彩的是来自于微软的一位女分享者,她是moment库的作者之一.此分享的精彩之处在于作者以moment为例讲解了开发一个类库的4个关键要素,一方面推广了moment,同时 ...

  6. 阿里专家直击前端盛会JSConf2017_Day2:见证Moment.js精彩分享

    原文链接 阿里专家直击前端盛会JSConf2017 Day2:见证Moment.js精彩分享 yq传送门 2017-05-10 18:08:40 浏览126 评论0 深度学习 大数据 阿里云 日志 数 ...

  7. 5月10日云栖精选夜读:阿里专家直击前端盛会JSConf2017_Day2:见证Moment.js精彩分享

    摘要: 第二天的会议个人认为最精彩的是来自于微软的一位女分享者,她是moment库的作者之一.此分享的精彩之处在于作者以moment为例讲解了开发一个类库的4个关键要素,一方面推广了moment,同时 ...

  8. 5月10日云栖精选夜读:阿里专家直击前端盛会JSConf2017 Day2:见证Moment.js精彩分享...

    第二天的会议个人认为最精彩的是来自于微软的一位女分享者,她是moment库的作者之一.此分享的精彩之处在于作者以moment为例讲解了开发一个类库的4个关键要素,一方面推广了moment,同时也不失理 ...

  9. 华为新品手机发布会全程回顾:AI加持下的十大创新

    北京时间10月16日晚上20:00,华为在德国慕尼黑举行Mate10系列手机新品发布会.发布会上,余承东正式宣布了华为Mate 10系列旗舰手机. Mate 10新机共有两款,分别是Mate 10和M ...

  10. 精华回顾!历届MDCC大会精彩演讲与议程汇总

    转载自:http://www.csdn.net/article/2014-08-12/2821150-MDCC-review 精华回顾!历届MDCC大会精彩演讲与议程汇总 发表于2014-08-13 ...

最新文章

  1. ExtJS4.2学习(三)Grid表格(转)
  2. vi 命令linux退不出来,Linux 基本命令 vi的退出方法
  3. js 校验验证码 知识点
  4. 经典排序算法(3)——直接插入排序算法详解
  5. substr判断最后一个是不是逗号_考研最后一个月是不是很累?
  6. 刷题总结——Tree2cycle(hdu4714 树形dp)
  7. 一招教你查看Mac本机WiFi密码
  8. 如何在Mac上使用时间机器和“聚焦”恢复文件
  9. 【杂文】总结专访李运华一文
  10. [unity3d插件]插件效果以及下载
  11. JS逆向之网易云音乐
  12. GPIO output level 和 GPIO Pull-up/Pull-down的区别
  13. 安装pip、pip3
  14. 【001】C++11允许匿名类型、局部类型作为模板实参
  15. 唯众本科物联网工程技术专业解决方案
  16. 再回首2014的精彩
  17. android锁屏退场动画,锁屏十秒超时,锁屏界面退出动画流程,FLAG_KEEP_SCREEN_ON亮屏...
  18. 【概念】FISCO-BCOS证书进行Dapp开发需要注意什么?讲解config.ini,group.id.genesis,group.id.ini
  19. Imail 邮件服务器的SMTP配置与 .NET 下使用 System.Net.SmtpClient 发送邮件
  20. POJ 3618 Best Cow Line(贪心算法)

热门文章

  1. HAProxy 源代码阅读指引
  2. 12-搜索前端开发-按分类搜索
  3. BBR:Congestion-Based Congestion Control解读
  4. Praat脚本提取时长及共振峰并绘制声学元音图
  5. 本地调试获取微信code网页授权,免部署(前端+开发者工具)
  6. c语言1 2.5*3,若有如下变量定义并赋值:inta=1,b=2,c=3,k;float f=2.5,e;doubled=2.4,g;则下列符合C语言语法的...
  7. mapreduce推测执行算法及原理
  8. 微服务 细颗粒度的 soa
  9. 深度学习之facenet人脸识别网络介绍
  10. 自动化测试之邮件发送