kitlau
kitlau

kitlau's blog

dotnet


如何使用 AnduinOS 愉快的开发 .NET

在Linux系统上开发.NET应用时如何兼顾效率与成本?AnduinOS环境下VSCode的插件生态为开发者提供了新的可能性。通过C#插件与OmniSharp的深度整合,开发者可以在轻量级编辑器中获得智能感知、代码导航等核心功能。当C# Dev Kit带来接近Visual Studio的项目管理能力时,其许可证对商业团队的限制却成为隐性成本。Roslynator作为免费替代方案虽功能精简但内核强大,它基于500+分析器的代码优化能力,恰好映射了JetBrains Rider的开源精神与商业边界。XML文档注释生成器和命名空间自动补全等工具,将日常开发中的机械性操作转化为流畅的创作体验。而GitHub Copilot带来的AI编码革命,正在重新定义开发者对代码生产率的认知边界。当开源工具链与商业软件形成微妙平衡,开发者是否正在经历从IDE依赖向插件生态的范式转移?在AnduinOS的桌面环境下,.NET开发者的生产力工具箱究竟应该包含哪些关键组件?这些选择背后的技术考量与商业权衡,或许正是每个开发者都需要思考的命题。你是否也在寻找更高效的开发方式?--Qwen3

.NET C# VSCode AnduinOS dotnet vscode-plugins github-copilot development-environment

一幅漫画解释 .NET 垃圾收集(GC)原理

这篇博客通过一幅漫画生动解析了.NET垃圾收集(GC)机制的核心原理并借此引发对技术深度学习的思考。文章以作者在年三十发布旧文的契机揭示了国内.NET开发领域普遍存在的技术浅层化现象——许多开发者长期停留在增删改查的流水线工作中导致对底层原理的认知缺失。作者通过翻译的漫画图解展示了GC分代回收机制与大对象堆(LOH)的内存管理逻辑并指出dotnet 5新增的POH分代特性可能带来的优化空间。特别值得关注的是文中提到的LOH压缩"解决方案"通过设置GCSettings.LargeObjectHeapCompactionMode参数实现手动干预的启发式策略既暴露了GC机制的复杂性也引发对"手动内存管理是否真的可取"的反思。作者在翻译漫画时保留了原作的直观表达同时通过个人职业观察提出了技术从业者如何突破业务驱动的困境:当我们将性能优化作为突破口时是否应该重新审视基础知识的系统性学习?在GC机制不断演进的当下如何平衡自动内存管理与手动优化的边界?这些问题或许能引导开发者从机械编码转向对技术本质的探索而漫画中那些看似简单的箭头与分区是否暗示着更深层的系统设计哲学?--Qwen3

.NET dotnet garbage collection performance optimization large object heap comic translation

什么是异步?异步就是多线程吗?异步就是 async、await 吗?

本文系统解析了C#异步编程的核心概念与实践方法重点阐述了Task异步任务模型的实现机制通过async/await关键字实现非阻塞操作的底层原理展示了Task.FromResult和Task.CompletedTask创建已完成任务的技巧分析了异步方法调用与await操作的执行时序揭示了不使用async修饰符也能返回Task的实现方式。通过多个代码示例验证了异步方法调用即刻执行的特性说明了await仅用于等待任务完成而非触发执行的逻辑,演示了Task.WhenAll实现多任务并行处理的优化方案,强调了理解异步编程原理对开发实践的重要性。--Qwen3

C# dotnet Async Await Task Parallelism Multithreading Task

彻底理解 ASCII Unicode UTF-8 UTF-32 是什么以及区别与联系

本文系统梳理了计算机字符编码体系中的核心概念与逻辑关系。字素(grapheme)作为人类书写的最小单位,可由多个编码点(code point)构成,而每个编码点需通过特定编码方案(如ASCII、UTF-8、UTF-16)转换为字节序列。ASCII仅支持128个字符且字符代码与编码值一致,而Unicode字符集通过编码点(如👍对应U+1F44D)涵盖全球文字,其编码策略中UTF-8采用1-4字节变长编码,UTF-16固定16位编码。编码方式直接影响数据解析结果——误用ASCII解析UTF-8编码或反之均会导致乱码,且不同编程语言处理字符串长度时因编码策略差异产生矛盾(如C#的UTF-16编码中👍占2长度,Python Unicode字符串中占1长度)。开发者需区分"不可感知Unicode的函数"(按字节处理)与"可感知Unicode的函数"(按编码点处理),在精确场景中进一步采用"可感知字素的函数"。教育体系中需区分"字符集"(如ASCII/Unicode)与"编码方案"(如UTF-8/UTF-16)的层级关系,理解字符代码(code point)到字符编码(byte sequence)的转换过程,避免因编码认知不足引发的字符串处理异常。--Qwen3

dotnet ASCII Unicode UTF 8 Go Programming Language Character Encoding

  • 1