WPF 绑定binding都有哪些事件
2024/5/27 11:36:47

主要包含以下几个事件: 1. UpdateSourceTrigger:用于控制数据绑定如何更新源数据的事件PropertyChanged:每当目标属性的值更改时,将立即更新源属性。 LostFocus:当目标元素失去焦点时,更新源属性。 Explicit:只有在调用BindingExpression.UpdateSource方法时才会更新源属性。 Default:与绑定目标和属性的数据类型有关,通常是LostFocus或PropertyChanged事件。 Explicit和LostFocus是最常见的U

C#中await /async 的使用场景,优点,使用方法介绍
2024/5/27 11:36:47

asyncawait 是 C# 中异步编程的关键特性,它使得异步代码编写更为简单和直观。下面深入详细描述了 asyncawait 的使用场景、优点以及一些高级使用方法,并提供了相应的实例源代码。 使用场景:IO 操作: 异步编程特别适用于涉及 IO 操作(如文件读写、网络请求等)的场景。在等待 IO 操作完成的过程中,CPU 可以继续执行其他任务,提高程序的并发性。 GUI 应用程序: 在 GUI 应用程序中,避免阻塞主线程是至关重要的。使用 asyncawait 可以确保在进行长时间运行的任务时,GUI

c# 高并发必备技巧(三)
2024/5/27 11:36:46

前面两篇文章主要是介绍了如何解决高并发情况下资源争夺的问题。但是现实的应用场景中除了要解决资源争夺问题,高并发的情况还需要解决更多问题,比如快速处理业务数据等, 本篇文章简要罗列一下与之相关的更多技术细节。 1、异步编程:使用async和await关键字进行异步编程,这可以避免阻塞线程,提高程序的响应性和扩展性。异步编程可以通过Task或Task对象来实现。 public async Task ExampleAsync(){await Task.Run(() ={ 异步任务}) }2、多线程:使用多线程可

C#从字符串中提取固定步长的子字符串
2024/5/27 11:36:43

C#从字符串中提取固定步长的子字符串 C#的Substring方法只能提取固定长度的子字符串,不能直接提取固定步长的子字符串。因此,我们需要自己编写一个方法来实现这个功能。 这个方法可以用于从字符串中提取固定步长的子字符串。例如,如果 str 是 "HelloWld",finger 是 2,step 是 3,那么返回的数组将是 ["llo" "rld"]。 注意: 最后的子字符串可能小于步长,这里是保留存入字符串数组中的。 例如,如果 str 是 "HelloWld",finger 是 0,step 是

chatgpt接口开发笔记3: 语音识别接口
2024/5/27 11:36:43

chatgpt接口开发笔记3: 语音识别接口 1.文本转语音 1、了解接口参数 接口地址: POST https:api.openai.comv1audiospeech下面是接口文档描述内容:参数: { "model": "tts1" "input": "你好,我是饶坤,我是terramours gpt的开发者" "voice": "alloy" }model 模型 input 需要转换的文字 voice 语音风格2.postman测试3.结果:2.语音转文本 1、了解接口参数 接口地址: POST

渐进式web全栈:blazor web app
2024/5/27 11:36:42

前言 本文要说的这种开发模式,这种模式并不是只有blaz支持,js中有一样的方案next.js nuxt.js;blaz还有很多其它内容,本文近关注渐进式开发模式。 是的,前后端是主流,不过以下情况也许前后端分离并不是最好的选择:小公司,人员不多,利润不高,创业阶段能省则省 个人开发者,接接私活,要么一个人全栈,累点;要么弄个小团队,各自分钱少点; 不确定项目能做到啥程度,希望快速上线看效果,效果好继续,效果不好拉倒 厌烦写js,又不得不做bs界面诸如此类,不分离开发更简单,更省成本。 渐进式 vue是渐

在.net中通过自定义LoggerProvider将日志保存到数据库方法(以mysql为例)
2024/5/27 11:36:42

在.中,Microsoft.Extensions.Logging是一个灵活的日志库,它允许你将日志信息记录到各种不同的目标,包括数据库。在这个示例中,我将详细介绍如何使用Microsoft.Extensions.Logging将日志保存到MySQL数据库。我们将使用Entity Framewk Ce来与MySQL数据库进行交互。 步骤一:创建. Ce项目 首先,我们需要创建一个. Ce项目。你可以使用Visual Studio、Visual Studio Code或者命令行工具来创建项目。在创建项目时,确

将 .NET Aspire 部署到 Kubernetes 集群
2024/5/27 11:36:41

使用Aspirate可以将Aspire程序部署到Kuberes 集群 工具安装 dot tool install g aspirate prerelease 注意:Aspirate 正在开发中,该软件包将作为预览版进行版本控制,prelease 选项将获得最新的预览版。 容器注册中心 您将构建为容器的 csproj 文件(项目)必须至少包含 ContainerRegistry,否则 sdk 将引发 CONTAINERS1013 错误。要解决这个问题,您可以根据需要添加它,或使用“init”命令。 in

Prometheus+Grafana 监控平台实践-搭建&常用服务监控&告警
2024/5/27 11:36:34

前言Prometheus 是一个开放性的监控解决方案,通过各种 Expter 采集当前主机服务的数据,和 Grafana 相结合可以实现强大的监控和可视化功能 本篇将分享使用 docker compose 构建 Prometheus+Grafana,并监控之前文章所搭建的主机&服务,分享日常使用的一些使用经验 文章较长,已安装可略过,推荐先看第三节 常用服务的 Prometheus+Grafana 配置特点成熟稳定且强大 丰富的插件,大部分情况都能满足 轻量级部署,资源占用少使用情况主要用来作为监控面板使

第五单元 特殊视图
2024/5/27 11:36:33

1. _Layout.cshtml 布局页 布局视图和我们在Asp. MVC一样,布局视图_Layout.cshtml使得所有视图保持一致的外观变得更加容易,因为我们只有一个要修改的布局视图文件,更改后将立即反映在整个应用程序的所有视图中。在 ASP. Ce MVC 中,有一些视图文件,如布局的视图,ViewStart.cshtml 和ViewImpts.cshtml 等其他.cshtml 文件的文件名以下划线开头,这些文件名中的前下划线表示这些文件不是直接面向浏览器。我们可以在单个应用程序中包含多个布局

Autofac高级应用,一个接口多个实现类如何注册到容器并获取实例
2024/5/27 11:36:33

