作者介绍



陈超超

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的更多相关文章

  1. (李南江jQuery+Ajax)第一章:初识jQuery

    第一章:初识jQuery 一.原生的JS与jQuery的区别 <!DOCTYPE html> <html lang="en"> <head> & ...

  2. 《进击吧!Blazor!》第一章 2.Hello Blazor

    第二次写专栏,开头还是不知道说什么,所以--先来段广告<进击吧!Blazor!>是本人与张善友老师合作的Blazor零基础入门系列视频,此系列能让一个从未接触过Blazor的程序员掌握开发 ...

  3. 《head first python》第一章《初识python》总结

    该章主要介绍了python的安装和列表相关 列表主要用了movies做介绍: 1.列表及嵌套列表:movies=["the hodaliy",1975,"zhangyim ...

  4. 第一章:初识JAVA

    一:计算机语言发展史 机器语言:典型的二进制文件和计算机交流. 汇编语言: 通过大量的标识符表示一些基本操作来和计算机做交流. 高级语言:通过常见的英语指令来编写程序,完成沟通 常见高级语言 Java ...

  5. 第一章: 初识Java

    计算机程序:计算机为完成某些功能产生的一系列有序指令集合. Java技术包括:JavaSE(标准版) JavaEE(企业版) ---JavaME(移动版) 开发Java程序步骤:1.编写 2.编译 3 ...

  6. WEB的进击之路-第一章 HTML基本标签(1)

    一.HTML简介 超文本标记语言,标准通用标记语言下的一个应用. "超文本"就是指页面内可以包含图片.链接,甚至音乐.程序等非文字元素. 超文本标记语言的结构包括"头&q ...

  7. 第一章:初识PHP

    Web程序工作原理介绍? 工作方式? 浏览器首先向Web服务器发出请求,Web服务器对请求做出响应,将响应数据发送给客户端浏览器,通常是一个HTML文件,然后通过浏览器把HTML文件信息显示在屏幕上. ...

  8. Linux第一章-目录初识

    一.Linux基本介绍: Linux 是一种自由和开放源码的类 UNIX 操作系统,使用 Linux 内核.目前存在着许多不同的 Linux 发行版,可安装在各种各样的电脑硬件设备,从手机.平板电脑. ...

  9. 第一章,初识C语言

    1.1 C语言起源 1.2 选择C语言的理由 1.3 C语言的应用范围 1.4 计算机能做什么 1.5 高级计算机语言和编译器 1.6 语言标准 c90,c99,c11. 1.7 使用C语言的7个步骤 ...

随机推荐

  1. 1款开源工具,实现自动化升级K3S集群!

    即便你的集群能够平稳运行,Kubernetes升级依旧是一项艰难的任务.由于每3个月Kubernetes会发布一个新版本,所以升级是十分必要的.如果一年内你不升级你的Kubernetes集群,你就会落 ...

  2. Flink相对于Spark的优点

    Flink相对于Spark的优点 容错 Flink 基于两阶段提交实现了精确的一次处理语义. Spark Streaming 只能做到不丢数据,但是有重复. 反压 Flink 在数据传输过程中使用了分 ...

  3. Web服务器-正则表达式-小例子(3.1.2)

    @ 目录 1.邮箱 2.手机号码 关于作者 1.邮箱 import re def main(): email = input("请输入一个邮件地址:") ret = re.matc ...

  4. kali 开启Mysql设置远程连接管理

    环境工具 kali2020.01 192.168.177.137 windows10物理机heidiSQL工具下载地址 https://www.heidisql.com/download.php 开启 ...

  5. feig中调用其他微服务接口无反应

    1.调用微服务时get请求接口中不能使用@RequestBody注解,不然接口调用无反应.post接口中可以使用@RequestBody注解

  6. 内部类和Lambda

    1.1 内部类的基本使用 在一个类中定义一个类.举例:在一个类A的内部定义一个类B,类B就被称为内部类 内部类定义格式 格式&举例: /* 格式:    class 外部类名{   修饰符 c ...

  7. [LeetCode]172. Factorial Trailing Zeroes阶乘尾随0的个数

    所有的0都是有2和45相乘得'到的,而在1-n中,2的个数是比5多的,所以找5的个数就行 但是不要忘了25中包含两个5,125中包含3个5,以此类推 所以在找完1-n中先找5,再找25,再找125.. ...

  8. 在Ubuntu14.04下配置Samba 完成linux和windows之间的文件共享

    在Windows和Linux之间传递文件可以使用Samba服务.下面是安装步骤: 1. 安装Samba. sudo apt-get install samba 2. 修改配置文件 sudo gedit ...

  9. Keil4 uVision软件生成hex文件

    keil4下载地址:http://www.pc6.com/softview/SoftView_236836.html 按图操作即可,注意文件夹选择. 1.选择工程,选择第一个new uvision p ...

  10. WebService的开发手段

    一.WebService的开发手段 目前有关webService的开发手段有2种 1.JDK开发(jdk必须是1.6及以上版本,因为jdk是在1.6版本中引入并支持webservice开发的); 2. ...