前言

本文要说的这种开发模式,这种模式并不是只有blazor支持,js中有一样的方案next.js nuxt.js;blazor还有很多其它内容,本文近关注渐进式开发模式。

是的,前后端是主流,不过以下情况也许前后端分离并不是最好的选择:

  • 小公司,人员不多,利润不高,创业阶段能省则省
  • 个人开发者,接接私活,要么一个人全栈,累点;要么弄个小团队,各自分钱少点;
  • 不确定项目能做到啥程度,希望快速上线看效果,效果好继续,效果不好拉倒
  • 厌烦写js,又不得不做bs界面

诸如此类,不分离开发更简单,更省成本。

渐进式

vue是渐进式web前端框架,所谓的渐进式就是你不用一开始就整个项目全部使用vue,因为开始你可能并不熟悉vue,而是开始只使用vue的些简单功能,慢慢用它更复杂更好的功能,最终项目可能完全使用vue。

渐进式blazor不是官方名词,我随便喊的,它的意思是你不必一开始就使用前后端分离模式,而是用不分离模式简单的、快速开发、快速交付,后期如果用户量大了,你可以把一个或几个页面或组件变成分离模式,逐渐的变,最终可能把整个项目变成分离模式。俗话说:你可能还在画原型,而我的产品就是原型。

blazor是使用c#代替js写前端的web框架,它有如下几种渲染模式:

  1. 静态渲染:也称ssr,类似jsp、php、asp,由后端渲染静态html,所以你可以拿blazor来做普通网站,
  2. 服务端渲染:也称server模式,它还是在服务端执行代码,服务端和浏览器会建立一个websocket长连接,前端做了啥操作,消息发到服务器,服务器处理后计算需要改变的ui部分,推送给前端。
  3. 客户端渲染:也称assembly模式,首次访问时,下载dll到浏览器,可以aot发布为原生的webassembly运行,也可以在浏览器的webassembly中跑个小型.net运行时,在它之上跑我们的应用,所以可以理解它是纯前端
  4. auto模式:也称为同构渲染,首次访问以server模式运行,快速响应,且用户可以做任何操作;后台默默下载dll和运行时,之后自动切换为客户端模式,js中有类似的next.js nuxt.js。

.net8以前我们要么选择server模式,要么选择webassembly模式,只能二选难一,前者由于所有代码都在服务端,所以比较耗费服务器资源,但开发简单;后者是标准的前后端分离,不浪费服务器资源,但相对开发麻烦些。
.net8发布后,以前的mvc razorpage blazor server blazo webassembly都可以不用了,只需要创建blazor web app,至于使用哪种模式可以根据需要设置。

blazor的组件开发模式类似:vue组件、winform/webform的用户控件或自定义控件,更详细的请参考官方文档。

来了个单,按照惯例使用前后端分离方式

当然你可以使用其它方案,比如典型的:java提供api + vue前端,下图是blazor前后端分离方式,webapi提供接口 + blazor做前端,本质都一样

又来个单,为了简单,用不分离

你可以用php jsp asp等类似的方式,下图是blazor server方式,这个不太一样,blazor server是基于websocket实现交互的组件化开发方式。但总的来说是不分离方式。

用户量多了,不分离模式扛不住,渐进式分离

blazor的auto模式就是类似的模式。用户量大了原来的服务端渲染内存 cpu 都有巨大压力,那我们需要大重构成分离模式吗?no no no,你可以先把某个复杂的、访问频繁的、计算量大的、占用内存高的组件设置为auto模式,这样它最终会运行在客户端,就成了分离模式,又多了段时间,用户量更多了,你就继续改一部分组件,如此这般,用户越来越多,作为分离模式运行的组件越来越多,最终项目可能就变成纯纯的分离模式了。

反过来说,项目用了一段时间,没啥用户,项目死了,起码你前期投入并不多,不必太桑心。

