Maui Blazor 中文社区 QQ群:645660665

MAUI 嵌入式 Web 架构实战(一) 在 MAUI 应用中嵌入 PicoServer 构建本地 HTTP 服务

MAUI 嵌入式 Web 架构实战(一)

在 MAUI 应用中运行 PicoServer 本地 Web 服务

在传统移动或桌面应用中,客户端通常只是 调用远程 API 的消费者
而随着 Hybrid App 与 Web 技术的发展,一种新的架构模式逐渐流行:

在本地应用中嵌入 Web Server。

这样应用本身就可以提供 HTTP 服务,例如:

  • 本地 REST API
  • Web Admin 管理后台
  • WebView Hybrid App
  • 局域网设备控制
  • PWA 离线系统

在 .NET 生态中,我们可以利用 .NET MAUI + PicoServer 实现这一架构。

本系列将通过完整实战,构建一套 MAUI 嵌入式 Web 架构体系

通过这个系列,你将学会:

  • 在 MAUI 中运行本地 Web Server
  • 构建 REST API 框架
  • 开发 Web Admin 管理后台
  • 构建 Hybrid App 架构
  • 实现 PWA 离线系统

本篇作为系列第一篇,将首先完成最基础的一步:

在 MAUI 应用中运行 PicoServer 本地 HTTP 服务。


一、核心架构

在 MAUI 中嵌入 Web Server 后,应用架构会变成:

Browser / WebView
        │
        │ HTTP
        ▼
   PicoServer
        │
   Local REST API
        │
     MAUI App

也就是说:

MAUI 应用不仅是客户端,同时也是一个 Web 服务端。

这种架构的优势非常明显:

优势 说明
跨平台 Windows / Android / iOS
本地 API WebView 直接调用
开发简单 Web 技术构建 UI
扩展性强 可构建完整 Web Admin

后续章节中,我们会逐步扩展这一架构。


二、技术简介

1 .NET MAUI

MAUI PicoServer 本地 Web Server 架构

.NET MAUI(Multi-platform App UI)是微软推出的跨平台应用开发框架,用于构建:

  • Windows
  • Android
  • iOS
  • macOS

应用程序。

开发者可以使用:

  • C#
  • XAML

构建跨平台 UI,并共享大量业务代码。

.NET MAUI 的核心特点包括:

  • 单一项目结构,多平台编译
  • 原生性能
  • 深度整合 .NET 生态
  • 支持 WebView / Blazor / ASP.NET Core

官网:

https://dotnet.microsoft.com/en-us/apps/maui


PicoServer

MAUI PicoServer 本地 Web Server 架构

PicoServer 是一个基于 .NET 的轻量级嵌入式 Web 服务器组件。

它的设计目标是:

在应用程序内部快速启动 HTTP 服务。

PicoServer 基于 HttpListener 实现,具有以下特点:

  • 轻量级嵌入式 Web Server
  • 支持 HTTP 路由映射
  • 适合本地 API
  • 支持 Web Admin
  • 支持局域网访问

典型应用场景包括:

  • 本地设备控制接口
  • Web 管理后台
  • Hybrid App API
  • 调试接口

官网:

https://picoserver.cn


三、在 MAUI 中嵌入 PicoServer

下面我们通过一个简单示例,演示如何在 MAUI 应用中运行 PicoServer。

配套源码:

https://github.com/densen2014/MauiPicoAdmin


四、创建 MAUI 项目

首先创建一个标准 MAUI 项目。

在 Visual Studio 中:

File
 → New Project
 → .NET MAUI App

创建后会得到一个默认示例页面。

示例页面如下:

MAUI PicoServer 本地 Web Server 架构


五、安装 PicoServer

接下来通过 NuGet 安装 PicoServer。

操作步骤:

1 右键项目
2 管理 NuGet 包
3 搜索 PicoServer
4 点击安装

MAUI PicoServer 本地 Web Server 架构



六、启动 PicoServer

接下来我们在应用启动时运行 PicoServer。

打开文件:

MauiProgram.cs

MauiApp.CreateBuilder() 之前加入:

var picoAdmin = new PicoAdmin();

这样在应用启动时就会运行 PicoServer。


七、创建 PicoServer 服务

接下来创建一个简单的服务器类:

public class PicoAdmin
{
    private readonly WebAPIServer MyAPI = new WebAPIServer();

    public PicoAdmin()
    {
        MyAPI.AddRoute("/", Hello);
        MyAPI.StartServer();
    }

    private async Task Hello(HttpListenerRequest request, HttpListenerResponse response)
    {
        await response.WriteAsync("Hello PicoServer");
    }
}

代码逻辑非常简单:

步骤 说明
创建服务器 WebAPIServer
添加路由 /
处理请求 Hello()
启动服务 StartServer()

八、运行测试

首先运行 Windows 平台

启动程序后,在浏览器访问:

http://127.0.0.1:8090

如果页面显示:

Hello PicoServer

说明:

  • MAUI 应用启动成功
  • PicoServer 已成功运行
  • 本地 HTTP 服务工作正常

九、移动平台运行

该示例不仅可以运行在 Windows。

同样可以运行在:

  • Android
  • iOS
  • macOS

在 Android 或 iOS 上运行后,可以通过:

http://设备IP:8090

iOS

MAUI PicoServer 本地 Web Server 架构

Android

MAUI PicoServer 本地 Web Server 架构

MAUI PicoServer 本地 Web Server 架构



十、运行原理

整个运行流程如下:

MAUI App Start
        │
        ▼
   PicoAdmin
        │
        ▼
   PicoServer
        │
        ▼
 HttpListener
        │
        ▼
   HTTP Request

也就是说:

MAUI 应用在启动时同时启动了一个本地 Web Server。

之后所有 HTTP 请求都会由 PicoServer 处理。


十一、总结

通过本篇内容,我们完成了一个关键步骤:

在 MAUI 应用中嵌入 PicoServer Web 服务。

实现内容包括:

  • 在 MAUI 中运行 HTTP Server
  • 添加简单路由
  • 浏览器访问本地 API
  • 跨平台运行测试

虽然这个示例非常简单,但它为整个系列打下了基础。

在后续文章中,我们将继续扩展 PicoServer 的能力:

  • 构建 REST API
  • 设计可扩展 API 架构
  • 实现静态文件服务器
  • 开发 Web Admin 管理后台

在下一篇文章中,我们将继续深入 PicoServer 的核心能力:

PicoServer 路由机制与 API 设计。

并构建第一个真正可用的 API 接口。

关键词:
.NET MAUI
PicoServer
MAUI Web Server
MAUI HTTP API
嵌入式 Web Server
MAUI Web Admin

posted @ 2026-03-05 07:39  AlexChow  阅读(137)  评论(0)    收藏  举报