一、技术简介
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 嵌入到应用启动流程中。
在文件末尾加入以下代码:
- 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(); 之前加入一行:
- var picoAdmin = new PicoAdmin(); // 实例化 PicoAdmin 以启动 PicoServer
复制代码 完整逻辑说明:
- 应用启动时
- 实例化 PicoAdmin
- 内部创建 WebAPIServer
- 添加根路由 /
- 启动 HTTP 服务
4️⃣ 运行测试
先测试 Windows 平台
运行项目后,在浏览器访问:如果页面显示:说明:
✅ MAUI 应用启动成功
✅ PicoServer 已成功嵌入
✅ 本地 HTTP 服务运行正常
三、原理说明
整个流程本质上是:- MAUI 应用启动
- ↓
- 实例化 PicoAdmin
- ↓
- 创建 HttpListener
- ↓
- 监听 127.0.0.1:8090
- ↓
- 处理 HTTP 请求
复制代码 这种模式非常适合:
- 本地设备 API 服务
- 嵌入式后台接口
- 局域网设备通信
- 调试接口
- 本地 Web 控制台
四、总结
通过本示例,我们实现了:
- 在 MAUI 中嵌入轻量级 HTTP 服务器
- 启动本地端口服务
- 添加简单路由
- 浏览器访问测试
这种结构可以扩展为:
- REST API
- JSON 接口
- 本地控制台页面
- 与 WebView 结合形成 Hybrid App
还可以继续扩展成:
- 支持 POST / JSON
- 添加多路由
- 添加静态文件服务
- 或做成设备后台服务框架
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |