.NET Aspire Preview 4 发布!
. 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
前言 作为开发人员,我们经常向应用程序添加新功能并修改当前的 Api。版本控制使我们能够安全地添加新功能而不会造成中断性变更。一个良好的 Api 版本控制策略可以清晰地传达所做的更改,并允许使用现有 REST Api 的客户端在准备好时才迁移或更新他们的应用程序到最新版本。 哪些行为可能会造成 Api 的中断性变更呢?删除或重命名 Api 修改 Api 参数(类型名称可选参数变成非可选参数,删除必需参数等) 更改现有 Api 的行为 更改 Api 响应 更改 Api 错误代码 Me我们在做开发的过程中迟早
C#中Attribute的魅力:从基础到高级AOP实战
概述:C#中的Attribute(特性)为程序元素提供了灵活的元数据机制。除基础应用外,可高级应用于自定义代码生成、AOP等领域。通过示例展示了Attribute在AOP中的实际用途,以及如何通过反射机制获取并执行与Attribute相关的逻辑。 在C#中,Attribute(特性)是一种用于为程序实体(如类、方法、属性等)添加元数据的机制。它们提供了一种在运行时向程序元素添加信息的灵活方式。Attribute通常用于提供关于程序元素的附加信息,这些信息可以在运行时被反射(reflection)机制访问。
DiagnosticSource DiagnosticListener 无侵入式分布式跟踪
ASP. Ce 中的框架中发出大量诊断事件,包括当前请求进入请求完成事件,HttpClient发出收到与响应,EFCe查询等等。 我们可以利用DiagnosticListener来选择性地监听这些事件,然后通过自己的方式组织这些日志,实现无侵入的分布式跟踪。 下面我们通过DiagnosticSource监听EFCe,与HTTPClient,实现链路追踪。 创建监听 现在我们将配置一个DiagnosticListener来监听全部事件。 首先,我们需要一个IObserverDiagnosticListen
.NET集成DeveloperSharp实现强大的AOP
(适用于.. 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神器:轻松实现数字转大写金额的秘籍与示例代码
概述:.中实现数字转大写金额可通过现有库或自定义方法。自定义方法示例使用递归将数字分段转换为中文大写金额,处理了千、百、十、个位数。实际应用中可根据需求进一步扩展,例如处理小数部分或负数。 在.中,你可以使用以下方案之一来实现将数字转成大写金额:使用现有库: .框架中有一些库已经实现了将数字转换成大写金额的功能,例如NPOI、NumToWds等。这些库通常提供了简单易用的API。 自定义方法: 你也可以自定义方法来实现这个功能。以下是一个简单的示例,使用递归方式将数字转换成大写金额:using Syste
CYQ.Data 操作 Redis 性能测试:对比 StackExchange.Redis
前言: 前几天,点开自己的博客,看了一下 CYQ.Data V5系列 都有哪些文章, 发现了一篇2019年写的:CYQ.Data 对于分布式缓存Redis、MemCache高可用的改进及性能测试,于是点进去看了看。 感觉文章中有些表述存有问题,不过不是重点。 重点,看了里面的测试结论,如果四五年过去了,CYQ.Data 低调的更新,有没有进步呢 为了和之前的版本进行对比,好在当年有留下代码,就直接拿当年的代码来测试一下。 下面就来重新看一下新的测试结果: 测试环境: 本次测试为. Windown 版本,下
探究WPF中文字模糊的问题:TextOptions的用法
有网友问WPF中一些文字模糊是什么问题。之前我也没有认真思考过这个问题,只是大概知道和WPF的像素对齐(pixel snapping)、抗锯齿(antialiasing)有关,通过设置附加属性TextOptions.TextFmattingMode或者TextOptions.TextRenderingMode来解决。这次我也查了下资料,了解了这几个附加属性的取值范围以及用法。 像素对齐和抗锯齿 我们经常听到WPF具有分辨率无关性这个说法,因为WPF使用的是与设备无关的绘图系统,为字体和形状等内容指定大小或
[Blazor] 学习随笔——RZ10012警告的处理
程序能运行,就是告诉你RZ10012然后各种提示没有了。 清理解决方案、电脑重启了都没有用,后来搜索到github,解决了,记一下:关闭vs 删除文件夹 .vs,bin,object 打开vs,重新生成解决方案也是醉了。 文字少的博文不允许投稿到该网站分类? 知道什么叫短小精悍吗?知道什么叫短小精悍吗?知道什么叫短小精悍吗?知道什么叫短小精悍吗?知道什么叫短小精悍吗?知道什么叫短小精悍吗?知道什么叫短小精悍吗?知道什么叫短小精悍吗?知道什么叫短小精悍吗?知道什么叫短小精悍吗?知道什么叫短小精悍吗?知道什么
WPF绘图指南:用XAML轻松实现圆、线、矩形、文字、图片创意元素
概述:在WPF中,通过使用不同的元素如Ellipse、Line、Rectangle等,可以轻松绘制各种图形,包括圆、线条、椭圆、矩形、多边形等。同时,通过TextBlock展示文字,Image展示图片,以及Path创建路径和曲线,使得图形的绘制变得灵活多样。通过简单的XAML代码,开发者可以快速构建各种图形和界面元素 在WPF中,你可以使用Ellipse、Line、Rectangle、Polygon等元素来绘制基本的形状,同时可以使用TextBlock来显示文字,Image来展示图片,以及Path元素来创
.Net Core中使用DiagnosticSource进行日志记录
System.Diagnostics.DiagnosticSource 可以丰富地记录程序中地日志,包括不可序列化的类型(例如 HttpResponseMessage 或 HttpContext)。System.Diagnostics.DiagnosticSource 通过订阅发布模式运行,我们可以根据自己地需要发现数据源并订阅感兴趣的数据源。 DiagnosticSource 与 ILogger 区别 一般来说,DiagnosticSource主要强类型诊断,它可以记录诸如"Microsoft.As
Avalonia 11.1.0-beta1 发布
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原则)-——开闭原则
开闭原则(OpenClosed Principle OCP)是面向对象设计的五大SOLID原则之一。这个原则主张“软件实体(类、模块、函数等)应该对扩展开放,对修改关闭”。也就是说,软件的设计应该允许在不修改原有代码的情况下增加新的功能。这样的设计有助于降低代码的复杂性和维护成本,同时提高系统的可复用性和可维护性。 详细解释 开闭原则强调两点:对扩展开放:当需要增加新功能时,应该通过添加新的代码来实现,而不是修改已有的代码。这可以通过使用抽象、接口、继承和多态等面向对象的技术来实现。对修改关闭:已有的代码
基于 XAF Blazor 的规则引擎编辑器
开源项目地址:https:gitee.comlowcodexafrulesengineedit 前言 本项目是基于XAFBlaz的规则引擎编辑器,规则引擎采用的是微软开源的RulesEngine RulesEngine项目地址:https:github.commicrosoftRulesEngine 背景 在软件开发中,规则引擎扮演着至关重要的角色。它允许开发人员将业务规则从代码中分离出来,以便更灵活地管理和调整规则。然而,随着规则节点数量和复杂性的增加,手动编辑规则变得越来越繁琐。因此,我决定开发一款规
多个 .NET Core SDK 版本之间进行切换 global.json
由于同一台电脑可以安装多个版本的. 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原则)-——单一职责原则
单一职责原则(Single Responsibility Principle SRP)是面向对象编程和设计的五大SOLID原则之一。它强调一个类、方法或模块应该只有一个职责,即只做一件事情。如果一个类承担的职责过多,那么它的可维护性、可读性和可扩展性都会受到影响。当需要修改类的某个职责时,可能会影响到其他职责的实现,导致不必要的代码改动和潜在的bug。 详细解释 一个类应该只有一个引起变化的原因。这意味着,如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责,就应该考虑类的职责分离。
上传文件附件时判断word、excel、txt等是否含有敏感词如身份证号,手机号等
上传附件判断wd、excel、txt等文档中是否含有敏感词如身份证号,手机号等,其它检测如PDF,图片(OCR)等可以自行扩展。 互联网项目中,展示的数据中不能包含个人信息等敏感信息。判断wd中是否包含手机号,wd正文中是否包含身份证号等敏感信息,通过正则表达式判断匹配手机号,身份证号,以下做为参考。会出现碰撞错误,碰撞不准确等情况,不在本文范围。 开发语言C#,框架asp. webfm。由于上传文件是做的判断,所以这里是判断数据流HttpPostedFile postedFile中的内容。通过load本
HttpClientHandler VS SocketsHttpHandler
. Framewk 和 . Ce 2.0 及更低版本中由 HttpClient 使用的默认消息处理程序为HttpClientHler。从 . Ce 2.1 开始,类SocketsHttpHler提供了更高级别的 HTTP 网络类(例如HttpClient )使用的实现。使用SocketsHttpHler提供了许多优点:与之前的实施相比,性能显着提高。 消除平台依赖性,从而简化部署和服务。例如,libcurl不再依赖于 macOS 的 . Ce 和 Linux 的 . Ce。 所有 . 平台上的行为一致。如
WPF中的命令模式:打造清晰、可重用的代码利器
概述:在WPF中,Comm是一种优秀的机制,通过它,我们能够将用户界面操作与业务逻辑分离,提高代码的可维护性和可重用性。通过自定义IComm接口的实现(如RelayComm),我们能够轻松创建并在XAML中绑定命令,实现清晰的MVVM架构。这种模式使得应用程序的开发更加灵活,同时提高了代码的可测试性。 在WPF(Windows Presentation Foundation)中,Comm(命令)是一种用于处理用户界面元素交互的机制,它有助于将用户输入(如按钮点击、菜单选择等)与应用程序逻辑分离开来。使用命
gRPC入门学习之旅(一)
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人大金仓数据库
KingbaseES人大金仓数据库介绍: KingbaseES是一种关系型数据库管理系统,也被称为人大金仓数据库。KingbaseES 是北京人大金仓信息技术股份有限公司研发的,具有自主知识产权的通用数据库产品。 该产品面向事务处理类应用,兼顾各类数据分析类应用,可用做管理信息系统、业务及生产系统、决策支持系统、多维数据分析、全文检索、地理信息系统、图片搜索等的承载数据库。 作为KingbaseES产品系列最新一代版本,KingbaseESV8在系统的可靠性、可用性、性能和兼容性等方面进行了重大改进。 以
C#事件(event)的理解
一、多播委托的应用观察者模式 遇到一个开发的问题? 面试者:以面向对象的思想实现一下的场景: 猫:Miao一声,紧接着引发了一系列的行为~ Miao:引发了一系列的动作; 从代码层面来说:代码这样写好吗?猫职责不单一(猫就是猫,他的行为只有Miao一声) 依赖太重,依赖了很多的普通类; 被依赖的类如果修改,可能会引发这个猫也要修改;代码不稳定; 如果要控制顺序也要修改代码; 有新需求,必须要修改历史代码开闭原则;从传统的方式去考虑的话,我们可能会写出来这个如此这样的代码 class Dog {publ
WPF --- 触摸屏下的两个问题
引言 本片文章分享一下之前遇到的WPF应用在触摸屏下使用时的两个问题。 场景 具体场景就是一个配置界面, ScrollViewer 中包含一个StackPanel 然后纵向堆叠,已滚动的方式查看,然后包含多个 TextBlock 、 TextBox 以及DataGrid 期间遇到了两个问题:WPF在触摸屏下,如果有滚动条(ScrollViewer)的情况下,默认包含触底反馈的功能,就是触摸屏滑动到底或从底滑到顶,界面都会出现抖动的情况。 触摸屏下,当触点处于 DataGrid 中时,无法滚动界面。大概像这
Advanced .Net Debugging 4:基本调试任务(对象检查:内存、值类型、引用类型、数组和异常的转储)
一、介绍 这是我的《Advanced . Debugging》这个系列的第四篇文章。今天这篇文章的标题虽然叫做“基本调试任务”,但是这章的内容还是挺多的。由于内容太多,故原书的第三章内容我分两篇文章来写。上一篇我们了解了一些调试技巧,比如:单步调试、下断点、过程调试等,这篇文章主要涉及的内容是对象的转储,内存的转储,值类型的转储,引用类型的转储、数组的转储、异常的转储等。第一次说到“转储”,可能大家不知道什么意思,其实就是把我们想要的内容输出出来或者说是打印出来,方便我们分析问题。SOSEX扩展的内
那些.NET中的连接池
前言 在.中,连接池被广泛用于管理和优化不同类型资源的连接。连接池可以减少建立和关闭连接所需的时间和资源消耗,从而提高了应用程序的性能和响应能力。 HttpClient中的连接池 System..Http.HttpClient 类用于发送 HTTP 请求以及从 URI 所标识的资源接收 HTTP 响应。 每个HttpClient 实例使用自身的连接池,当实例被释放时,连接一会一同被释放,所以为了缓解端口耗尽问题,应该尽量重用HttpClient实例。 我们可以控制HttpClient中的connectio
.NET集成DeveloperSharp实现数据分页
数据分页,几乎是任何应用系统的必备功能。但当数据量较大时,分页操作的效率就会变得很低。大数据量分页时,一个操作耗时5秒、10秒、甚至更长时间都是有可能的,但这在用户使用的角度是不可接受的…… 数据分页往往有三种常用方案。 第一种,把数据库中存放的相关数据,全部读入代码内存,再由代码对其进行分页操作。 第二种,直接在数据库中对相关数据进行分页操作,再把分页后的数据输出给代码程序。 第三种,先把数据库中的相关数据全部读入“缓存”,再由代码程序对“缓存”中的数据进行读取+分页操作。 本文下面重点阐述第一
Quartz.NET配置文件:简便任务调度,轻松管理
概述:Quartz.是一个强大的任务调度库,支持通过配置文件灵活配置任务和触发器。配置文件中定义了调度器、线程池、作业和触发器的相关信息。默认情况下,Quartz.在应用程序根目录查找名为 quartz.config 的配置文件。若配置文件位于其他路径或具有不同名称,可以通过传递 NameValueCollection 来指定。以下是一个简单的示例,演示了如何使用配置文件配置两个作业和触发器。 Quartz.是一个强大的开源任务调度库,可以通过配置文件方便地进行任务配置。使用配置文件的优点在于可以将任务的
C#中轻松实现二维码和条形码识别:OpenCvSharp和ZXing详细教程
概述:本教程使用OpenCvSharp和ZXing库,详细介绍了在C#中识别二维码和条形码的步骤。通过导入必要的命名空间、加载图像,并使用ZXing库进行二维码和条形码的识别,提供了清晰的示例代码。这方便了开发人员在项目中集成二维码和条形码识别功能。 要使用OpenCvSharp来分别识别二维码和条形码,首先需要确保已经安装了OpenCvSharp库。你可以通过以下步骤在C#中使用OpenCvSharp来实现这两种识别。 步骤 1:安装 OpenCvSharp 在 Visual Studio 中,通过 N
串口通信利器:SerialPortStream库详解,轻松实现C#串口开发
概述:RJCP.DLL.SerialPtStream库为C#串口通信提供强大支持,跨平台、高度可定制,集成基础功能如打开、配置串口和数据读写,以及高级功能包括事件处理、超时设置等,极大简化串口开发流程,适用于不同平台和复杂通信需求。 C#串口开发之RJCP.DLL.SerialPtStream库介绍 用途与优点 RJCP.DLL.SerialPtStream库用于C#中串口通信的开发,具有以下优点:跨平台支持: 适用于Windows、Linux和macOS等多个平台。 高度可定制性: 提供灵活的配置选项,
Protobuf-net:C#高效序列化工具,助力接口传输与前端解析
概述:Protobuf是C#中高效的二进制序列化工具,以紧凑、跨语言支持和卓越性能著称。通过定义消息类型、序列化和反序列化实现数据传输,并可适用于Web接口。前端可使用protobuf.js库解析Protobuf格式数据。 Protobuf 在 C# 中的编码结构及使用方法 优点 Protobuf(Protocol Buffers)是一种高效的二进制序列化工具,具有以下优点:高效紧凑: 生成的二进制数据体积小,传输效率高。 跨语言支持: 适用于多语言环境,实现了多语言间数据的无缝交互。 性能优越: 相比其