MAUI 嵌入式 Web 架构实战(十) 总结篇: App Web Shell 架构:构建跨平台本地应用平台
MAUI 嵌入式 Web 架构实战(十)
App Web Shell 架构:构建跨平台本地应用平台
源码地址
https://github.com/densen2014/MauiPicoAdmin
在前面的系列文章中,我们逐步构建了一套完整的 MAUI + PicoServer 本地 Web 架构:
- 嵌入式 Web Server
- REST API
- Web Admin 管理后台
- WebSocket 实时通信
- 权限系统
- Controller 自动发现
- PWA 离线系统
到这里,我们可以重新审视这个系统。
你会发现:
它已经不仅仅是一个 Web Admin。
它其实是一种新的应用架构:
App Web Shell

一、什么是 App Web Shell
传统应用结构:
Native UI
↓
Native Logic
↓
Database
Web 应用结构:
Browser
↓
Web Server
↓
Database
而 App Web Shell 架构:
Web UI
↓
Local Web Server
↓
Local Services
↓
Database / Device
本质是:
用 Web UI 驱动本地应用。
二、完整系统架构
最终架构如下:
Web UI
│
Service Worker
│
┌────────┴─────────┐
│ │
Cache Storage IndexedDB
│ │
└────────┬─────────┘
│
PicoServer
│
REST API
│
┌────────┴─────────┐
│ │
MAUI Services Plugin APIs
│ │
└────────┬─────────┘
│
SQLite
│
Device
这一架构实现了:
- Web UI
- 本地 API
- 本地数据库
- 离线运行
- 插件扩展
三、为什么选择 Web Shell
传统 App UI 有很多问题:
1 UI 开发成本高
原生 UI:
Android
iOS
Windows
需要三套代码。
Web UI:
HTML
CSS
JS
一套即可。
2 更新困难
原生 App:
发布
审核
更新
Web UI:
刷新页面
即可更新。
3 插件扩展困难
传统 App:
重新编译
重新发布
Web Shell:
新增 API
新增页面
即可扩展。
四、PicoServer 的角色
在整个架构中:
PicoServer 是核心组件。
它承担:
Web Server
API Gateway
Plugin Loader
Local Service Bridge
所有 Web 请求:
Browser
↓
PicoServer
↓
MAUI
五、插件化 API 系统
通过前面的 Controller 自动发现机制:
新增 API 非常简单:
public class ProductController
{
[Route("/api/products")]
public List<Product> GetProducts()
}
系统启动时自动注册:
api.AddRoute(...)
无需修改主程序。
六、PWA 离线能力
通过 Service Worker:
实现:
离线缓存
后台更新
本地数据库
用户体验接近原生 App。
系统可以:
离线浏览商品
离线下单
网络恢复同步
七、WebSocket 实时通信
WebSocket 解决:
实时数据更新
设备状态
日志推送
结构:
Browser
↕
WebSocket
↕
PicoServer
实现实时 UI。
八、App Web Shell 的优势
最终形成的系统具备:
1 跨平台
MAUI:
Windows
Android
iOS
Mac
2 离线运行
PWA:
Service Worker
IndexedDB
Cache Storage
3 高扩展性
插件 API:
Controller
Module
Plugin
4 快速 UI 开发
Web UI:
Vue
React
Alpine
HTMX
任意框架。
九、适用场景
这种架构非常适合:
IoT 设备
设备管理
本地控制
监控面板
商业终端
POS
仓储系统
PDA
工业系统
生产设备
工厂管理
控制系统
本地工具
NAS
下载工具
管理后台
十、架构总结
整个系统最终可以总结为一句话:
App = Web UI + Local API + Local Database
也就是:
Web Shell
↓
Local Server
↓
Local Services
Web 负责:
UI
交互
逻辑
本地负责:
设备
存储
系统能力
系列总结
本系列文章介绍了如何从零构建:
MAUI + PicoServer 本地 Web 应用架构
从基础到完整系统:
Web Server
REST API
Web Admin
WebSocket
Plugin System
PWA Offline
Web Shell
最终形成:
一个跨平台本地应用平台。
项目地址
GitHub
https://github.com/densen2014/MauiPicoAdmin
欢迎 Star ⭐
关联项目
FreeSql QQ群:4336577
BA & Blazor QQ群:795206915
Maui Blazor 中文社区 QQ群:645660665
知识共享许可协议
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名AlexChow(包含链接: https://github.com/densen2014 ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系 。
转载声明
本文来自博客园,作者:周创琳 AlexChow,转载请注明原文链接:https://www.cnblogs.com/densen2014/p/19723142
AlexChow
今日头条 | 博客园 | 知乎 | Gitee | GitHub


浙公网安备 33010602011771号