为啥弄个 PicoBox
PicoBox 是一个完全基于AI 生成网页这个特定场景设计的小项目。采用 C# + PicoServer 开发,代码量非常少,加上注释总共只有51行。其实也可以和模版引擎搭配,来做轻量博客系统。
namespacePicoBox{usingPicoServer;internalclassProgram{//核心:创建一个全局的 WebAPIServer 实例staticreadonlyWebAPIServerMyAPI=new();staticvoidMain(string[]args){//绘制一个简约的PicoBox控制台界面Console.Title="PicoBox";Console.ForegroundColor=ConsoleColor.Green;Console.WriteLine("╔═════════════════════════════════╗");Console.WriteLine("║ PicoBox 已启动 ║");Console.WriteLine("║ 人人可用的 AI 网页托管工具 ║");Console.WriteLine("║ 开源免费 ║");Console.WriteLine("╚═════════════════════════════════╝");Console.ResetColor();//输出访问地址MyAPI.GetLocalIPAddresses().ForEach(ip=>Console.WriteLine($" 访问地址: http://{ip}:8090"));//初始化 html 目录和文件if(!Directory.Exists("www"))Directory.CreateDirectory("www");if(!File.Exists("data"))File.WriteAllText("data","hello PicoBox!");//添加静态文件服务MyAPI.AddStaticFiles("/","www");//添加一个数据API接口MyAPI.AddRoute("/api/data",async(req,resp)=>{switch(req.HttpMethod){case"GET"://返回data文件内容awaitresp.SendFileAsync("data");break;case"POST"://保存请求体到data文件awaitreq.SaveFileAsync("data");//返回okawaitresp.WriteAsync("ok");break;default://不支持其他方法resp.StatusCode=405;awaitresp.WriteAsync("error");break;}});//启动服务器MyAPI.StartServer();Thread.Sleep(Timeout.Infinite);}}}现在 AI 生成网页已经非常简单,哪怕是非技术办公人员,也能快速生成页面。抛开个性化样式不谈,基本人人都能借助 AI 快速制作网页。但问题也很明显:AI 生成的网页只能本地打开,只能自己查看,完全自娱自乐,没办法共享给团队、在内网使用。
当下浏览器能力、Web 生态已经非常强大,在 AI 时代,怎么让普通商务、办公人员,也能低成本产出简单实用的内部 Web 应用?PicoBox 就是尝试为这个问题做一个解决方案。
内置 PicoServer 静态文件托管,直接一键托管 AI 生成的网页。和 Nginx 这类重型服务不同,PicoBox 原生预留了两个极简 API:一个用来储存数据,一个用来获取数据。
不限制数据类型,文本、JSON、图片、任意二进制文件都能直接存取,灵活度很高,足够满足日常小型业务、内部简单交互需求。
如今 .NET AOT 技术已经非常成熟,C# 开发不再局限于服务端、桌面、移动端。我们 C# 开发者,还可以轻松做嵌入式 Linux 开发、低配置边缘设备开发,哪怕是 64MB 小内存的嵌入式设备,也能流畅运行这类轻量服务。
日常工作中,不管是给公司、团队、同事写小工具、内部辅助服务,还是结合 AI 做轻量化配套应用,都有了更多落地方式。
这篇文章只是抛砖引玉,用一个几十行的极简 Demo,
给大家拓展一下 C# + PicoServer 轻量化开发、嵌入式下沉的开发思路。
PicoBox 开源地址
GitHub:https://github.com/benyuz/PicoBox
Gitee:https://gitee.com/jzy168/PicoBox
扩展:PicoServer 是什么?
如果你对 PicoServer 感兴趣可以看看我对他的深度挖掘文章
零依赖高性能跨平台 Web 胶水库 PicoServer :https://www.cnblogs.com/juziyu/p/19948369