当使用Autofac处理一个接口有多个实现的情况时,通常会使用键(key)进行区分或者通过IIndex索引注入,也可以通过IEnumerable集合获取所有实例,以下是一个具体的例子,演示如何在Autofac中注册多个实现,并通过构造函数注入获取指定实现。 首先,确保你已经安装了Autofac NuGet包: InstallPackage Autofac 然后,我们看一个示例: using System using Autofac 定义接口 public interface IService {void

DevExpress 各版本破解方法
2024/5/27 11:36:32

如果是首次安装Dev只需要下面两步流程就可以 第一步安装试用的最新版 Devexpress 22.2.4这步看直接去官网安装官方试用的就可以 第二步安装破解补丁关闭防火墙或360 然后打开 DevExpress.Universal.Patch 选择22.2 版本 和对应的visual studio 的版本.(如visual studio 2022 community 就选 2022 com.) 百度搜索 下载 DevExpress.Universal.Patch 破解工具。 如果电脑之前有安装

第四单元 视图与模型
2024/5/27 11:36:31

create database MvcUnit4 go use MvcUnit4 go create table Product (Id bigint primary keyProductName var(30)CategyName var(30)Price decimal(102)Remark var(200)CreatedUserId bigintUpdatedUserId bigintCreatedTime datetimeUpdatedTime datetimed bit ) into Prod

C#中如何去掉字符串所有空格
2024/5/27 11:36:30

在字符串操作中Trim方法只能去掉字符串对象前端和后端的空格,但是,如果空格出现在中间如何去除呢? 这里可以使用StringBuilder来操作字符串,StringBuilder操作字符串无疑是最为方便高效的。现在利用StringBuilder类中的Replace方法去掉字符串中所有的空格。 replace 替换 string str = "xy 2 3" StringBuilder sb = new StringBuilder(str) sb.Replace(" " "")第一个参数是被替换的字符,后

基于DotNetty实现自动发布
2024/5/27 11:36:29

前言 上一篇我们实现了基于 Dotty 的通信基础模块的搭建本篇主要实现待发布 Web 项目的集成。 创建待发布项目为了测试 我创建了一个基于 . 4.8 的 Web 项目 OpenDeploy.TestWebProject我本机的代码仓储路径是: D:\Projects\Back\dot\Study\OpenDeploy.TestWebProject待发布项目集成 Git Git 是一个开源的分布式版本控制系统。我们使用它实现自动化检测需要发布的文件。我把这个测试的 Web 项目托管在了 Gitee 仓

第三单元 管道与中间件
2024/5/27 11:36:28

1. 什么是中间件在ASP. Ce中,中间件(dleware)是一个可以处理HTTP请求或响应的软件管道。 ASP. Ce中给中间件组件的定位是具有非常特定的用途。例如,我们可能有需要一个中间件组件验证用户,另一个中间件来处理错误,另一个中间件来提供静态文件,如Javript文件,CSS文件,图片等等。 中间件就是用于组成应用程序管道来处理请求和响应的组件 。 中间件可以认为有两个基本的职责:选择是否将请求传递给管道中的下一个中间件。可以在管道中的下一个中间件前后执行一些工作。我们使用这些中间件组件在AS

记一次 .NET 某零售管理系统 存储不足分析
2024/5/27 11:36:27

一:背景 1. 讲故事 前几天有位朋友找到我,说他的程序会偶发性的报 存储空间不足,无法处理此命令 的错误,让我帮忙看下到底怎么回事,哈哈,人家是有备而来,dump都准备好了,话不多说,直接分析开干。 二:WinDbg 分析 1. 捕获dump中的异常 一般来讲别人说的只是一个参考,我们需要自己到dump中去验证,可以用 !t 观察下。0:000:x86 !t ThreadCount: 61 UnstartedThread: 0 BackgroundThread: 52 PendingThre

WPF应用框架中工作流模块的介绍
2024/5/27 11:36:23

在前面的随笔,我对我们开发的审批工作流做了不少的介绍,其中有包括WInfm的、Vue+Element、Bootstrap Asp.的,在各个框架上,我们都尽量争取界面能够一致化,以便客户能够在不同的前端上有相同的用户体验,并结合不同的前端特点,做了一些优化处理,本篇随笔对WPF应用框架中工作流模块进行介绍。 1、回顾工作流的介绍内容 审批工作流的概念我们先来回顾一下。 在工作流处理表中,首先我们区分流程模板和流程实例两个部分,这个其实就是类似模板和具体文档的概念,我们一份模板可以创建很多个类似的文档,文档

.net下优秀的日志框架Serilog,你用上了吗?强烈推荐
2024/5/27 11:36:22

在 . 开发中,Serilog 是一款广受欢迎的日志库,它提供了强大的日志记录功能,具有丰富的特性和高度的可扩展性。Serilog 的优秀之处包括:可扩展性: Serilog 可以轻松扩展以满足不同的日志记录需求,例如日志存储、格式化和过滤。它支持各种插件和自定义扩展,让你可以根据项目的具体要求定制日志记录功能。 结构化日志: Serilog 支持结构化日志,允许你以键值对的形式记录信息,这使得日志数据更容易分析和查询。这对于在日志中存储复杂的数据非常有用。 异步日志记录: Serilog 可以异步记录日

第二单元 Http 概述
2024/5/27 11:36:22

1. CS 与 BS CS结构系统是什么 ClientServer结构(CS结构)是大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销 BS结构系统是什么 BS结构(BrowserServer,浏览器服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安

第一单元 Mvc概述
2024/5/27 11:36:21

1. 什么是Mvc模型视图控制器 (MVC) 体系结构模式将应用程序分成 3 个主要组件组:视图模型、视图和控制器。 此模式有助于实现关注点分离。 使用此模式,用户请求被路由到控制器,后者负责使用模型来执行用户操作和或检索查询结果。 控制器选择要显示给用户的视图,并为其提供所需的任何模型数据。 下图显示 3 个主要组件及其相互引用关系: 这种责任划分有助于根据复杂性缩放应用程序,因为这更易于编码、调试和测试包含单一作业的某个组成部分(模型、视图或控制器)。 但这会加大更新、测试和调试代码的难度,该代码在

不要用第三方日志包了Microsoft.Extensions.Logging功能就很强大
2024/5/27 11:36:20

在.中,Microsoft.Extensions.Logging是一个广泛使用的日志库,用于记录应用程序的日志信息。它提供了丰富的功能和灵活性,使开发人员能够轻松地记录各种类型的日志,并将其输出到不同的目标,包括日志文件。本文将详细介绍Microsoft.Extensions.Logging的各种基础功能以及如何按天生成日志文件。 一、Microsoft.Extensions.Logging基础功能 1. 创建Logger 首先,我们需要创建一个Logger实例,以便在应用程序中记录日志。以下是创建Log

Prism使用Options选项
2024/5/27 11:36:20

Options是微软提供的选项模块,该模块依赖于容器使用。除了微软的IServiceCollection,当然也可以使用其它的依赖注入容器。本文演示如何在prism中使用Options。 创建应用项目 创建一个Avalonia应用(或其它类型应用),然后使用NuGet包管理器添加Prism.DryIoc.Avalonia包。创建Views和ViewModels文件夹,将MainWindow移动到Views文件夹中(注意修改namespace),在ViewModels文件夹中创建MainWindowView

每个.NET开发都应掌握的C#处理文件系统I/O知识点
2024/5/27 11:36:19

上篇文章讲述了C#多线程知识点,本文将介绍C#处理文件的知识点。在.开发领域,文件系统IO是一个至关重要的主题,尤其是在处理文件、目录和数据存储方面。C#作为.平台的主要编程语言,提供了丰富而强大的文件系统IO功能,为开发人员提供了灵活的工具,使其能够高效地处理文件操作。本文将介绍C#处理文件系统IO知识点。 1、文件和目录的创建与删除 在C#中,使用`File`和`Directy`类可以轻松地创建和删除文件及目录。开发者应了解如何使用这两个类的方法。 案例如下: 创建文件 File.Create("p

WPF DataGrid开箱即用支持全部勾选的DataGridCheckBoxColumn
2024/5/27 11:36:19

本文由 飞羽流星(Flith毛茸茸松鼠先生Mr.Squirrel.Downy)原创欢迎分享转载但禁止以原创二次发布 原文地址:https:www.cnblogs.comFlithp17877473.html 以往在WPF的DataGrid上实现实时勾选交互非常麻烦要用DataGridTemplateColumn写样式还要写一些后端代码,还有绑定和转换器,或者处理事件。 但是现在都不需要了,使用开箱即用的DataGridCheckAllColumn,简化你的勾选代码实现! 它支持列表筛选变化反馈,支持虚拟化

在CPF里使用OpenGL做跨平台桌面应用开发
2024/5/27 11:36:18

CPF 是开源的C#跨平台UI框架,支持使用OpenGL来渲染,可以用来硬件加速播放视频或者显示3D模型 实现原理其实就是Skia用OpenGL后端,Skia里绑定GLView的OpenGL纹理,将纹理作为Skia的图像混合绘制。 在CPF里使用OpenGL,不能选择Ce3.0和4,需要选择ce3.1以及之后的版本。 Nuget里安装最新版的CPF。另外安装Silk.或者OpenTK来调用OpenGL绘制。 Program里需要开启GPU,设置 UseGPU = trueclass Program{[ST

.net平台使用SDK快速对接各大语言模型
2024/5/27 11:36:17

.平台使用SDK快速对接各大语言模型 1.项目介绍 最近,在做GPT项目时,发现各个平台的接口规范和参数不同,需要根据不同平台和模型写多种接口,比较麻烦,不想Python那样有丰富和方便的AI环境, 如果c#有一个SDK可以方便调用各种平台模型就好了,这是AllInAI.Sharp.API萌芽的起源。 于是我开发了这个SDK,包名:[AllInAI.Sharp.API](https:github.comraokunAllInAI.Sharp.API.Sample)。 AllInAI.Sharp.API一款

在WPF应用中使用GongSolutions.WPF.DragDrop实现列表集合控件的拖动处理
2024/5/27 11:36:16

WPF应用中,控件本身也可以通过实现事件代码实现拖动的处理,不过如果我们使用GongSolutions.WPF.Drag来处理,事情会变得更加简单轻松,它支持很多控件的拖动处理,如ListBox ListView TreeView DataGrid等源自ItemsControl的控件,本篇随笔介绍在工作流模块中拖动TreeView和DataGrid列表实现流程顺序的调整处理。 1、使用GongSolutions.WPF.Drag 控件的GitHub地址:https:github.compunker76go

Power BI Report Server自定义Form登录
2024/5/27 11:36:13

一、条件1、windows server主机一台,我是windows server 2019(当然windows10或者10月份5日更新的windows11也是可以行的)。 2、SQL Sever,我用的是SQL Server2019。3、Power BI Rept Server默认位置安装(默认位置:C:\Program Files\Microsoft Power BI Rept Server)。4、Fm自定义登录demo文件,见文末现在文件,源文件在GitHub上,链接:https:github.co

.net通过Action进行Options参数的传递,你知道是怎么实现的吗?
2024/5/27 11:36:12

在. Ce中,使用Action和Options参数方式配置服务并将配置信息对象注册到IServiceCollection的好处在于,它提供了更高级别的可配置性和可扩展性。这种模式允许将配置信息与服务的实现分离,使配置更加模块化和可管理。通过将配置信息对象注册到IServiceCollection,可以轻松将其注入到需要的服务中,从而使配置信息对整个应用程序都可用。以下是如何配置邮件发送服务并将配置信息对象注册到IServiceCollection的示例: 首先,让我们创建一个配置信息对象 EmailSer