<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Dotnet9的专栏]]></title><description><![CDATA[时间如流水，只能流去不流回！站长乐于分享dotnet相关技术，比如Winform、WPF、ASP.NET Core等，亦有C++桌面相关的Qt Quick和Qt Widgets等，只分享自己熟悉的、自己会的。]]></description><link>https://blog.youkuaiyun.com/HenryMoore</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; HenryMoore]]></copyright><item><title><![CDATA[Avalonia使用XML文件实现国际化]]></title><link>https://blog.youkuaiyun.com/HenryMoore/article/details/144601656</link><guid>https://blog.youkuaiyun.com/HenryMoore/article/details/144601656</guid><author>HenryMoore</author><pubDate>Fri, 20 Dec 2024 09:32:52 +0800</pubDate><description><![CDATA[本文深入探讨了 Avalonia 使用 XML 文件实现国际化的方法与优势。通过与 Resx 资源文件对比，为开发者提供了选择依据。XML 实现国际化适用于有用户侧修改需求、期望借助 AI 编辑且追求清晰语言结构管理的场景。文中详细介绍了从创建语言文件、强类型生成到具体使用以及语言管理的整套流程，并提供了相关资源链接，如 XML 语言管理包、案例 Demo 及语言管理工具、Resx 资源管理扩展等，有助于开发者快速上手并在实际项目中应用该国际化方案，提升 Avalonia 应用的全球化适配能力与用户体验。]]></description><category></category></item><item><title><![CDATA[Avalonia 国际化之路：Resx 资源文件的深度应用与探索]]></title><link>https://blog.youkuaiyun.com/HenryMoore/article/details/144601592</link><guid>https://blog.youkuaiyun.com/HenryMoore/article/details/144601592</guid><author>HenryMoore</author><pubDate>Fri, 20 Dec 2024 09:31:52 +0800</pubDate><description><![CDATA[在当今全球化的软件开发浪潮中，应用的国际化（i18n）与本地化（L10n）显得尤为重要。Avalonia UI 作为一款强大的跨平台 UI 框架，为开发者提供了多种实现国际化的途径。其中，使用传统的 Resx 资源文件进行国际化处理，不仅兼容了原 Winform、WPF、ASP.NET Core 等开发场景下的使用习惯，还借助一些实用工具和特定的开发流程，让国际化的实现变得高效且有条理。]]></description><category></category></item><item><title><![CDATA[我的博客网站为什么又回归Blazor了]]></title><link>https://blog.youkuaiyun.com/HenryMoore/article/details/143607639</link><guid>https://blog.youkuaiyun.com/HenryMoore/article/details/143607639</guid><author>HenryMoore</author><pubDate>Thu, 07 Nov 2024 21:03:26 +0800</pubDate><description><![CDATA[另外，VleaStwo大佬开了一个Masa Blazor分支，欢迎有兴趣的朋友前来 PR 或交流：本站源码(Ant Design风格)：https://github.com/dotnet9/codewfVleaStwo大佬分支(Masa Blazor风格)：https://github.com/VleaStwo/CodeWF。]]></description><category></category></item><item><title><![CDATA[AOT使用经验总结]]></title><link>https://blog.youkuaiyun.com/HenryMoore/article/details/143558359</link><guid>https://blog.youkuaiyun.com/HenryMoore/article/details/143558359</guid><author>HenryMoore</author><pubDate>Wed, 06 Nov 2024 09:21:26 +0800</pubDate><description><![CDATA[AOT 发布测试虽然过程中可能会遇到诸多问题，但通过及时的测试和正确的配置调整，最终能够实现项目的顺利发布。希望以上总结的经验能对大家在 AOT 使用过程中有所帮助，让大家在开发过程中少走弯路，提高项目的开发效率和质量。同时，也期待大家在实践中不断探索和总结，共同推动技术的进步和发展。]]></description><category></category></item><item><title><![CDATA[Avalonia开源控件库强力推荐-Semi.Avalonia]]></title><link>https://blog.youkuaiyun.com/HenryMoore/article/details/143499877</link><guid>https://blog.youkuaiyun.com/HenryMoore/article/details/143499877</guid><author>HenryMoore</author><pubDate>Tue, 05 Nov 2024 09:14:41 +0800</pubDate><description><![CDATA[搭配同样遵循 MIT 协议的Ursa.Avalonia自定义控件库，更是如虎添翼。它们携手为开发者缔造全新的视觉与功能体验，仿佛为开发之旅开启了一扇通往无限可能的大门。仓库地址：https://github.com/irihitech/Ursa.Avalonia。]]></description><category></category></item><item><title><![CDATA[.NET 9 AOT的突破 - 支持老旧Win7与XP环境]]></title><link>https://blog.youkuaiyun.com/HenryMoore/article/details/143422652</link><guid>https://blog.youkuaiyun.com/HenryMoore/article/details/143422652</guid><author>HenryMoore</author><pubDate>Fri, 01 Nov 2024 09:01:39 +0800</pubDate><description><![CDATA[NET 9 的 AOT 支持无疑拓宽了.NET 生态的应用范围，为那些需要在老旧平台上运行高性能应用的开发者提供了强大的工具。随着技术的发展，我们期待未来更多的.NET 版本能够进一步打破界限，让编程变得更加灵活和高效。GSD及M$達分享的这个好消息，大石头这篇文章《各版本操作系统对.NET 支持情况》推荐大家阅读：https://newlifex.com/tech/os_net参考AOT项目：https://github.com/dotnet9/CodeWF.Toolbox技术交流。]]></description><category></category></item><item><title><![CDATA[C#使用Socket实现分布式事件总线，不依赖第三方MQ]]></title><link>https://blog.youkuaiyun.com/HenryMoore/article/details/143319138</link><guid>https://blog.youkuaiyun.com/HenryMoore/article/details/143319138</guid><author>HenryMoore</author><pubDate>Tue, 29 Oct 2024 08:55:17 +0800</pubDate><description><![CDATA[是一个轻量级的、基于 Socket 的分布式事件总线系统，旨在简化分布式架构中的事件通信。它允许进程之间通过发布/订阅模式进行通信，无需依赖外部消息队列服务。]]></description><category></category></item><item><title><![CDATA[AvaloniaUI项目离线开发全攻略：IDE安装、模板应用与NuGet私有化部署一站式解决]]></title><link>https://blog.youkuaiyun.com/HenryMoore/article/details/143314262</link><guid>https://blog.youkuaiyun.com/HenryMoore/article/details/143314262</guid><author>HenryMoore</author><pubDate>Mon, 28 Oct 2024 21:33:38 +0800</pubDate><description><![CDATA[本文介绍了如何在本地网络环境中成功安装并配置AvaloniaUI所需的开发工具和模板，以及如何部署私有NuGet服务并制作及上传NuGet包以便团队内部成员之间共享和管理NuGet包。希望这些信息能对您的AvaloniaUI项目开发有所帮助。如有其他问题，欢迎随时向我提问。]]></description><category></category></item><item><title><![CDATA[C#与Java]]></title><link>https://blog.youkuaiyun.com/HenryMoore/article/details/143313947</link><guid>https://blog.youkuaiyun.com/HenryMoore/article/details/143313947</guid><author>HenryMoore</author><pubDate>Mon, 28 Oct 2024 21:25:52 +0800</pubDate><description><![CDATA[在动态且不断发展的软件开发世界中，Java 和 C# 是两个巨头，每个都有自己独特的优势、理念和生态系统。本文深入比较了 Java 和 C#，探讨了它们的历史背景、语言特性、性能指标、跨平台功能等。]]></description><category></category></item><item><title><![CDATA[CodeWF.EventBus：轻量级事件总线，让通信更流畅]]></title><link>https://blog.youkuaiyun.com/HenryMoore/article/details/139574368</link><guid>https://blog.youkuaiyun.com/HenryMoore/article/details/139574368</guid><author>HenryMoore</author><pubDate>Mon, 10 Jun 2024 10:57:27 +0800</pubDate><description><![CDATA[CodeWF.EventBus，一款灵活的事件总线库，实现模块间解耦通信。支持多种.NET项目类型，如WPF、WinForms、ASP.NET Core等。采用简洁设计，轻松实现事件的发布与订阅。通过有序的消息处理，确保事件得到妥善处理。简化您的代码，提升系统可维护性。立即体验CodeWF.EventBus，让事件处理更加高效！MediatR。]]></description><category></category></item><item><title><![CDATA[在Avalonia项目中使用MediatR和MS.DI库实现事件驱动通信]]></title><link>https://blog.youkuaiyun.com/HenryMoore/article/details/136429059</link><guid>https://blog.youkuaiyun.com/HenryMoore/article/details/136429059</guid><author>HenryMoore</author><pubDate>Sun, 03 Mar 2024 12:10:18 +0800</pubDate><description><![CDATA[站长开发工具做了在线版(https://blazor.dotnet9.com)，也做了跨平台桌面版本（AvaloniaUI），两个版本使用MediatR可以复用大部分事件代码。]]></description><category></category></item><item><title><![CDATA[FluentValidation在C# WPF中的应用]]></title><link>https://blog.youkuaiyun.com/HenryMoore/article/details/135837079</link><guid>https://blog.youkuaiyun.com/HenryMoore/article/details/135837079</guid><author>HenryMoore</author><pubDate>Thu, 25 Jan 2024 09:50:50 +0800</pubDate><description><![CDATA[1. 引言
在.NET开发领域，FluentValidation以其优雅、易扩展的特性成为开发者进行属性验证的首选工具。它不仅适用于Web开发，如MVC、Web API和ASP.NET CORE，同样也能完美集成在WPF应用程序中，提供强大的数据验证功能。本文将深入探讨如何在C# WPF项目中运用FluentValidation进行属性验证，并展示如何通过MVVM模式实现这一功能。
2. 功能概览
我们的目标是构建一个WPF应用程序，它能够通过FluentValidation实现以下验证功能：

验证Vie]]></description><category></category></item><item><title><![CDATA[Dotnet工具箱：开源、免费的纯前端工具网站，带你探索10大工具分类和73个实时在线小工具]]></title><link>https://blog.youkuaiyun.com/HenryMoore/article/details/133970009</link><guid>https://blog.youkuaiyun.com/HenryMoore/article/details/133970009</guid><author>HenryMoore</author><pubDate>Sun, 22 Oct 2023 10:17:32 +0800</pubDate><description><![CDATA[大家好，我是沙漠尽头的狼。Dotnet工具箱是一个纯前端的、开源和免费的工具网站，周末我参考了开源项目it-tools，对网站界面文字进行了汉化，并重新部署了网站。该网站共有10大工具分类，提供了73个实时在线小工具。使用Vue3开发的Dotnet工具箱具有独特的特色，本文详细介绍了其中一些特色工具，并简单分享了如何部署自己的工具网站。如果你对工具网站感兴趣，不妨来了解一下Dotnet工具箱吧！Dotnet工具箱已有工具如下：关于Dotnet工具箱和it-tools项目。]]></description><category></category></item><item><title><![CDATA[模拟.NET应用场景，综合应用反编译、第三方库调试、拦截、一库多版本兼容方案]]></title><link>https://blog.youkuaiyun.com/HenryMoore/article/details/133325787</link><guid>https://blog.youkuaiyun.com/HenryMoore/article/details/133325787</guid><author>HenryMoore</author><pubDate>Tue, 26 Sep 2023 23:16:58 +0800</pubDate><description><![CDATA[技术的存在即合理，关键在于如何使用。在前面的文章中，有读者留言：Lib.Harmony似乎不是一个正经的库，有什么合法的场景需要使用它吗？非常正经。当你使用一个第三方库，并且确定了版本并已经上线，有时候不能随意升级第三方库，因为可能存在潜在的风险。这时，你只能修改自己的代码，而不动第三方库。还有读者说得很有道理：这个工具非常强大，但有时也很可怕。既然读者有疑问，所以我写了这篇文章，尽量模拟一个看起来比较实际的应用场景。你可以跟着做一做，看看这个工具到底是不是正经的。本文提供了详细的手把手教程。]]></description><category></category></item><item><title><![CDATA[拦截|篡改|伪造.NET类库中不限于public的类和方法]]></title><link>https://blog.youkuaiyun.com/HenryMoore/article/details/133217392</link><guid>https://blog.youkuaiyun.com/HenryMoore/article/details/133217392</guid><author>HenryMoore</author><pubDate>Sat, 23 Sep 2023 20:47:19 +0800</pubDate><description><![CDATA[方法拦截是指在方法被调用之前或之后，通过插入自定义的代码来修改方法的行为。通过方法拦截，开发人员可以在不修改原始代码的情况下，对方法的输入参数进行验证、修改方法的返回值、记录方法的调用日志等操作。本文使用库实现第三方库方法的拦截，关于该库站长写过[快学会这个技能-.NET API拦截技法](快学会这个技能-.NET API拦截技法 - Dotnet9)一文，大家可以再看看，但该篇文章未介绍非public类及方法如何拦截，本文会有所补充反过来。技术交流加群请添加站长微信号：dotnet9com使用。]]></description><category></category></item><item><title><![CDATA[如何在没有第三方.NET库源码的情况，调试第三库代码？]]></title><link>https://blog.youkuaiyun.com/HenryMoore/article/details/133187041</link><guid>https://blog.youkuaiyun.com/HenryMoore/article/details/133187041</guid><author>HenryMoore</author><pubDate>Fri, 22 Sep 2023 21:34:40 +0800</pubDate><description><![CDATA[技术交流加群请添加站长微信号：dotnet9com《神器如 dnSpy，无需源码也能修改 .NET 程序》。对了，示例程序中奇偶数判断不对，我又没代码我想纠正怎么办？解决这个问题，上面大佬的文章您可以拜读了，下一篇站长继续讲解第三方库拦截，能实现不修改第三方库达到修改方法逻辑和返回结果的效果，可以提前预习快学会这个技能-.NET API拦截技法，当然下一篇会有新知识点：非公有类非公有方法拦截技法。]]></description><category></category></item><item><title><![CDATA[CefSharp自定义缓存实现]]></title><link>https://blog.youkuaiyun.com/HenryMoore/article/details/130396699</link><guid>https://blog.youkuaiyun.com/HenryMoore/article/details/130396699</guid><author>HenryMoore</author><pubDate>Wed, 26 Apr 2023 23:24:36 +0800</pubDate><description><![CDATA[这是本文介绍的重点，相对于默认缓存，自定义缓存更加灵活：可以根据应用程序的需求来灵活地配置缓存策略和缓存大小，从而更好地满足应用程序的需求。更好的性能：可以根据应用程序的需求和特定的场景进行配置，以获得更好的性能。默认的缓存可能不适合某些特定的场景或者不适合您的应用程序的需求，而自定义缓存则可以根据您的需求进行调整，以获得更好的性能。更好的安全性：可以更好地保护用户的隐私和安全，因为可以控制缓存中存储的内容和缓存的生命周期。]]></description><category></category></item><item><title><![CDATA[能快速构建和定制网络拓扑图的WPF开源项目-NodeNetwork]]></title><link>https://blog.youkuaiyun.com/HenryMoore/article/details/129647267</link><guid>https://blog.youkuaiyun.com/HenryMoore/article/details/129647267</guid><author>HenryMoore</author><pubDate>Sun, 19 Mar 2023 10:32:22 +0800</pubDate><description><![CDATA[在现代软件开发中，数据可视化和可交互性越来越受到关注。为了实现这一点，通常需要使用各种图表、表格、网络拓扑图等控件。NodeNetwork就是一种这样的自定义方式，它是一个基于C# WPF的开源项目，可以帮助我们快速构建和定制网络拓扑图。]]></description><category></category></item><item><title><![CDATA[快学会这个技能-.NET API拦截技法]]></title><link>https://blog.youkuaiyun.com/HenryMoore/article/details/129136777</link><guid>https://blog.youkuaiyun.com/HenryMoore/article/details/129136777</guid><author>HenryMoore</author><pubDate>Tue, 21 Feb 2023 10:09:26 +0800</pubDate><description><![CDATA[怎么在不改变源码的情况下，篡改一个方法的入参？伪造返回结果？]]></description><category></category></item><item><title><![CDATA[【炫丽】从0开始做一个WPF+Blazor对话小程序]]></title><link>https://blog.youkuaiyun.com/HenryMoore/article/details/127742815</link><guid>https://blog.youkuaiyun.com/HenryMoore/article/details/127742815</guid><author>HenryMoore</author><pubDate>Tue, 08 Nov 2022 01:07:17 +0800</pubDate><description><![CDATA[WPF Blazor混合开发]]></description><category></category></item></channel></rss>