记录最近 Avalonia 桌面软件开发解决的两个问题:剪贴板复制崩溃、Tab 切换 DataGrid 卡顿,分析根因并给出解决方案
相信今年大家没少看到 《抱歉,C# 已经跌出第一梯队》类似的文章,.NET 生态到底如何,本文将为你系统梳理 2025 年 .NET 开发者最应该关注的技术趋势和重要事件,涵盖AI发展、.NET演进及两者融合的最新动态和趋势,以求帮助大家找准定位,迎接未来的挑战与机遇。
在过去几年里,我们的上位机软件主要是用 WPF 和 WinForm 开发的。这些技术在 Windows 平台上确实很好用,也陪伴我们走过了从小规模试产到如今规模化交付的阶段。 但是,随着业务发展和客户需求的变化,单一的 Windows 技术栈逐渐成为了我们必须跨越的一道坎。
在实际软件开发中,尤其是工业软件,每一款设备都有复杂的状态以及状态之间的切换的功能需求,在这种情况下,如何管理状态以及状态之间切换,和对应状态下的功能控制,成为非常重要的一个问题。
这是一款专为Avalonia框架设计的多语言管理库,通过插件化架构重构了多语言支持逻辑,不仅兼容传统Resx资源文件,还新增XML和JSON格式支持,同时提供类型安全的资源引用、动态语言切换等能力,让多语言开发更简单、更高效。
详解Avalonia应用在Windows 7系统下自定义标题栏时原生标题栏残留问题的根本原因与完美解决方案,包含完整代码示例与版本兼容性分析
借助虚拟机和测试机,检测各版本操作系统对.NET的支持情况。安装操作系统后,实测安装相应运行时并能够运行星尘代理为通过。
经常看到别人提交的代码记录里面包含一些feat、fix、chore等等,而我在提交时也不会区分什么,直接写下提交信息,今天就来看一下怎么个事
网上搜到的很多 ICO 制作工具都是针对 favicon 的,其他的要不太重,要不就是收费,于是我把目光重新放在了开源工具上
这篇文章介绍了.NET CLI的文件式程序新特性,它允许开发者直接运行C#源文件而无需创建项目文件。该特性通过在内存中生成虚拟项目文件,并支持NuGet依赖包和项目属性设置,为开发脚本和简单应用提供了便捷。文章还展望了该特性的未来发展方向,包括目标路径扩展、统一命令行参数、性能提升和更多文件式程序命令支持等。
本文将结合医护工作场景,详细讲解C#中的命名空间、数据类型、字符串处理、继承以及集合等重要概念,帮助医护人员更好地理解编程知识。
作为一名从护理行业转行的程序员,我将分享如何通过医护工作经验来理解面向对象编程的概念。本文将介绍类、对象、属性、方法等面向对象的核心概念,并结合医疗保健领域的实例来加深理解。
本文介绍了如何开发一个挪车二维码生成工具,包括C#和Avalonia实现的桌面版以及Blazor前端和.NET Web API实现的在线版,涵盖需求分析、核心代码实现、UI设计和MVVM模式的应用。
本文介绍了如何使用C#和Avalonia开发一个图片转Icon的工具,包括需求分析、核心代码实现、UI设计和MVVM模式的应用。
在C#编程学习的第六天,我学习了循环控制、三元表达式、常量、枚举、结构、数组以及方法等内容。作为一名从护理行业转行的开发者,我将这些编程概念与护理工作经验相结合,帮助自己更好地理解和记忆。
在C#编程学习的第五天,我学习了异常处理、变量作用域、switch-case语句和循环结构等内容。作为一名护士转行开发者,我尝试将这些编程概念与护理工作经验相结合。
今天.NET 10 Preview 1发布了,我第一时间下载,升级了Avalonia UI项目和博客网站,前者功能测试及AOT发布正常,后者调试正常,Docker暂时未成功
身为护士的我毅然跨界投身 C# 编程学习,在此分享第二天学习内容,涵盖变量、运算符、转义符等关键知识要点 。
文章详细介绍了如何利用 PowerShell 脚本和批处理文件在 .NET Avalonia UI 项目中实现自动更新程序版本和一键发布。首先,文章解释了 PowerShell 执行策略的设置和修改,以确保脚本能够正常执行。接着,介绍了在 Visual Studio 预生成事件中添加脚本来自动更新版本号的方法,以及如何使用批处理文件在多个平台发布应用程序。最后,提供了一个 PowerShell 脚本示例,该脚本可以根据 Git 标签自动更新程序的版本信息。这些方法能够提高 .NET项目的开发效率和发布流程的便捷性。
文章讲述了一位护士因工作压力和家庭责任而辞职,在求职困难后,决定学习编程,特别是C#语言。她详细描述了第一天学习的内容,包括.NET、.NET Framework框架、C#语言概念、C#开发软件类型、不同UI框架、交互模式以及Visual Studio的使用。她表达了对学习编程的信心和决心,并希望得到更多人的指导和帮助。
本文详细介绍了在WPF程序中使用自定义XML文件实现国际化的方法,包括安装必备NuGet包、动态获取语言列表、动态切换语言、在代码和xaml界面中使用翻译字符串等内容,同时提供了源码链接,帮助开发者轻松实现WPF应用的国际化。
本文将详细介绍如何在 Avalonia UI 中使用 Markdown.AIRender 进行 Markdown 渲染,包括安装、样式引用、示例展示及多种特性(如支持黑白主题、主题色等)。同时,深入探讨了其正在完善的国际化功能,旨在帮助开发者更好地将 Markdown 内容整合到 Avalonia 应用中,提供更好的用户体验,并增强应用的全球化适配能力。此外,还对比了相关的 Markdown 渲染库,为用户选择合适的工具提供参考。
LINQPad 的软件包很小只有二十兆左右,启动速度很快。使用时只需输入想要执行的 C# 语句,并按下 F5 即可
本文深入探讨了 Avalonia 使用 XML 文件实现国际化的方法与优势。通过与 Resx 资源文件对比,为开发者提供了选择依据。XML 实现国际化适用于有用户侧修改需求、期望借助 AI 编辑且追求清晰语言结构管理的场景。文中详细介绍了从创建语言文件、强类型生成到具体使用以及语言管理的整套流程,并提供了相关资源链接,如 XML 语言管理包、案例 Demo 及语言管理工具、Resx 资源管理扩展等,有助于开发者快速上手并在实际项目中应用该国际化方案,提升 Avalonia 应用的全球化适配能力与用户体验。
在当今全球化的软件开发浪潮中,应用的国际化(i18n)与本地化(L10n)显得尤为重要。Avalonia UI 作为一款强大的跨平台 UI 框架,为开发者提供了多种实现国际化的途径。其中,使用传统的 Resx 资源文件进行国际化处理,不仅兼容了原 Winform、WPF、ASP.NET Core 等开发场景下的使用习惯,还借助一些实用工具和特定的开发流程,让国际化的实现变得高效且有条理。
在持续探索与创新的路上,[Dotnet9](https://dotnet9.com) 网站上新一个AI 小工具,专为文章标题生成 URL 别名,同时解锁文章内容 AI 总结功能,此刻,满心皆欢喜,与大家同分享这份成果!
2018年12月5日,上海市公安局普陀分局长风新村派出所接到异地报警电话,报警人重金购买了位于长风地区的某资产管理公司“股票期权”产品后,在短短一个礼拜内,被莫名平仓,怀疑自己被骗。
NuGet Next是一款基于BaGet的一款私有化NuGet管理平台,我们对BaGet进行了扩展,并且提供了更多的功能。
Dotnet9网站用WordPress搭建了两年,去年开始自学ASP.NET Core MVC,开始了独立开发网站之路,现在网站前台算是有模有样了,后台正在开发中
这是一个基于WPF XAML的跨平台UI框架,并支持多种操作系统(Windows(.NET Core),Linux(GTK),MacOS,Android和iOS),Web(WebAssembly)
Semi.Avalonia是以MIT协议开源的Avalonia UI框架下的Semi Design主题风格实现,搭配Ursa.Avalonia自定义控件库,为开发者带来全新视觉与功能体验。
SQLite,作为一个轻量级的嵌入式数据库,因其易于使用和部署而广受欢迎。然而,在尝试删除SQLite数据库文件时,开发者可能会遇到一些挑战。本文将分享一个从失败到成功的案例,展示如何在C#中成功删除SQLite数据库文件。
探索《植物大战僵尸-杂交版》,一款基于.Net Framework 4.0开发的创新塔防游戏!结合经典《植物大战僵尸》元素与独特杂交机制,种植多样植物与英雄,抵御僵尸入侵。高性能、流畅体验,挑战与乐趣并存。无论是游戏爱好者还是编程学习者,这款游戏都能带给你前所未有的体验。快来下载试玩吧!
CodeWF.EventBus.Socket 是一个轻量级的、基于Socket的分布式事件总线系统,旨在简化分布式架构中的事件通信。它允许进程之间通过发布/订阅模式进行通信,无需依赖外部消息队列服务。
本文将指导您如何在本地网络环境中成功安装并配置AvaloniaUI所需的工具和模板。
CodeWF.EventBus,一款灵活的事件总线库,实现模块间解耦通信。支持多种.NET项目类型,如WPF、WinForms、ASP.NET Core等。采用简洁设计,轻松实现命令的发布与订阅、请求与响应。通过有序的事件处理,确保事件得到妥善处理。简化您的代码,提升系统可维护性。
插件化的需求主要源于对软件架构灵活性的追求,特别是在开发大型、复杂或需要不断更新的软件系统时,插件化可以提高软件系统的可扩展性、可定制性、隔离性、安全性、可维护性、模块化、易于升级和更新以及支持第三方开发等方面的能力,从而满足不断变化的业务需求和技术挑战。
82年的,老鸟。算是第二代搞程序的吧,C++Builder delphi起家(也许很多人都没听过吧)。DOS ucdos pctools玩过一年以上。
一直有小伙伴在微信公众号后台留言让我分享一下.NET MAUI相关的UI框架,今天大姚分享一个.NET MAUI开源、免费的UI工具包:Uranium。
近日,微软正式开源缓存存储系统 Garnet。据微软研究院数据库小组高级首席研究员 Badrish Chandramouli 介绍,Garnet 项目是从零开始构建而成,且以性能为核心考量(特别是吞吐量中的线程可扩展性与更高比例的低延迟水平)。
在动态且不断发展的软件开发世界中,Java 和 C# 是两个巨头,每个都有自己独特的优势、理念和生态系统。本文深入比较了 Java 和 C#,探讨了它们的历史背景、语言特性、性能指标、跨平台功能等。
本人 C# 出生,写过少许 C/C++,所以一直想着有个类似 Main() 函数的东西是整个程序的入口。然而,查遍了整个目录,没有找到任何线索,接下来就开始各种捣鼓。
在.NET项目开发中,随着项目复杂性的增加,依赖的dll文件也会逐渐增多。这往往导致输出目录混乱,不便于管理和部署。
给大家分享一款由WPF开源的、免费的(MIT License)、即开即用、即用即走的翻译、OCR工具:STranslate。
在.NET的世界里,数据库选择至关重要。今天为大家揭秘一款轻量级NoSQL数据库——LiteDB,它小巧但功能强大,为你的项目提供快速、灵活的数据存储解决方案。无论你是初学者还是资深开发者,LiteDB都将是你的得力助手!
Windows屏幕工具,功能包括:屏幕截图、贴图、屏幕取色、截图文字、表格识别(需要申请百度OCR服务)、截图翻译、划词翻译。
AvaloniaUI是一个强大的跨平台.NET客户端开发框架,让开发者能够针对Windows、Linux、macOS、Android和iOS等多个平台构建应用程序。在构建复杂的应用程序时,模块化和组件间的通信变得尤为重要。Prism框架提供了模块化的开发方式,支持插件的热拔插,而MediatR则是一个实现了中介者(Mediator)模式的事件订阅发布框架,非常适合用于模块之间以及模块与主程序之间的通信。
在做winform开发的过程中,经常需要做数据展示的功能,之前一直使用的是gridcontrol控件,今天想通过一个示例,跟大家介绍一下如何在winform blazor hybrid中使用ant design blazor中的table组件做数据展示。
前几天跟大家介绍了在winform中使用blazor hybrid,而且还说配上blazor的ui可以让我们的winform程序设计的更加好看,接下来我想以一个在winform blazor hybrid中绘图的例子来进行说明,希望对你有所帮助。
在C#开发过程中,我们经常需要处理各种事件,有时候还需要动态地注册第三方库定义的事件。今天,我将为大家分享一个关于如何动态注册第三方库事件的Demo,并根据提供的代码和注释,详细讲解每一步骤。
本文将深入探讨如何在C# WPF项目中运用FluentValidation进行属性验证,并展示如何通过MVVM模式实现这一功能。
FluentValidation 是一个基于 .NET 开发的验证框架,开源免费,而且优雅,支持链式操作,易于理解,功能完善,还是可与 MVC5、WebApi2 和 ASP.NET CORE 深度集成,组件内提供十几种常用验证器,可扩展性好,支持自定义验证器,支持本地化多语言。
Azure应用服务用YARP取代了Nginx,获得了80%以上的吞吐量。他们每天处理160B多个请求(1.9 m RPS)。这是微软的一项了不起的技术创新。
为了避免可能出现的误解和混淆(虽然当初报着碰瓷儿的想法),站长决定将原有的Dotnet9仓库进行归档处理。
码坊是站长新开的一个提供网页在线工具、跨平台桌面和手机应用的开源项目。站长将终致力于为你带来更高效、更便捷的使用体验。今天,站长荣幸地推出“文章标题URL别名生成器”,帮助你轻松创建文章标题的URL别名,提升SEO效果和用户体验。快来码坊,探索更多实用工具吧!
Channel 是微软在 .NET Core 3.0 以后推出的新的集合类型,该类型位于 System.Threading.Channels 命名空间下,具有异步 API 、高性能、线程安全等等的特点。
在网络通信中,数据序列化是将对象状态转换为可存储或可传输的形式的过程,这对于TCP网络传输尤为关键。在项目中,当需要处理几十万条数据的传输时,传统的JSON序列化方式由于其冗余的字段名和字符串格式,导致了二进制包体积庞大,且序列化与反序列化的效率低下。为了解决这些问题,我们考虑采用更加高效的序列化方法,以减少包大小并提升处理速度。
.NET Core 3.1 已经用了很长一段时间,其实在 2022 年的年底微软已经不提供支持了,后面的一个 LTS 版本 .NET 6 也会在 2024 年 11 月终止支持,所以直接升级到 .NET 8 是最好的选择。
虽然 8 又带来了很多方面的增强,比如:人工智能、云原生、性能、native AOT 等,但我还是最关注 C# 语言和一些框架层面的变化,下面介绍下 C# 12 和框架中的我认为比较实用的新增功能。
路遥工具箱是一款基于C# WPF开发的开源工具,旨在解决开发过程中常见的功能性需求,并将其自动化。目前已经拥有十数项实用功能,让你的开发工作事半功倍!
当涉及到删除C#数组中的元素时,你可能会遇到两种常见的方法:常规删除和交换删除(快速删除)。常规删除需要遍历数组并移动元素,而交换删除则通过交换元素位置来删除。本文将介绍这两种方法的时间复杂度,并提供示例代码来演示它们的用法。通过学习这些快速删除技巧,你将能够优化你的代码,使其更高效。让我们一起揭秘这些技巧,让你的代码更加出色!
这些面试题涵盖了.NET开发中的各个方面,包括.NET框架、C#语言、ASP.NET、ADO.NET、数据库等。通过对比学习,我们可以更好地理解和掌握这些知识点。
C#位运算是一种强大的工具,可以在处理二进制数据和位操作时发挥重要作用。通过使用位运算符,我们可以对整数进行位级别的操作,如位与、位或、位异或和位取反等。位运算可以用于优化性能、压缩数据、实现位掩码和位标志等。了解和掌握C#位运算的基本原理和常见应用场景,将使我们能够更高效地处理二进制数据,并在某些情况下提高代码的性能和可读性。通过深入理解C#位运算,我们可以在编程中发挥更大的创造力和灵活性。
EasyCaching,这个名字就很大程度上解释了它是做什么的,easy和caching放在一起,其最终的目的就是为了让我们大家在操作缓存的时候更加的方便。
昨天(2023年10月23日)蚂蚁集团旗下语雀崩了:在线文档及官网均无法打开 官方称紧急恢复中,建议读者自己开发一个属于自己的博客网站,遇到这种事才不会惊慌。
Dotnet工具箱是一个纯前端的、开源和免费的工具网站,周末我参考了开源项目it-tools,对网站界面文字进行了汉化,并重新部署了网站。该网站共有10大工具分类,提供了73个实时在线小工具。使用Vue3开发的Dotnet工具箱具有独特的特色,本文详细介绍了其中一些特色工具,并简单分享了如何部署自己的工具网站。如果你对工具网站感兴趣,不妨来了解一下Dotnet工具箱吧!