.NET Aspire Preview 4 发布!
2024/5/27 11:44:48

. Aspire Preview 4 is now available! Here's a summary of what's new in this preview release:. Aspire Preview 4 现已推出!以下是此预览版中新增内容的摘要:Podman Suppt f running apps with podman支持使用 podman 运行应用程序Dashboard 仪表板Stalone container image see sample独立容器镜像,参见示例 Acces

.Net接口版本管理与OpenApi
2024/5/27 11:44:47

前言 作为开发人员,我们经常向应用程序添加新功能并修改当前的 Api。版本控制使我们能够安全地添加新功能而不会造成中断性变更。一个良好的 Api 版本控制策略可以清晰地传达所做的更改,并允许使用现有 REST Api 的客户端在准备好时才迁移或更新他们的应用程序到最新版本。 哪些行为可能会造成 Api 的中断性变更呢?删除或重命名 Api 修改 Api 参数(类型名称可选参数变成非可选参数,删除必需参数等) 更改现有 Api 的行为 更改 Api 响应 更改 Api 错误代码 Me我们在做开发的过程中迟早

C#中Attribute的魅力:从基础到高级AOP实战
2024/5/27 11:44:46

概述:C#中的Attribute(特性)为程序元素提供了灵活的元数据机制。除基础应用外,可高级应用于自定义代码生成、AOP等领域。通过示例展示了Attribute在AOP中的实际用途,以及如何通过反射机制获取并执行与Attribute相关的逻辑。 在C#中,Attribute(特性)是一种用于为程序实体(如类、方法、属性等)添加元数据的机制。它们提供了一种在运行时向程序元素添加信息的灵活方式。Attribute通常用于提供关于程序元素的附加信息,这些信息可以在运行时被反射(reflection)机制访问。

DiagnosticSource DiagnosticListener 无侵入式分布式跟踪
2024/5/27 11:44:46

ASP. Ce 中的框架中发出大量诊断事件,包括当前请求进入请求完成事件,HttpClient发出收到与响应,EFCe查询等等。 我们可以利用DiagnosticListener来选择性地监听这些事件,然后通过自己的方式组织这些日志,实现无侵入的分布式跟踪。 下面我们通过DiagnosticSource监听EFCe,与HTTPClient,实现链路追踪。 创建监听 现在我们将配置一个DiagnosticListener来监听全部事件。 首先,我们需要一个IObserverDiagnosticListen

.NET集成DeveloperSharp实现强大的AOP
2024/5/27 11:44:45

