WPF新手村教程(五)— 附魔教学(绑定)
WPF个人文档(五)—— 绑定
[!IMPORTANT]
在开始之前,我觉得我们非常有必要要先了解一下ViewModel
ViewModel:专门给界面(View)使用的数据对象
# ViewModel = 专门给界面(View)使用的数据对象
如果只讲绑定,可以简单理解为数据源对象
在这里先留一个简单的印象,后面会详细讲解,在看完本篇随笔之后,你也会对这个东西 ...
.NET Win32磁盘动态卷触发“函数不正确”问题排查
最近在处理Win32磁盘管理.NET 磁盘管理-技术方案选型 - 唐宋元明清2188 - 博客园-获取本地磁盘信息时,遇到一个比较隐蔽的问题。
磁盘对象获取异常,DEVICEIOCONTROL.IOCTL_STORAGE_GET_DEVICE_NUMBER FAILED, 函数不正确。(0X00000001)
当机器上出现动态卷、跨区扩展卷这类特殊卷时,GetDiskNumberByVolumeName 中执行 Devi ...
Satori GC:同时做到高吞吐、低延时和低内存占用
前言
GC 的设计里一直有一个很难绕开的矛盾:高吞吐、低延时、低内存占用,通常很难同时做到。
传统做法里,想要更短的停顿,往往要把更多工作搬到并发阶段,甚至让平时的对象访问承担更高成本;想要更高的吞吐量,又往往意味着平时路径成本必须足够低,于是更多工作会堆到回收阶段;想要更低的内存占用,则又需要更积极地 ...
surging 发布命令行工具
一、概述
surging 号称微服务引擎,但是每次都依赖于dotnet 命令启动,都需要通过配置文件进行配置,让大家都感到只见其形未见其详,感觉很难上手,对于新人不友好,没有熟悉服务规则配置,比如maxConcurrentRequests,executionTimeoutInMilliseconds没有更改默认配置,导致压测不理想,这些问题在很 ...
C# 中 Excel 转 DataTable 的技术实现
在企业级 .NET 开发场景中,Excel 文件与内存数据集(如 DataTable)的格式互转是高频技术需求。DataTable 作为 .NET 框架中通用的内存数据结构,常被用于承接 Excel 数据并完成后续的数据验证、持久化、展示等操作。本文聚焦于 .NET 环境下,如何通过第三方类库实现 Excel 文件到 DataTable 的高效转换,核心讲解数据转换 ...
[Maui] 造轮子——LoggerSqlite
上文异常处理用到了日志记录器,本文介绍一下基于Sqlite的日志记录器
一、定义一个传递、保存日志的类
public class LogItem
{
public int Id { get; set; }
public string DT { get; set; } = default!;
public LogLevel Level { get; set; }
public string CategoryName { get; set; } = default!;
p ...
记一次 .NET 某低代码开发框架 内存暴涨分析
一:背景
1. 讲故事
微信里有一位朋友找到我,说他们公司的程序存在内存暴涨问题,自己分析了下没有找到原因,让我看下怎么回事?由于大家都有dump分析基础,所以交流互通上还是很顺利的,接下来就是上dump分析啦。
二:内存暴涨分析
1. 为什么会内存暴涨
先还是老套路,用 !address -summary 观察下内存分布情况,输出如下 ...
笔记:在 WPF 中通过侧边导航栏实现内容切换
本篇笔记主要记录,如何在 WPF 中利用 ListBox+ContentControl+UserControl 三个控件,以侧边导航栏的形式实现内容切换。
效果图如下:
┌─────────┬────────────────────────────┐
│ Title │ │
├─────────┤ ...
[Maui] 造轮子——前言、本地化
前言
新的一年开始了,公司提了新的要求:
国产化
国际化
开发部的应对是:从wpf转换Maui:
安卓版也是国产化
国际化就是本地化,弄个多国语言的事情
话说华为的鸿蒙,为了国产化,在华为P40手机上运行了Maui的缺省项目,天真的以为鸿蒙支持Maui Android。于是去买了个华为的平板,然后悲剧了。亲测:P40手机的鸿蒙4.2 ...
.NET SqlSugar多线程下SqlSugarClient 的线程安全陷阱
使用SqlSugar读取Sqlite数据库,项目运行过程中间歇性抛出以下异常:
SqlSugar.SqlSugarException:“中文提示 : 连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,错误信息:Connection was closed, statement was terminatedDbType="Sqlite";ConfigId="".English Message : Connection open error . Conn ...
Yi.Net平台管理--工作流
此篇主要记录和介绍工作流模块的功能。PS:仅做个人学习用
工作流表单
表单是通过前端代码自定义后,通过界面来进行表单注册。
工作流模板
创建好表单后,可以引用表单创建工作流模板,此处以简单的条件判断流程作为示例。
其中,还有会签功能的节点,展示如下:
PS:各个节点均可自定义节点任务,在 ...
Yi.Net平台管理--基础权限
Yi.Net是基于.Net6后端框架和传统前端框架开发的平台管理系统。
架构上采用前后端分离的方式,支持分布式部署,开发的核心思想:面向服务、面向对象。(此处说明下:本人是主要做后端开发工作,前端是采用传统开发的前端模式,不是现代化构建环境(webpack、vite)下的前端模式。主要前端框架:elementUI、vue2等。 ...
如何在 DotNet 中使用类似 golang 的 vendor 的编译模式
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!
cnblogs博客
zhihu
Github
公众号:一本正经的瞎扯
一个项目中,存在部分库是公司内的,且需要配置个人的用户名和密码连接到 NuGet 站点,才能下载这些库。
而有时候需要直接把一个仓库拉到某个环境上进行编译,且不希望把带了密码的 NuGet.Config 文件提交 ...
如何通过 C# 实现 PDF 文本提取?
在日常办公和开发中,从 PDF 文件中提取文本是一项高频需求。手动复制粘贴不仅耗时,而且面对大量文档时效率极低。传统的自动化方案往往依赖 Adobe Reader 等外部组件,不仅部署麻烦,遇到加密或扫描件更是难以处理。
本文将介绍如何使用免费库 Free Spire.PDF for .NET ,无需安装任何 PDF 阅读器,轻松实现高精度、高可靠 ...
对于 UTF-16 的高低代理项码点的解析
起因:
首先是我写的这一段代码, 这是一个手搓的 Json 解析器内部的一个, 把转义字符还原成 UTF-16 的一个逻辑代码:
case 'u': //Unicode 字符
if (i + 4 < text.Length)
{
byte[] bytes;
string u = text.Substring(i + 1, 4);
if (Command.string2bytes(u, out bytes) == true)
...
.NET 本地Db数据库-技术方案选型
公司现有项目使用了LiteDB作为本地数据存储,但每次开机有较高的概率读取阻塞。
因为死锁或者损坏导致的阻塞问题,目前只能设置超时。在db读取超时后,部分情况可以删除文件、重建db解决,也有无法删除db文件的情况。
导致的技术债务造成了非常多的冗余维护工作量,需要基于常用的数据库及使用方式,重新做个技术选型确认
L ...
dotnet DirectX 通过可等待交换链降低输入渲染延迟
在 上一篇博客 和大家介绍了如何在控制台里面用裸 DirectX 做一个简单绘制折线笔迹的 D2D 应用。此时的 D2D 应用的笔迹延迟还只是能够追得上 WPF 的笔迹性能,依然有很大的优化空间。本文将在此基础上,给出一个更低输入延迟的渲染方案
在一些紧张的射击类游戏里面,游戏开发者很注重于减少输入的渲染延迟。对桌面应用来说 ...
[DotNet] Kestrel 框架中, http1 与 http2 的性能对比
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!
cnblogs博客
zhihu
Github
公众号:一本正经的瞎扯
(文中的 http2 是指明文的 http2 协议,也叫 h2c, 并未测试 TLS 加密的情况)
如果仅从协议的角度对比,http2 会比 http1 更快吗?如果更快,能快多少?
基于以上疑问,我基于 C# 的 Kestrel 框架,做了一 ...
.net 微服务的“黄埔军校”
1.概述
今天玩了一下阿里的千问,当我输入surging作者是谁?把我吹捧的非常高,我被它的彩虹屁惊到了,还说我是.net 微服务的“黄埔军校”,说的有理有据,在此把原文贴出来,根据此轮点,我打击其它依靠背景的学院派应该是有这个资格了。
图1
图2
🎓 为什么 Surging 被称为“黄埔军校”? ...
Microsoft Agent Framework 取出 DeepSeek 思考内容
本文提供的方法适用于 DeepSeek 和豆包等模型
前置博客:
Microsoft Agent Framework 与 DeepSeek 对接
C# Microsoft Agent Framework 与 豆包 对接
更新:
在正式的 1.0.0 版本,已经内置支持了获取思考内容。只需要判断输出的 AIContent 为 TextReasoningContent 类型即可,核心代码如下
ChatClient chatClient = ...