《进击吧!Blazor!》第一章 1.初识 Blazor
作者介绍
陈超超
Ant Design Blazor 项目贡献者
拥有十多年从业经验,长期基于.Net技术栈进行架构与开发产品的工作,Ant Design Blazor 项目贡献者,现就职于正泰集团
第一次写专栏,开头不知道说什么,所以……先来段广告
《进击吧!Blazor!》是本人与张善友老师合作的Blazor零基础入门系列视频,此系列能让一个从未接触过Blazor的程序员掌握开发Blazor应用的能力。
视频地址:https://space.bilibili.com/483888821/channel/detail?cid=151273
本系列文章是基于《进击吧!Blazor!》直播内容编写,升级.Net5,改进问题,讲解更全面。
系列文章目录
第一章 初出江湖 —— ToDo应用开发练手
初识 Blazor
Hello Blazor
页面制作
数据交互
组件开发
安全
第二章 仗剑江湖 —— 企业组织绩效数据管理平台开发实战
项目框架搭建
指标维护:增删改查
组织机构维护:树
数据采集:自定义表格
指标分析:Chart
账号与权限
站点部署
Blazor是什么
Blazor 是一个使用 .NET 生成交互式客户端 Web UI 的框架。
第一次看到这句话的感受是不是What?.NET和Web UI啥时候在一起了?
现状
我们暂且先把Blazor放一边,一起看看目前Web开发的技术栈。
上图是目前最常用的前后端分离开发模式下所使用的技术栈和配备的人员结构。
我们大家天天按照这个模式进行着各类项目开发,不知道大家在工作中有没有碰到一下面的问题。
- 技术栈复杂
做一个项目前后端需要用到两套完全不同的语言,两套完全不同的框架,不管是对团队还是对个人无形中增加了技术复杂度和成本。 - 无法重用应用逻辑和代码
表单验证,DTO(数据传输对象)等代码需要前端和后端分别写一份,增加重复劳动,当一端做了修改后,如另一端未能及时更新,一个新鲜的BUG就出现了。 - 资源生态独立不能共享
当下每一个项目下面都摆着一堆的”轮子“(库),充分利用第三方资源对开发价值不可估量,但是因为语言问题,前后端的生态资源不能共享。 - 增加协作成本
大家回忆一下,前后端遇到问题时经常热(hu)情(xiang)交(si)流(bi)的场景历历在目,“接口返回格式错了”,“请求数据缺字段了”,“流程不是这样的”…………总是有事前没有想到的问题
如果遇上 “一个不懂后端的前端” vs “一个不懂前端的后端”,简直就是灾难。 - 人员利用率低
每个项目前后端开发量是不平衡的,时常旱涝不定,即影响项目进度,又影响员工心态平衡。
Blazor是什么,由能带来什么
首先Blazor是微软最新推出的Web UI框架,目前.Net5中包含的版本已是它第二个可以商用的版本,它的出现就很好的解决上面产生的问题,下面是他部分特性:
- 语言优秀
Blazor 使用 C# 代替 JavaScript 来编写代码,因此我们可以使用静态类型检查、泛型、Linq、async/await、以及美味的语法糖等所有C#语言的优秀特性。
看到这里,估计不少读者会有疑问,浏览器上能运行C#行吗?答案是:行!
为了解答这个问题,这里就要介绍Blazor的两种模式:Blazor WebAssembly和Blazor Server。
- Blazor WebAssembly
这是个单页应用 (SPA) 框架,使用WebAssembly技术实现无插件的方式在 Web 浏览器内运行 .NET 代码,通过 JavaScript访问浏览器的完整功能。
关于WebAssembly介绍推荐阅读这篇文章:https://www.smashingmagazine.com/2017/05/abridged-cartoon-introduction-webassembly/
- Blazor Server
将Blazor组件托管在ASP.NET Core服务器上,通过SignalR把UI事件从浏览器发送到服务器,并由服务器处理完后将已呈现的组件发送回的客户端
看似这个模式和当年的ASP.Net Web Forms有些相似,其实他们有着本质的区别
所以虽然.Net代码托管在服务商执行,但是页面的响应体验非常好。
共享生态
可以使用现有的 .NET 库生态系统。比如EF Core,AutoMapper等优秀的库可以直接使用。
共享代码
现在我们可以在服务器和客户端使用相同的代码编写应用逻辑,所以可以直接共享应用逻辑,比如Dto、验证特性、加密等。
工具完备
在 Windows、Linux 和 macOS 上使用 Visual Studio 保持高效工作。
未来
有了Blazor加持的Web开发的技术栈变成下图的模式
在这个模式中我们一起看看有什么优势
- 技术统一
- 应用逻辑和代码共享
- 共享.Net库生态资源
- 易于团队协作
- 灵活调配人员
次回预告
我将通过一个Hello Blazor示例来体验Blazor项目
《进击吧!Blazor!》第一章 1.初识 Blazor的更多相关文章
- (李南江jQuery+Ajax)第一章:初识jQuery
第一章:初识jQuery 一.原生的JS与jQuery的区别 <!DOCTYPE html> <html lang="en"> <head> & ...
- 《进击吧!Blazor!》第一章 2.Hello Blazor
第二次写专栏,开头还是不知道说什么,所以--先来段广告<进击吧!Blazor!>是本人与张善友老师合作的Blazor零基础入门系列视频,此系列能让一个从未接触过Blazor的程序员掌握开发 ...
- 《head first python》第一章《初识python》总结
该章主要介绍了python的安装和列表相关 列表主要用了movies做介绍: 1.列表及嵌套列表:movies=["the hodaliy",1975,"zhangyim ...
- 第一章:初识JAVA
一:计算机语言发展史 机器语言:典型的二进制文件和计算机交流. 汇编语言: 通过大量的标识符表示一些基本操作来和计算机做交流. 高级语言:通过常见的英语指令来编写程序,完成沟通 常见高级语言 Java ...
- 第一章: 初识Java
计算机程序:计算机为完成某些功能产生的一系列有序指令集合. Java技术包括:JavaSE(标准版) JavaEE(企业版) ---JavaME(移动版) 开发Java程序步骤:1.编写 2.编译 3 ...
- WEB的进击之路-第一章 HTML基本标签(1)
一.HTML简介 超文本标记语言,标准通用标记语言下的一个应用. "超文本"就是指页面内可以包含图片.链接,甚至音乐.程序等非文字元素. 超文本标记语言的结构包括"头&q ...
- 第一章:初识PHP
Web程序工作原理介绍? 工作方式? 浏览器首先向Web服务器发出请求,Web服务器对请求做出响应,将响应数据发送给客户端浏览器,通常是一个HTML文件,然后通过浏览器把HTML文件信息显示在屏幕上. ...
- Linux第一章-目录初识
一.Linux基本介绍: Linux 是一种自由和开放源码的类 UNIX 操作系统,使用 Linux 内核.目前存在着许多不同的 Linux 发行版,可安装在各种各样的电脑硬件设备,从手机.平板电脑. ...
- 第一章,初识C语言
1.1 C语言起源 1.2 选择C语言的理由 1.3 C语言的应用范围 1.4 计算机能做什么 1.5 高级计算机语言和编译器 1.6 语言标准 c90,c99,c11. 1.7 使用C语言的7个步骤 ...
随机推荐
- antdv的Upload组件实现前端压缩图片并自定义上传功能
Ant Design of Vue的Upload组件有几个重要的api属性: beforeUpload: 上传文件之前的钩子函数,支持返回一个Promise对象. customRequest: 覆盖组 ...
- sqlserver 汉字转全拼函数
create function fn_Getquanpin (@str varchar(100)) returns varchar(8000) as begin declare @re varchar ...
- matplotlib学习日记(一)------图表组成元素
1.使用函数绘制matplotlib的图表组成元素 (1)函数plot---变量的变化趋势 import matplotlib.pyplot as plt import numpy as np x ...
- x264编码demo定制修改介绍
x264编码器,提供了两个demo来验证编码功能:一个是大而全的x264.c,另外一个是简洁版的example.c. 其中,前者demo,可以配置很多编码参数,但太冗长繁杂,对初学者不太友好. 后者 ...
- Sentinel并发限流不精确-之责任链
在之前调研Sentinel的过程中,为了准备分享内容,自己就简单的写了一些测试代码,不过在测试中遇到了一些问题,其中有一个问题就是Sentinel流控在并发情况下限流并不精确,当时我还在想,这个我 ...
- RocketMQ(七):高性能探秘之线程池
上一篇文章讲了如何设计和实现高并发高性能的应用,从根本上说明了一些道理.且以rocketmq的mappedFile的实现作为一个突破点,讲解了rocketmq是如何具体实现高性能的.从中我们也知道,m ...
- IDEA控制台打印程序内汉字乱码及txt文本乱码
控制台打印汉字乱码 解决IntelliJ IDEA控制台输出中文乱码问题 txt文本乱码 解决IDEA读取txt文本中显示的中文乱码问题
- Hadoop之WordCount
求平均数是MapReduce比较常见的算法,求平均数的算法也比较简单,一种思路是Map端读取数据,在数据输入到Reduce之前先经过shuffle,将map函数输出的key值相同的所有的value值形 ...
- 智能佳机械软手智能研究版 QB SOFTHAND Research
智能佳机械软手智能研究版是一种基于软机器人技术的拟人机器人手,灵活.适应性强,能够与周围环境.物体和人类进行交互,同时限制伤害操作员.破坏要处理的产品和破坏机器人本身的风险. 智能佳机械软手智 ...
- String被final修饰
源码: