让 C# 也拥有 gofmt 般的体验:用 CSharpier + Roslyn 实现 csfmt
C# 代码长到像答辩?用 CSharpier 自动折行,再用 Roslyn 修正 K&R 花括号,Taskfile 一键收尾。再补上 format-check,省得 CI 反复制造 Git diff。两步流水线并非原生 gofmt,顺序和版本仍得老实锁住。
STARBLOG / 技术与日常的文字存档
写下实践中的发现,也留住那些值得回看的想法。
C# 代码长到像答辩?用 CSharpier 自动折行,再用 Roslyn 修正 K&R 花括号,Taskfile 一键收尾。再补上 format-check,省得 CI 反复制造 Git diff。两步流水线并非原生 gofmt,顺序和版本仍得老实锁住。
又一个把Django/Rails那套“约定优于配置”搬进.NET生态的尝试,看着有点意思。预置了认证、队列、定时任务这些破事,省得自己天天重复造轮子。但767个star连个正式release都没有,就敢打着“生产级”旗号?呵,C#全栈爱好者们可以先玩玩,但别指望它能替代ASP.NET Core的体量。
.NET 10 的扩展方法语法糖?哦,用 `extension` 块定义扩展,支持属性和方法了,以前不行,现在行,真稀奇。静态扩展成员?太晚了点,给 `DateTime` 添加静态方法,终于能优雅了。升级吧,不然怎么享受这些新玩具?
Markdig 连文件名带空格的图片都搞不定?这破库还真是极限了。自己动手改改,正则表达式加个开关就完事,顺便吐槽下这框架原始得像块砖。
用C#模拟串口设备?这年头还学这种过时技术?不过行吧,至少比某些只会玩AI的卷王强点。搞搞清楚协议文档,装个破com0com驱动,写点死板代码应付下调试需求。至于什么物联网平台、工业控制?那是别人该干的事,我随便搞搞就够了。
用C#写个PDF目录提取工具?挺有意思,还整什么语义识别,效果真有那么好吗?AOT编译挺香,但别搞得太复杂就行。
C#覆盖率分析?不就是用工具生成报告吗?VSCode、VS、Rider哪个不能干?真当这是啥高科技?
纯C#+AOT打造的ImageGlider,图像处理功能堆得像山,还非得标榜零依赖?ImageSharp封装得倒是挺顺溜,就是不知道这模块化架构能走多远。Web API和CLI工具有点东西,但别指望我夸太离谱。
SharpIco bug修好了?真把自己当回事了,高分辨率图片转ico就崩,这逻辑够清奇。原来是位深度闹的,24转32而已,用点真本事解决?
本文介绍了在Avalonia框架下使用两种图标库(Icon.Avalonia和IconPacks.Avalonia)的详细方法。作者通过对比不同设备间emoji显示不一致的问题,引出使用FontAwesome图标的优势。文章重点讲解了两种库的安装步骤、XAML配置方法及实际应用场景,包括独立图标显示、控件附加、动画效果实现等。其中IconPacks.Avalonia支持35种图标集,功能更为丰富,还提供了图标浏览器工具。全文通过具体代码示例,为开发者提供了实用的技术参考。
SharpIco 是一款纯 C# 实现的跨平台图标生成工具,支持 AOT 编译,无需外部依赖。它能将 PNG 图片分解为多尺寸(16x16至512x512)合成 ICO 图标,并支持图标结构分析。工具提供命令行界面,可通过 dotnet tool 一键安装,并已发布至 NuGet 和 Scoop。项目旨在简化图标生成与验证,追求轻量、纯粹、易集成的使用体验。
本文介绍了作者使用Avalonia框架开发的跨平台文章发布工具StarBlog Publisher,并详细记录了使用AOT(Ahead-Of-Time)技术发布Avalonia应用的过程及遇到的问题。文章讨论了AOT的优缺点、配置方法,并针对JSON序列化、类型注册等问题提供了解决方案。作者分享了使用Newtonsoft.Json库和rd.xml文件等技巧,以优化AOT发布的性能和兼容性。