渐进式web全栈:blazor web app的更多相关文章

  1. 《web全栈工程师的自我修养》读书笔记

    有幸读了yuguo<web全栈工程师的自我修养>,颇有收获,故在此对读到的内容加以整理,方便指导,同时再回顾一遍书中的内容. 概览 整本书叙述的是作者的成长经历,通过经验的分享,给新人或者 ...

  2. 基于LeanCloud云引擎的Web全栈方案

    LeanEngine-Full-Stack The FULL STACK DEVELOPER 复杂的项目, 协作分工, 自动化流程,代码组织结构,框架选择,国际化方案等 Generator 或者See ...

  3. Web全栈工程师修养

    全栈工程师现在是个很热的话题,如何定义全栈工程师?在著名的问答网站Quora上有人提出了这个问题,其中一个获得了高票的回答是: 全栈工程师是指,一个能处理数据库.服务器.系统工程和客户端的所有工作的工 ...

  4. Web 全栈大会:万维网之父的数据主权革命

    大家好,今天我和大家分享一下由万维网之父发起的一场数据主权革命.什么叫数据主权?很容易理解,现在我们的数据是把持在巨头手里的,你的微信通讯录和聊天记录都无法导出,不管是从人权角度还是从法理角度,这些数 ...

  5. 《web全栈工程师的自我修养》阅读笔记

    在买之前以为这本书是教你怎么去做一个web全栈工程师,以及介绍需要掌握的哪些技术的书,然而看的过程中才发现,是一本方法论的书.读起来的感觉有点像红衣教主的<我的互联网方法论>,以一些自己的 ...

  6. web性能优化 来自《web全栈工程师的自我修养》

    最近在看<web全栈工程师的自我修养>一书,作者是来自腾讯的前端工程师.作者在做招聘前端的时候问应聘者web新能优化有什么了解和经验,应聘者思索后回答“在发布项目之前压缩css和 Java ...

  7. 处女作《Web全栈开发进阶之路》出版了!

    书中源码下载地址:https://github.com/qinggee/WebAdvanced 01. 当初决定写博客的原因非常的纯洁:只要每个月写上 4 篇以上博客,月底的绩效奖金就多 500 块. ...

  8. 2020 Web 全栈面经

    2020 Web 全栈面经 1.简历 2. 技术 3. 项目 4. 架构 5. 沟通,协作 6.成长 7. 面试技巧 准备 电话确认,面试流程,五险一金缴纳情况 有无笔试,几轮,面试时间,答复时间 细 ...

  9. Web 全栈开发 MySQL 面试题

    Web 全栈开发 MySQL 面试题 MySQL MySQL 读写分离 读写分离原理 MySQL的主从复制和MySQL的读写分离两者有着紧密联系,首先部署主从复制,只有主从复制完了,才能在此基础上进行 ...

  10. Web 全栈开发 Redis 面试题

    Web 全栈开发 Redis 面试题 Redis 大 key 问题 https://www.cnblogs.com/xgqfrms/p/13601959.html Redis 数据结构 Redis 初 ...

随机推荐

  1. 产品代码都给你看了,可别再说不会DDD(三):战略设计

    这是一个讲解DDD落地的文章系列,作者是<实现领域驱动设计>的译者滕云.本文章系列以一个真实的并已成功上线的软件项目--码如云(https://www.mryqr.com)为例,系统性地讲 ...

  2. shell编程之存储读写测试实战脚本

    Shell编程是一种在命令行环境中编写程序的技术,常用于Linux和Unix系统.它主要使用Shell脚本语言来编写程序.Shell编程常用于系统管理.自动化任务.批处理等领域. 常用的Shell脚本 ...

  3. ETL之apache hop系列1-ETL概念与hop简介

    ETL 简单介绍 ETL概念 ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract).转换(transform).加载(load)至目的端的 ...

  4. 多重断言插件之pytest-assume的简单使用

    背景: pytest-assume是Pytest框架的一个扩展,它允许在单个测试用例中多次断言.通常情况下,当一个断言失败时,测试会立即停止执行,而pytest-assume允许我 们继续执行剩余的断 ...

  5. Graphviz入门

    Graphviz可以用于状态机图的绘制 要绘制一张状态图,我们需要两个图形元素 结点,边 结点和边都有自己的属性 结点可以是圆.矩形.填充 边有粗细

  6. BZ全景可视化编辑器 (KRPano可视化编辑器, 无需编写任何代码制作全景漫游)

    软件简介 BZ全景编辑器是一款KRPano全景可视化编辑工具,下载安装即可使用,无需拥有任何KRPano代码基础,便可以制作生成精美的全景漫游作品. 官方网站: 点击进入官方网站 最新版软件下载地址: ...

  7. 解锁Java面试中的锁:深入了解不同类型的锁和它们的用途

    简介 多线程编程在现代软件开发中扮演着至关重要的角色.它使我们能够有效地利用多核处理器和提高应用程序的性能.然而,多线程编程也伴随着一系列挑战,其中最重要的之一就是处理共享资源的线程安全性.在这个领域 ...

  8. chatgpt镜像站汇总 - 聚合GPT【即时更新】

    自荐下由我开发的聚合GPT网站,这边的GPT镜像站均为免费.无登录.无次数限制的!会及时剔除失效.添加可用地址[欢迎STAR.PR] 地址:https://ele-cat.gitee.io/comp- ...

  9. Frog 3 题解

    Frog 3 题目大意 题意都这么明确了还要这个干什么. 存在 \(n\) 个点,每个点有一个属性 \(h_i\),\(h_i\) 单增,从点 \(i\) 移动到点 \(j(j>i)\) 的代价 ...

  10. 如何用CAN-EYE获取植被参数数据?

      本文介绍植被冠层参数计算软件CAN-EYE的具体使用方法.   在文章下载.安装CAN-EYE植被参数工具中,我们介绍了CAN-EYE软件的下载.安装方法:本文就对该软件的具体使用方法进行介绍. ...