文章目录
1.Blazor是什么
1.1由来与对比
1.官方文档:
https://learn.microsoft.com/zh-cn/aspnet/core/blazor/?view=aspnetcore-7.0
2.简单补充一些ASP.NET的知识:
ASP(Active Server Pages)是动态服务器页面的缩写
ASP.NET 是开源,跨平台,高性能,轻量级的 Web 应用构建框架,使用 .NET 构建 Web 应用。
ASP.NET 是一个开发框架,用于通过 HTML、CSS、JavaScript 以及服务器脚本来构建网页和网站。
MVC 又是什么?
NET MVC是微软官方提供的以MVC模式为基础的.NET Web应用程序(Web Application)框架,
它由Castle的MonoRail而来(Castle的MonoRail是由java而来),
ASP.NET MVC 是Windows系统下面的Web研发框架,有Microsoft提供。
MVC顾名思义:Model, View, Controller.是UI端分层的三层模式。跟三层架构有着本质区别。
.Net MVC彻底的分离了前后端,以及抽象层结构的依赖注入,横切编程模式。
用于模型架构的ModelMedata,用于模型验证的ValidateProvider,用于数据提供的ValueProvider,用于数据绑定的ModeBinder,用于视图绑定的ViewEngine引擎等。构成了Asp.Net MVC架构的模式。
ASP.NET SignalR是什么?
ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程。
3.个人理解:
①Blazor其实MVC的一个分支;之前是短链接,现在是长链接;
②用Blazor 底层是SignalR,代替 JS;不要再用弱类型的语言来开发程序,对后期维护都是一个很大的挑战;
③Blazor封装好之后,组件复用率高,也意味着开发效率会远远大于MVC;
1.2创建一个Server项目
1.2.1在VS中搜索Blazor,选定模式开始创建;
1.2.2选定.Net 7,去掉Https配置,勾选上还得配置自签发的一个证书;
1.2.3不小心勾了,配置中改掉;
1.2.4注入服务 与 配置管道;
2.Blazor模式
2.1 Blazor Server与WebAssembly
2.1.1 Blazor Server
实质:你的代码运行在服务器上,通过请求,把运算结果的差异推给浏览器;
优点:1.IDE调试;2.B/S架构 更新迅速;3.运行流畅;
缺点:1.对网络要求高,所有的请求都是跑在服务器上,比如点击一个按钮,这个事件浏览器是不响应的,它其实是从JS传递给了服务器;
**2.1.2 **Blazor WebAssembly
优点:Dll首次加载的时候,通过服务器下载到你的浏览器里,全部跑在浏览器里;
全部运行在浏览器的沙盒里,跟服务器一点关系没有;
运行的是wasm那种脚本,号称汇编,理论上比JS还快;
7.0后 会进行服务器更新后,浏览器刷新主动更新;
对网络没有那么大的依赖性;
缺点:
目前不推荐使用;
1.还是类似C/S结构;
2.切换网页组件很卡;
3.调试不在IDE中,在浏览器中反应问题;
2.2 创建一个Blazor wasm工程
1.选中Blazor WebAssembly App
2.项目配置
FrameWork 选择框架
Authentication type 授权模式
Configure for HTTPS 是否HTTPS,客户端不需要
ASP.NET Core Hosted 类似MVC套壳,再去加载Blazor
Progressive Web Application PWA渐进式的一种交互 ,其实是浏览器的一个功能,Manifest一个配置文件
Do not use top-level statements .Net5.0 C# 9.0 就开始有了
3.模式详解
Dll首次加载的时候,通过服务器下载到你的浏览器里,全部跑在浏览器里;
首次之后不会再加载dll;
2.3 Blazor Hybrid 混合编程
ASP.NET Core Blazor Hybrid
本文介绍 ASP.NET Core Blazor Hybrid,可以通过它在 ASP.NET Core 应用中使用 .NET 生成交互式客户端 Web UI。
使用 Blazor Hybrid 将桌面和移动本机客户端框架与 .NET 和 Blazor 结合使用。
在 Blazor Hybrid 应用中,Razor 组件在设备上本机运行。
组件通过本地互操作通道呈现到嵌入式 Web View 控件。
组件不在浏览器中运行,并且不涉及 WebAssembly。
Razor 组件可快速加载和执行代码,组件可通过 .NET 平台完全访问设备的本机功能。
Web View 中呈现的组件样式与平台相关,可能需要你使用自定义样式表来说明不同平台之间的呈现差异。
Blazor Hybrid 文章涵盖与将 Razor 组件集成到本机客户端框架相关的主题。
生成 Windows Presentation Foundation (WPF) Blazor 应用
https://learn.microsoft.com/zh-cn/aspnet/core/blazor/hybrid/tutorials/wpf?view=aspnetcore-7.0
r/components/?view=aspnetcore-6.0)集成到本机客户端框架相关的主题。
生成 Windows Presentation Foundation (WPF) Blazor 应用
https://learn.microsoft.com/zh-cn/aspnet/core/blazor/hybrid/tutorials/wpf?view=aspnetcore-7.0
博主还有个想法,希望微软可以实现,将WPF能快速转化为Web程序,能大大节省桌面开发程序的工作量。