首页 > 其他分享 >渐进式web全栈:blazor web app

渐进式web全栈:blazor web app

时间:2023-12-07 11:23:15浏览次数:28  
标签:web app 分离 渐进式 模式 js 全栈 blazor

前言

本文要说的这种开发模式,这种模式并不是只有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,app,分离,渐进式,模式,js,全栈,blazor
From: https://www.cnblogs.com/jionsoft/p/17880805.html

相关文章

  • 关于uniapp打包APP自定义基座调试,遇到首页同意网络权限后白屏问题
    解决方案:1、在App.vue文件中,onShow生命周期内添加一段代码,检测是否同意使用互联网权限:uni.onNetworkStatusChange(function(res){ console.log('onNetworkStatusChange',res); if(res.isConnected){ setTimeout(()=>{ uni.reLaunch({ url:'/pages/......
  • 将 .NET Aspire AppHost 部署到 Kubernetes 集群
    使用Aspirate可以将Aspire程序部署到Kubernetes集群工具安装dotnettoolinstall-gaspirate--prerelease注意:Aspirate正在开发中,该软件包将作为预览版进行版本控制,--prelease选项将获得最新的预览版。 容器注册中心您将构建为容器的csproj文件(项目)必须至少包含Con......
  • Amazon WorkSpaces 推出 Amazon WorkSpaces Web
    今天,我们宣布全面推出AmazonWorkSpacesWeb。WorkSpacesWeb是我们的最终用户计算套件中的一项新功能,它是一项低成本的完全托管式WorkSpace,专用于辅助基于Web的安全工作负载。WorkSpacesWeb使得客户能够轻松、安全地为其员工提供对内部网站和软件即服务Web应用程序的访......
  • uniapp tabbar权限问题
    在app.vue里添加:exportdefault{//在此处添加一个函数globalData:{//更改tabbar权限reviseTabbarByUserType:function(){//可以写自己的逻辑代码//letusername=uni.getStorageSync('login_user_......
  • Amazon WorkSpaces 现在提供使用 WorkSpaces 流协议(WSP)的 Web Access
    企业一直需要找到相应的方案,以快速让用户从任何地点和任何计算机进行工作,同时保证安全性和生产力。为了使用WorkSpaces流协议(WSP)简化AmazonWorkSpaces的部署,同时无需安装原生的客户端应用程序,用户现在可以在Windows、macOS或Linux计算机上通过受支持的Web浏览器访问A......
  • SharePoint 的 Web Parts 是什么
    WebParts可以说是微软SharePoint的基础组件。根据微软自己的描述,WebParts是SharePoint对内容进行构建的基础,可以想想成一块一块的砖块。我们需要使用这些砖块来完成一个页面的构建。我们可以利用WebParts在SharePoint中添加文本,图片,文件,视频,甚至是动态内容。添加Web......
  • 如何在Web应用中添加一个JavaScript Excel查看器
    前言在现代的Web应用开发中,Excel文件的处理和展示是一项常见的需求。为了提供更好的用户体验和功能,经常需要在Web应用中添加一个JavaScriptExcel查看器,小编今天将为大家展示如何借助葡萄城公司的纯前端表格控件——SpreadJS来创建一个Excel查看器。项目结构本项目将由三个文件......
  • ctfshow-web入门-信息收集
    Web1:​ Ctrl+U或者F12查看页面源代码.Web2:​ JS禁用F12,Ctrl+U查看源代码Web3:​ 前端未泄露,抓包查看返回包发现FlagWeb4:​ robots.txt文件泄露Web5:​ phps源码泄露,phps存放着php源码,可通过尝试访问/index.phps读取,或者尝试扫描工具扫描读取phps即为PHPSource。......
  • 【SpringBootWeb入门-6】请求响应-请求参数-数组集合参数&Json参数&路径参数
    这篇我们接着上一篇的请求参数来讲解另外几个常见参数的接收以及封装:数组集合参数、Json参数、路径参数。数组集合参数1、数组参数:请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数在Postman接口测试新建测试,获取请求数组参数type。然后新建参数处......
  • 如何从Webpack迁移到Vite
    本文将介绍如何将前端web应用程序从Webpack升级到Vite。Vite是最新的前端开发工具,其受欢迎程度和采用率都在大幅增长。可以查看下图中来自npmtrends的下载。推动这一趋势的是Vite核心的一个关键概念:开发人员体验。与Webpack相比,Vite在开发过程中能显著缩短构建时......