刷新
记一次WPF的DataGrid绑定数据

博主头像 之前一直在用winform,但是感觉界面不好看,然后就自己在网上学习WPF。一开始看到DataGrid的时候,还以为它是DataGridView,然后用winform的方法绑定数据发现不行,在不断的查找之后,终于学会了怎么简单的绑定数据。 工具:VStudio2022 框架:.net framewo ...

记一次 .NET某防伪验证系统 崩溃分析

博主头像 一:背景 1. 讲故事 昨晚给训练营里面的一位朋友分析了一个程序崩溃的故障,因为看小伙子昨天在群里问了一天也没搞定,干脆自己亲自上阵吧,抓取的dump也是我极力推荐的用 procdump 注册 AEDebug 的方式,省去了很多沟通成本。 二:WinDbg分析 1. 为什么会崩溃 windbg有一个 ...

.NET分布式Orleans - 6 - 事件溯源

博主头像 基本概念 事件溯源(Event Sourcing)是一种设计模式,它记录并存储了应用程序状态变化的所有事件。 其核心思想是将系统中的每次状态变化都视为一个事件,并将这些事件以时间顺序的方式持久化存储。 这样,通过重放这些事件,我们可以重建系统在任何特定时间点的状态。 每个事件通常都包含了描述状态变化 ...

Csharp中表达式树

博主头像 Csharper中的表达式树 这节课来了解一下表示式树是什么? 在C#中,表达式树是一种数据结构,它可以表示一些代码块,如Lambda表达式或查询表达式。表达式树使你能够查看和操作数据,就像你可以查看和操作代码一样。它们通常用于创建动态查询和解析表达式。 一、认识表达式树 为什么要这样说?它和委托有 ...

WPF自定义Panel:让拖拽变得更简单

博主头像 在 WPF 应用程序中,拖放操作是实现用户交互的重要组成部分。通过拖放操作,用户可以轻松地将数据从一个位置移动到另一个位置,或者将控件从一个容器移动到另一个容器。然而,WPF 中默认的拖放操作可能并不是那么好用。为了解决这个问题,我们可以自定义一个 Panel 来实现更简单的拖拽操作。 自定义 Pa ...

深度探索.NET Feature Management功能开关的魔法

博主头像 前言 .NET Feature Management 是一个用于管理应用程序功能的库,它可以帮助开发人员在应用程序中轻松地添加、移除和管理功能。使用 Feature Management,开发人员可以根据不同用户、环境或其他条件来动态地控制应用程序中的功能。这使得开发人员可以更灵活地管理应用程序的功 ...

.NET分布式Orleans - 5 - 持久化

博主头像 在分布式系统中,数据的持久化是至关重要的一环。 Orleans 7 引入了强大的持久化功能,使得在分布式环境下管理数据变得更加轻松和可靠。 本文将介绍什么是 Orleans 7 的持久化,如何设置它以及相应的代码示例。 什么是 Orleans 7 的持久化? Orleans 7 的持久化是指将 Or ...

.NET C#程序启动闪退,在安装或者程序文件下能正常运行,但通过路径却无法运行

博主头像 .NET C#程序启动闪退,目录导致的问题 这是第2次踩这个坑了,很小的编程细节,容易忽略,所以写个博客,分享给大家。 1.第一次坑:是windows 系统把程序运行成服务,找不到配置文件,原因是以服务运行它的工作目录是在C:\Windows\System32 2.本次坑:WPF桌面程序通过注册表设 ...

.NET Core 简介

微软于2016年推出了新一代的开发平台,并且将其命名为.NET Core。相较于旧的.NET Framework。 .NET Core有如下优点: 1).NET Core采用模块化开发。不再像.NET Framework那样需要安装整个安装包。.NET Core核心只包含很少的文件,所有其他模块都需 ...

WPF实现html中的table控件

博主头像 前言 相信很多做WPF开发的小伙伴都遇到过表格类的需求,虽然现有的Grid控件也能实现,但是使用起来的体验感并不好,比如要实现一个Excel中的表格效果,估计你能想到的第一个方法就是套Border控件,用这种方法你需要控制每个Border的边框,并且在一堆Bordr中找到Grid.Row,Grid. ...

.NET分布式Orleans - 4 - 计时器和提醒

博主头像 Timer是什么 Timer 是一种用于创建定期粒度行为的机制。 与标准的 .NET System.Threading.Timer 类相似,Orleans 的 Timer 允许在一段时间后执行特定的操作,或者在特定的时间间隔内重复执行操作。 它在分布式系统中具有重要作用,特别是在处理需要周期性执行的 ...

权限管理系统--系统权限篇(源码)

博主头像 一、前言 随着网络的发展,企业对于信息系统数据的保密工作愈发重视,不同身份、角色对于数据的访问权限都应该大相径庭。 列如 1、不同登录人员对一个数据列表的可见度是不一样的,如数据列、数据行、数据按钮等都可能不太一样。 2、表单的灵活设计及呈现。 3、流程的灵活设计及呈现。 4、接口的调用信息者及性能 ...

掌握C#中异步魔法:同步方法如何优雅调用异步方法

博主头像 概述:上述C#示例演示了如何在同步方法中调用异步方法。通过使用`async`和`await`关键字,实现了同步方法对异步方法的调用。建议使用`await`而不是`Result`来避免潜在的死锁问题。这种模式在处理异步任务时能够提高代码的可读性和性能。 在C#中,从同步方法调用异步方法的过程涉及到使用 ...

记一次 .NET某半导体CIM系统 崩溃分析

博主头像 一:背景 1. 讲故事 前些天有一位朋友在公众号上找到我,说他们的WinForm程序部署在20多台机器上,只有两台机器上的程序会出现崩溃的情况,自己找了好久也没分析出来,让我帮忙看下怎么回事,就喜欢这些有点调试基础的,dump也不需要我指导怎么去抓,接下来我们就上windbg开始分析吧。 二:Win ...

在 .NET 中使用 OPC UA 协议

目录什么是 OPC UAUaExpert 的使用下载 UaExpert首次启动添加 OPC UA 服务器连接 OPC UA 服务器查看 PLC 数据使用 C# 读写 OPC UA 数据连接到 OPC UA 服务器获取节点的值写入节点的值 什么是 OPC UA OPC UA(OPC Unified A ...

.NET Emit 入门教程:第四部分:构建类型(Type)

博主头像 构建类型是动态代码生成过程中的关键一环,通过灵活运用 TypeBuilder 和相关工具,我们可以实现各种复杂类型的动态生成,为程序的灵活性和可扩展性提供有力支持。总的来说,本章节通过演示如何使用 Emit 来动态创建类型,包括定义字段、方法、属性和事件等, 帮助读者理解如何在运行时生成和操作类型信... ...

dotNet符号文件(pdb),符号包(snupkg)和SourceLink

博主头像 前言 本文的主题是 Visual Studio 调试 NuGet 包,以及符号包的概念,如何去发布一个 NuGet 包,让我们的 NuGet 包支持 SouceLink,这些都是我们开发中比较容易忽视的内容,但是熟悉了以后可以让我们在调试中得心应手,也是开源项目开发的基础篇。 demo 源代码在文末 ...

.NET分布式Orleans - 3 - Grain放置

博主头像 在Orleans 7中,Grain放置是指确定将Grain对象放置在Orleans集群中的哪些物理节点上的过程。 Grain是Orleans中的基本单位,代表应用程序中的逻辑单元或实体。Grain放置策略是一种机制,用于根据不同的因素,将Grain对象放置在合适的节点上,以实现负载均衡、最小化网络延 ...

<1···678···50>