PicoServer 跨平台 Web 架构实战系列 (一) MAUI 中嵌入 PicoServer 入门

一、技术简介

ASP.NET Core / .NET MAUI

.NET MAUI(Multi-platform App UI) 是微软推出的跨平台应用开发框架,基于 .NET 生态构建,支持使用 C# + XAML 开发:

  • Windows
  • Android
  • iOS
  • macOS

它的特点是:

  • ✅ 单一项目结构,多平台编译
  • ✅ 共享 UI 与业务代码
  • ✅ 深度集成 .NET 生态(依赖注入、日志、配置等)
  • ✅ 可与 Blazor、ASP.NET Core 无缝整合

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


PicoServer

PicoServer 是一个基于 .NET 的轻量级 Web 服务器组件,适合嵌入到桌面或移动应用中,用于快速搭建本地 HTTP 服务。

特点包括:

  • ✅ 轻量级嵌入式 Web 服务器
  • ✅ 基于 HttpListener
  • ✅ 支持路由映射
  • ✅ 适合本地 API、设备通信、调试接口等场景

官网:
https://picoserver.cn


二、在 MAUI 中嵌入 PicoServer 实战示例

配套源码 https://github.com/densen2014/MauiPicoAdmin

下面演示如何在 MAUI 应用中嵌入 PicoServer,并运行一个本地 HTTP 服务。


1️⃣ 建立 MAUI 工程(包含示例页)

创建一个标准的 MAUI 项目(带默认示例页面即可)。

可使用 Visual Studio 新建 ".NET MAUI App" 项目

示例页面如下:


2️⃣ 安装 PicoServer 包

通过 NuGet 安装 PicoServer。

操作步骤:

  • 右键项目
  • 管理 NuGet 包
  • 搜索 PicoServer
  • 安装

3️⃣ 编辑 MauiProgram.cs

我们将 PicoServer 嵌入到应用启动流程中。

在文件末尾加入以下代码:

csharp 复制代码
public class PicoAdmin
{
    private readonly WebAPIServer MyAPI = new WebAPIServer(); // 实例化PicoServer

    public PicoAdmin()
    {
        MyAPI.AddRoute("/", Hello); // 添加根路由映射
        MyAPI.StartServer();        // 启动服务器
    }

    // 根路由映射的方法
    private async Task Hello(HttpListenerRequest request, HttpListenerResponse response)
    {
        await response.WriteAsync("Hello PicoServer");
    }
}

然后在 var builder = MauiApp.CreateBuilder(); 之前加入一行:

csharp 复制代码
var picoAdmin = new PicoAdmin(); // 实例化 PicoAdmin 以启动 PicoServer

完整逻辑说明:

  • 应用启动时
  • 实例化 PicoAdmin
  • 内部创建 WebAPIServer
  • 添加根路由 /
  • 启动 HTTP 服务

4️⃣ 运行测试

先测试 Windows 平台

运行项目后,在浏览器访问:

复制代码
http://127.0.0.1:8090

如果页面显示:

复制代码
Hello PicoServer

说明:

✅ MAUI 应用启动成功

✅ PicoServer 已成功嵌入

✅ 本地 HTTP 服务运行正常

在macOS下运行到iPhone

在运行到Android


三、原理说明

整个流程本质上是:

复制代码
MAUI 应用启动
        ↓
实例化 PicoAdmin
        ↓
创建 HttpListener
        ↓
监听 127.0.0.1:8090
        ↓
处理 HTTP 请求

这种模式非常适合:

  • 本地设备 API 服务
  • 嵌入式后台接口
  • 局域网设备通信
  • 调试接口
  • 本地 Web 控制台

四、总结

通过本示例,我们实现了:

  • 在 MAUI 中嵌入轻量级 HTTP 服务器
  • 启动本地端口服务
  • 添加简单路由
  • 浏览器访问测试

这种结构可以扩展为:

  • REST API
  • JSON 接口
  • 本地控制台页面
  • 与 WebView 结合形成 Hybrid App

还可以继续扩展成:

  • 支持 POST / JSON
  • 添加多路由
  • 添加静态文件服务
  • 或做成设备后台服务框架