(适用于.. Ce. Framewk)【目录】0.前言1.第一个AOP程序2.Aspect横切面编程3.一个横切面程序拦截多个主程序4.多个横切面程序拦截一个主程序5.优势总结6.展望 0.前言AOP(Aspect iented Programming)是“面向横切面编程”,主要是用来对程序模块进行解耦。怎么理解?? 我们可以把一般的编程理解为“纵向编程”(主程序),比如如下的一个示例代码:public string GetInfo(int i){string s = ""if (i == 1)s = "

.NET神器:轻松实现数字转大写金额的秘籍与示例代码
2024/5/27 11:44:45

概述:.中实现数字转大写金额可通过现有库或自定义方法。自定义方法示例使用递归将数字分段转换为中文大写金额,处理了千、百、十、个位数。实际应用中可根据需求进一步扩展,例如处理小数部分或负数。 在.中,你可以使用以下方案之一来实现将数字转成大写金额:使用现有库: .框架中有一些库已经实现了将数字转换成大写金额的功能,例如NPOI、NumToWds等。这些库通常提供了简单易用的API。 自定义方法: 你也可以自定义方法来实现这个功能。以下是一个简单的示例,使用递归方式将数字转换成大写金额:using Syste

CYQ.Data 操作 Redis 性能测试:对比 StackExchange.Redis
2024/5/27 11:44:44

前言: 前几天,点开自己的博客,看了一下 CYQ.Data V5系列 都有哪些文章, 发现了一篇2019年写的:CYQ.Data 对于分布式缓存Redis、MemCache高可用的改进及性能测试,于是点进去看了看。 感觉文章中有些表述存有问题,不过不是重点。 重点,看了里面的测试结论,如果四五年过去了,CYQ.Data 低调的更新,有没有进步呢 为了和之前的版本进行对比,好在当年有留下代码,就直接拿当年的代码来测试一下。 下面就来重新看一下新的测试结果: 测试环境: 本次测试为. Windown 版本,下

探究WPF中文字模糊的问题:TextOptions的用法
2024/5/27 11:44:43

有网友问WPF中一些文字模糊是什么问题。之前我也没有认真思考过这个问题,只是大概知道和WPF的像素对齐(pixel snapping)、抗锯齿(antialiasing)有关,通过设置附加属性TextOptions.TextFmattingMode或者TextOptions.TextRenderingMode来解决。这次我也查了下资料,了解了这几个附加属性的取值范围以及用法。 像素对齐和抗锯齿 我们经常听到WPF具有分辨率无关性这个说法,因为WPF使用的是与设备无关的绘图系统,为字体和形状等内容指定大小或

[Blazor] 学习随笔——RZ10012警告的处理
2024/5/27 11:44:43

程序能运行,就是告诉你RZ10012然后各种提示没有了。 清理解决方案、电脑重启了都没有用,后来搜索到github,解决了,记一下:关闭vs 删除文件夹 .vs,bin,object 打开vs,重新生成解决方案也是醉了。 文字少的博文不允许投稿到该网站分类? 知道什么叫短小精悍吗?知道什么叫短小精悍吗?知道什么叫短小精悍吗?知道什么叫短小精悍吗?知道什么叫短小精悍吗?知道什么叫短小精悍吗?知道什么叫短小精悍吗?知道什么叫短小精悍吗?知道什么叫短小精悍吗?知道什么叫短小精悍吗?知道什么叫短小精悍吗?知道什么

WPF绘图指南:用XAML轻松实现圆、线、矩形、文字、图片创意元素
2024/5/27 11:44:43

概述:在WPF中,通过使用不同的元素如Ellipse、Line、Rectangle等,可以轻松绘制各种图形,包括圆、线条、椭圆、矩形、多边形等。同时,通过TextBlock展示文字,Image展示图片,以及Path创建路径和曲线,使得图形的绘制变得灵活多样。通过简单的XAML代码,开发者可以快速构建各种图形和界面元素 在WPF中,你可以使用Ellipse、Line、Rectangle、Polygon等元素来绘制基本的形状,同时可以使用TextBlock来显示文字,Image来展示图片,以及Path元素来创

.Net Core中使用DiagnosticSource进行日志记录
2024/5/27 11:44:42

System.Diagnostics.DiagnosticSource 可以丰富地记录程序中地日志,包括不可序列化的类型(例如 HttpResponseMessage 或 HttpContext)。System.Diagnostics.DiagnosticSource 通过订阅发布模式运行,我们可以根据自己地需要发现数据源并订阅感兴趣的数据源。 DiagnosticSource 与 ILogger 区别 一般来说,DiagnosticSource主要强类型诊断,它可以记录诸如"Microsoft.As

Avalonia 11.1.0-beta1 发布
2024/5/27 11:44:42

11.1.0beta1 Avalonia 是 dot 的跨平台 UI 框架,提供灵活的样式系统,支持 Windows、macOS、Linux、iOS、roid 和 WebAssembly 等多种平台。 Avalonia 已经成熟并已做好生产准备,已被 Schneider Electric、Unity、JetBrains 和 GitHub 等公司使用。 Full Changelog: https:github.comAvaloniaUIAvaloniacommits11.1.0beta1完整变更日志:h

面向对象设计的六大原则(SOLID原则)-——开闭原则
2024/5/27 11:44:41

开闭原则(OpenClosed Principle OCP)是面向对象设计的五大SOLID原则之一。这个原则主张“软件实体(类、模块、函数等)应该对扩展开放,对修改关闭”。也就是说,软件的设计应该允许在不修改原有代码的情况下增加新的功能。这样的设计有助于降低代码的复杂性和维护成本,同时提高系统的可复用性和可维护性。 详细解释 开闭原则强调两点:对扩展开放:当需要增加新功能时,应该通过添加新的代码来实现,而不是修改已有的代码。这可以通过使用抽象、接口、继承和多态等面向对象的技术来实现。对修改关闭:已有的代码

基于 XAF Blazor 的规则引擎编辑器
2024/5/27 11:44:41

开源项目地址:https:gitee.comlowcodexafrulesengineedit 前言 本项目是基于XAFBlaz的规则引擎编辑器,规则引擎采用的是微软开源的RulesEngine RulesEngine项目地址:https:github.commicrosoftRulesEngine 背景 在软件开发中,规则引擎扮演着至关重要的角色。它允许开发人员将业务规则从代码中分离出来,以便更灵活地管理和调整规则。然而,随着规则节点数量和复杂性的增加,手动编辑规则变得越来越繁琐。因此,我决定开发一款规

多个 .NET Core SDK 版本之间进行切换 global.json
2024/5/27 11:44:40

由于同一台电脑可以安装多个版本的. Ce SDK。 当安装了许多不同版本的. Ce SDK 之后,要如何才能使用旧版dot 命令,执行dot new 或dot build 之类的命令? 这部分其实并不困难,只要设定global.json 即可。 首先要查询目前电脑所有安装过的SDK 版本,首先通过 dot listsdks 查看已安装的sdk版本。C:\Users\CCdot listsdks 3.1.426 [C:\Program Files\dot\sdk] 6.0.419 [C:\Program F

面向对象设计的六大原则(SOLID原则)-——单一职责原则
2024/5/27 11:44:40

单一职责原则(Single Responsibility Principle SRP)是面向对象编程和设计的五大SOLID原则之一。它强调一个类、方法或模块应该只有一个职责,即只做一件事情。如果一个类承担的职责过多,那么它的可维护性、可读性和可扩展性都会受到影响。当需要修改类的某个职责时,可能会影响到其他职责的实现,导致不必要的代码改动和潜在的bug。 详细解释 一个类应该只有一个引起变化的原因。这意味着,如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责,就应该考虑类的职责分离。

上传文件附件时判断word、excel、txt等是否含有敏感词如身份证号,手机号等
2024/5/27 11:44:40

上传附件判断wd、excel、txt等文档中是否含有敏感词如身份证号,手机号等,其它检测如PDF,图片(OCR)等可以自行扩展。 互联网项目中,展示的数据中不能包含个人信息等敏感信息。判断wd中是否包含手机号,wd正文中是否包含身份证号等敏感信息,通过正则表达式判断匹配手机号,身份证号,以下做为参考。会出现碰撞错误,碰撞不准确等情况,不在本文范围。 开发语言C#,框架asp. webfm。由于上传文件是做的判断,所以这里是判断数据流HttpPostedFile postedFile中的内容。通过load本

HttpClientHandler VS SocketsHttpHandler
2024/5/27 11:44:39

. Framewk 和 . Ce 2.0 及更低版本中由 HttpClient 使用的默认消息处理程序为HttpClientHler。从 . Ce 2.1 开始,类SocketsHttpHler提供了更高级别的 HTTP 网络类(例如HttpClient )使用的实现。使用SocketsHttpHler提供了许多优点:与之前的实施相比,性能显着提高。 消除平台依赖性,从而简化部署和服务。例如,libcurl不再依赖于 macOS 的 . Ce 和 Linux 的 . Ce。 所有 . 平台上的行为一致。如

WPF中的命令模式:打造清晰、可重用的代码利器
2024/5/27 11:44:39

概述:在WPF中,Comm是一种优秀的机制,通过它,我们能够将用户界面操作与业务逻辑分离,提高代码的可维护性和可重用性。通过自定义IComm接口的实现(如RelayComm),我们能够轻松创建并在XAML中绑定命令,实现清晰的MVVM架构。这种模式使得应用程序的开发更加灵活,同时提高了代码的可测试性。 在WPF(Windows Presentation Foundation)中,Comm(命令)是一种用于处理用户界面元素交互的机制,它有助于将用户输入(如按钮点击、菜单选择等)与应用程序逻辑分离开来。使用命

gRPC入门学习之旅(一)
2024/5/27 11:44:38

gRpc简介gRPC 是Google公司开发的基于HTTP2设计,面向移动的一个高性能、开源和通用的 RPC 框架,是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。 gRpc官网地址:https:www.grpc.iogRpc中文文档地址:http:doc.oschina.grpcgRPC是一款RPC框架,那么先了解Rpc是什么。 Rpc基本概念   RPC(Remote Procedure Call)远程过程调用,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网

CYQ.Data 支持 KingbaseES人大金仓数据库
2024/5/27 11:44:38

KingbaseES人大金仓数据库介绍: KingbaseES是一种关系型数据库管理系统,也被称为人大金仓数据库。KingbaseES 是北京人大金仓信息技术股份有限公司研发的,具有自主知识产权的通用数据库产品。 该产品面向事务处理类应用,兼顾各类数据分析类应用,可用做管理信息系统、业务及生产系统、决策支持系统、多维数据分析、全文检索、地理信息系统、图片搜索等的承载数据库。 作为KingbaseES产品系列最新一代版本,KingbaseESV8在系统的可靠性、可用性、性能和兼容性等方面进行了重大改进。 以

C#事件(event)的理解
2024/5/27 11:44:37

一、多播委托的应用观察者模式 遇到一个开发的问题? 面试者:以面向对象的思想实现一下的场景: 猫:Miao一声,紧接着引发了一系列的行为~ Miao:引发了一系列的动作; 从代码层面来说:代码这样写好吗?猫职责不单一(猫就是猫,他的行为只有Miao一声) 依赖太重,依赖了很多的普通类; 被依赖的类如果修改,可能会引发这个猫也要修改;代码不稳定; 如果要控制顺序也要修改代码; 有新需求,必须要修改历史代码开闭原则;从传统的方式去考虑的话,我们可能会写出来这个如此这样的代码 class Dog {publ

WPF --- 触摸屏下的两个问题
2024/5/27 11:44:33

引言 本片文章分享一下之前遇到的WPF应用在触摸屏下使用时的两个问题。 场景 具体场景就是一个配置界面, ScrollViewer 中包含一个StackPanel 然后纵向堆叠,已滚动的方式查看,然后包含多个 TextBlock 、 TextBox 以及DataGrid 期间遇到了两个问题:WPF在触摸屏下,如果有滚动条(ScrollViewer)的情况下,默认包含触底反馈的功能,就是触摸屏滑动到底或从底滑到顶,界面都会出现抖动的情况。 触摸屏下,当触点处于 DataGrid 中时,无法滚动界面。大概像这

Advanced .Net Debugging 4:基本调试任务(对象检查:内存、值类型、引用类型、数组和异常的转储)
2024/5/27 11:44:33

一、介绍    这是我的《Advanced . Debugging》这个系列的第四篇文章。今天这篇文章的标题虽然叫做“基本调试任务”,但是这章的内容还是挺多的。由于内容太多,故原书的第三章内容我分两篇文章来写。上一篇我们了解了一些调试技巧,比如:单步调试、下断点、过程调试等,这篇文章主要涉及的内容是对象的转储,内存的转储,值类型的转储,引用类型的转储、数组的转储、异常的转储等。第一次说到“转储”,可能大家不知道什么意思,其实就是把我们想要的内容输出出来或者说是打印出来,方便我们分析问题。SOSEX扩展的内

那些.NET中的连接池
2024/5/27 11:44:32

前言 在.中,连接池被广泛用于管理和优化不同类型资源的连接。连接池可以减少建立和关闭连接所需的时间和资源消耗,从而提高了应用程序的性能和响应能力。 HttpClient中的连接池 System..Http.HttpClient 类用于发送 HTTP 请求以及从 URI 所标识的资源接收 HTTP 响应。 每个HttpClient 实例使用自身的连接池,当实例被释放时,连接一会一同被释放,所以为了缓解端口耗尽问题,应该尽量重用HttpClient实例。 我们可以控制HttpClient中的connectio

.NET集成DeveloperSharp实现数据分页
2024/5/27 11:44:31

数据分页,几乎是任何应用系统的必备功能。但当数据量较大时,分页操作的效率就会变得很低。大数据量分页时,一个操作耗时5秒、10秒、甚至更长时间都是有可能的,但这在用户使用的角度是不可接受的…… 数据分页往往有三种常用方案。 第一种,把数据库中存放的相关数据,全部读入代码内存,再由代码对其进行分页操作。 第二种,直接在数据库中对相关数据进行分页操作,再把分页后的数据输出给代码程序。 第三种,先把数据库中的相关数据全部读入“缓存”,再由代码程序对“缓存”中的数据进行读取+分页操作。 本文下面重点阐述第一

Quartz.NET配置文件:简便任务调度,轻松管理
2024/5/27 11:44:31

概述:Quartz.是一个强大的任务调度库,支持通过配置文件灵活配置任务和触发器。配置文件中定义了调度器、线程池、作业和触发器的相关信息。默认情况下,Quartz.在应用程序根目录查找名为 quartz.config 的配置文件。若配置文件位于其他路径或具有不同名称,可以通过传递 NameValueCollection 来指定。以下是一个简单的示例,演示了如何使用配置文件配置两个作业和触发器。 Quartz.是一个强大的开源任务调度库,可以通过配置文件方便地进行任务配置。使用配置文件的优点在于可以将任务的

C#中轻松实现二维码和条形码识别:OpenCvSharp和ZXing详细教程
2024/5/27 11:44:31

概述:本教程使用OpenCvSharp和ZXing库,详细介绍了在C#中识别二维码和条形码的步骤。通过导入必要的命名空间、加载图像,并使用ZXing库进行二维码和条形码的识别,提供了清晰的示例代码。这方便了开发人员在项目中集成二维码和条形码识别功能。 要使用OpenCvSharp来分别识别二维码和条形码,首先需要确保已经安装了OpenCvSharp库。你可以通过以下步骤在C#中使用OpenCvSharp来实现这两种识别。 步骤 1:安装 OpenCvSharp 在 Visual Studio 中,通过 N

串口通信利器:SerialPortStream库详解,轻松实现C#串口开发
2024/5/27 11:44:28

概述:RJCP.DLL.SerialPtStream库为C#串口通信提供强大支持,跨平台、高度可定制,集成基础功能如打开、配置串口和数据读写,以及高级功能包括事件处理、超时设置等,极大简化串口开发流程,适用于不同平台和复杂通信需求。 C#串口开发之RJCP.DLL.SerialPtStream库介绍 用途与优点 RJCP.DLL.SerialPtStream库用于C#中串口通信的开发,具有以下优点:跨平台支持: 适用于Windows、Linux和macOS等多个平台。 高度可定制性: 提供灵活的配置选项,

Protobuf-net:C#高效序列化工具,助力接口传输与前端解析
2024/5/27 11:44:28

概述:Protobuf是C#中高效的二进制序列化工具,以紧凑、跨语言支持和卓越性能著称。通过定义消息类型、序列化和反序列化实现数据传输,并可适用于Web接口。前端可使用protobuf.js库解析Protobuf格式数据。 Protobuf 在 C# 中的编码结构及使用方法 优点 Protobuf(Protocol Buffers)是一种高效的二进制序列化工具,具有以下优点:高效紧凑: 生成的二进制数据体积小,传输效率高。 跨语言支持: 适用于多语言环境,实现了多语言间数据的无缝交互。 性能优越: 相比其