首页 > 其他分享 >学习.NET MAUI Blazor(一)、Blazor是个啥?

学习.NET MAUI Blazor(一)、Blazor是个啥?

时间:2022-12-23 20:24:47浏览次数:39  
标签:Core Net Web MAUI Blazor NET

先把Blazor放一边,先来看看目前Web开发的技术栈。
在这里插入图片描述
注:上图只是为了说明问题,没有任何语言歧视!
这是目前最常用的前后端分离开发模式,这个开发模式需要配备前端工程师后端工程师。当然了,全栈工程师另当别论!

那么我们按照这个模式进行各类项目开发,会有一些以下可能碰到的问题:

  • 技术栈复杂
    做一个项目需要前后两套完全不同的语言、不同的框架。无论是对个人和团队,都是一种负担!
  • 无法重用逻辑和代码
    前后端代码需要分别写一份,增加重复劳动不说,当一端做出了修改,另一端未能及时更新,一个BUG就新鲜出炉了。
  • 前后端生态无法共享
    因为语言问题,前后端生态资源不能共享!
  • 增加协作成本
    是的,如果一个不懂后端的前端 VS 一个不懂前端的后端,那简直就是一个灾难!

目录

Blazor是什么

先说个题外话,微软这个老6,.Net Framework 不开源,新老大上台后,搞了一个.Net Core的开源项目。一直更新到.Net Core 3.x的时候,.Net Framework 也更新到了4.x。突然发现一个问题,.NET Core也用4.x的话。那不是跟.Net Framework版本号差不多了么,这不好区分啊,所以做了一个艰难的决定,那就是两个版本统一了,以后就没有.Net Framework 和.Net Core了。我们都叫他.NET 5,而现在已经到了.Net 7的时代了。但这把程序员苦坏了。.Net Framework、.Net Core、.Net 5/6/7。如果不了解其中的缘由,还真不好说清楚他们之间复杂的关系。

好了,言归正传:

.NET Blazor(以下统称Blazor)是.NET Core 3.0推出的一个Web UI框架,如果对Vue比较熟悉的话,会感觉它们及其类似,毕竟嘛,现代前端框架的底层逻辑都基本一致(DOM差量更新、响应式、组件化等)。

Blazor使用 C# 代替 JavaScript 来编写代码,因此我们可以使用静态类型检查、泛型、Linq、async/await、以及美味的语法糖等所有C#语言的优秀特性。但是浏览器上能运行C#代码?答案是一个字:行!

Blazor的两种模式

Blazor分为两种模式,Blazor WebAssemblyBlazor Server,在.Net 7发的时候,MAUI也可以使用Blazor了。这对多端开发来说,是个巨大的福音。创建项目的时候,我们可以选择以下模板。

在这里插入图片描述

Blazor WebAssembly

这是个单页应用 (SPA) 框架,使用WebAssembly技术实现无插件的方式在 Web 浏览器内运行 .NET 代码,通过 JavaScript访问浏览器的完整功能。

Blazor Server

将Blazor组件托管在ASP.NET Core服务器上,通过SignalR把UI事件从浏览器发送到服务器,并由服务器处理完后将已呈现的组件发送回的客户端。

Blazor的优点

  • 使用C#而不是JavaScript构建交互式 Web UI。对前端和后端代码使用同一语言,可以:
    • 加快应用开发。
    • 降低生成管道的复杂性。
    • 简化维护。
    • 利用现有的.NET库生态系统。
    • 让开发人员了解和处理客户端和服务器端代码。
  • 应用逻辑和代码共享。
  • 使用Blazor提供的 Blazor可重用UI组件,提高工作效率。
  • 适用于所有新版的Web浏览器,包括移动浏览器。Blazor使用Web开方标准,没有插件或代码转译。
  • 可以使用Blazor Server或Blazor WebAssembly托管Razor组件,以利用服务器或客户端呈现的优势。

Blazor的缺点

  • 目前不适用于高并发场景
  • WASM的普及和支持还不够广泛
  • WASM模式打包启动慢
  • 生态问题。但已经有很多优秀的Blazor的组件框架了

总结

Blazor优缺点就那么些。微软的官方文档也说的比较清楚。是否要追随微软的技术路线、Blazor未来前景如何,暂时未知。
参考:算上Blazor,微软祖孙3代WebFormSilverLightBlazor前两代已经不知道在哪个犄角旮旯了。至于Blazor还能打过久,让我们拭目以待吧!

哎?你不是说MAUI Blazor吗?MAUI呢?下次,下次我们聊一聊MAUI是个啥!


欢迎大家关注我的微信公众号,一起进步,一起成长

标签:Core,Net,Web,MAUI,Blazor,NET
From: https://www.cnblogs.com/gmval/p/17001537.html

相关文章

  • kubernetes-Job/CronJob
    离线任务“离线业务”可以分为两种。一种是“临时任务”,跑完就完事,下次有需求了说一声再重新安排;另一种是“定时任务”,可以按时按点周期运行,不需要过多干预。这分别对应了......
  • Kubernetes控制器的工作原理
    Kubernetes的核心就是控制理论,Kubernetes控制器中实现的控制回路是一种闭环反馈控制系统,该类型的控制系统基于反馈回路将目标系统的当前状态与预定义的期望状态相比较,二者......
  • 启动和使用 Netflix Eureka 服务注册表的过程
    本指南将引导您完成启动和使用NetflixEureka服务注册表的过程。您将构建什么您将设置一个Netflix尤里卡服务注册表然后生成一个客户端,该客户端既向注册表注册自身,又使用......
  • Kubernetes控制器的工作原理
     Kubernetes的核心就是控制理论,Kubernetes控制器中实现的控制回路是一种闭环反馈控制系统,该类型的控制系统基于反馈回路将目标系统的当前状态与预定义的期望状态相比较,......
  • 【.NET Core】基于.NET Framework的WPF项目升级到.NET 6
    官方文档:将WPF应用升级到.NET6-.NETCore|MicrosoftLearn.NET(Core)可谓是大势所趋,最近有一个项目计划将单机应用改成客户端-服务器模式,对比了ASP.NETCoreweb......
  • vscode 中切换 kubernetes namespace
    vscode快捷键参考链接macOS版本Windows版本备用链接:macOS版本Windows版本Windows客户端切换到etek-prod名称空间打开VisualStudioCode软件,进入Kubern......
  • 17_2 kubernetes CKA 模拟题总结
    做题前注意是否在要求的上下文#查看当前所在的contextkubectlconfigcurrent-context#输出kubernetes-admin@kubernetes#使用指定的contextkubectlconfigus......
  • Kubernetes监控手册07-监控controller-manager
    写在前面controller-manager是Kubernetes控制面的组件,通常不太可能出问题,一般监控一下通用的进程指标就问题不大了,不过controller-manager确实也暴露了很多 ​​/metr......
  • VS 2019 目标框架中看不到 Net Core 3.X
    VS2019 目标框架中没有.NETCore3.X、.Net5.0 ​​https://dotnet.microsoft.com/download/dotnet-core/3.0​​  VisualStudio2019(v16.3orlater)原因:VS2019......
  • Kubernetes(K8S) helm 安装
    Helm是一个Kubernetes的包管理工具,就像Linux下的包管理器,如yum/apt等,可以很方便的将之前打包好的yaml文件部署到kubernetes上。Helm有3个重要概念:helm:一......