WPF下使用FreeRedis操作RedisStream实现简单的消息队列
2024/10/14 16:03:12

Redis Stream简介 Redis Stream是随着5.0版本发布的一种新的Redis数据类型: 高效消费者组:允许多个消费者组从同一数据流的不同部分消费数据,每个消费者组都能独立地处理消息,这样可以并行处理和提高效率。 阻塞操作:消费者可以设置阻塞操作,这样它们会在流中有新数据添加时被唤醒并开始处理,这有助于减少资源消耗并提高响应速度。 数据持久化:它可以将数据持久化到内存(配置本地持久化后会写入到存储设备)中进行保存,等待消费。 多生产者多消费者:Redis Streams能够在多个生产者和消

.NET 跨平台工业物联网网关解决方案
2024/10/14 16:03:09

前言 随着工业4.0时代的到来,物联网技术正在以前所未有的速度改变着我们的生产和生活方式。本文给大家介绍一个基于 . 6 开发的跨平台工业物联网网关解决方案。 工业物联网(IIoT)成为了连接物理世界与数字世界的纽带。而在这个网络中,工业物联网网关就像是一个智能的交通警察,负责指挥着设备与云端系统之间繁忙的数据交通。 接下来,本文将介绍这个解决方案是如何工作的,它能带来哪些好处,以及如何轻松集成到现有的生产环境中。 什么是工业物联网网关? 工业物联网网关(IIoT Gateway)是指一种硬件设备或软件程

第28篇 如何.net中实现高效可靠数据同步api
2024/10/14 16:03:09

通过以下方式可以高效,并保证数据同步的可靠性 1.API设计使用RESTful设计,确保API端点明确,并使用适当的HTTP方法(如POST用于创建,PUT用于更新)。 设计清晰的请求和响应模型,以确保客户端能够理解预期格式。2.数据验证在服务器端进行严格的数据验证,确保接收到的数据符合预期格式和类型 可以使用数据注解(Data Annotations)或Fluent Validation库进行验证。3.事务处理对于需要多步骤的操作,使用数据库事务(Transaction)来确保数据的一致性。只有在所有操

在 ASP.NET Core Web API 中使用操作筛选器统一处理通用操作
2024/10/14 16:03:07

前言:什么是操作筛选器 操作筛选器是 ASP. Ce Web API 中的一种过滤器,用于在执行控制器操作(Action)之前或之后执行一些代码,完成特定的功能,比如执行日志记录、身份验证、授权、异常处理等通用的处理逻辑。 每次 ASP. Ce Web API 中控制器的操作方法被执行的时候,操作筛选器都会被执行,所以操作筛选器默认是应用于所有控制器的操作方法的。 一个项目中可以注册多个操作筛选器,这些操作筛选器组成一个链,上一个筛选器执行完了再执行下一个。next 就是一个用来指向下一个操作筛选器的委托

C# ASP.NET Core Web API 框架 实现向手机发送验证码短信
2024/10/14 16:03:05

本文章主要是在C# ASP. Ce Web API框架实现向手机发送验证码短信功能。这里我选择是一个互亿无线短信验证码平台,其实像阿里云,腾讯云上面也可以。首先我们先去 互亿无线 https:www.ihuyi.comapisms.html 去注册一个账号 注册完成账号后,它会送10条免费短信以及通话验证码(ps:我这上面不是10条因为我已经使用了 新人都是10条) 2.下面开始代码首先创建一个SendSmsUtil.cs的类3.下面直接上代码 using System using System.Co

[使用目前最新版]HybridCLR6.9.0+YooAsset2.2.4实现纯C# Unity热更新方案 (一)
2024/10/14 16:03:01

1.前言什么是热更新 游戏或者软件更新时,无需重新下载客户端进行安装,而是在应用程序启动的情况下,在内部进行资源或者代码更新 Unity目前常用热更新解决方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用资源管理解决方案 AssetBundles,Addressable,YooAsset等在这里我们采用HybridCLR+YooAsset的方案进行热更新 (不建议Addressable方案资源管理,个人感觉坑有亿点多) 2.创建开发环境 这里使用VS2022,Unity编辑器版本

警惕 Visual Studio 属性求值副作用导致逻辑不符合预期
2024/10/14 16:02:58

本文将举一个例子,给出属性求值副作用导致逻辑不符合预期的简单复现步骤,用此例子告诉大家在 Visual Studio 里面进入断点和不进入断点导致的逻辑行为差异 默认启用属性求值或其他隐式函数调用选项在 VisualStudio 的选项调试里面,如下图所示如以下代码,在一个名为 F1 类型里面有一个 F2 属性。这个属性采用非常常见的延迟创建方法,核心代码如下 class F1 {public F2 F2{get{if (_f2 is null){var f2 = new F2(this)_f2 = f2

C#爬取动态网页上的信息:B站主页
2024/10/14 16:02:57

目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选择器参考文章 简介 动态内容网站使用 Javript 脚本动态检索和渲染数据,爬取信息时需要模拟浏览器行为,否则获取到的源码基本是空的。 本文使用的爬取步骤如下:使用 Selenium 获取渲染后的 HTML 文档 使用 HtmlAgilityPack 解析 HTML 文档新建项目,安装需要的库:Selenium.WebDriver HtmlAgilityPack获取 HTML 文档 需要注意的主要是以下2点:设置浏览器启动参数:无

Serilog文档翻译系列(六)
2024/10/14 16:02:56

01、提供的接收器 Serilog 使用接收器将日志事件以各种格式写入存储。许多接收器由更广泛的 Serilog 社区开发和支持;可以通过在 NuGet 上搜索 serilog 标签找到。02、增强器 日志事件可以通过多种方式增强属性。通过 NuGet 提供了一些预构建的增强器: InstallPackage Serilog.Enrichers.Thread增强配置是通过 Enrich 配置对象进行的: var log = new LoggerConfiguration().Enrich.WithThre

.NET 开源高性能 MQTT 类库
2024/10/14 16:02:56

前言 随着物联网(IoT)技术的迅猛发展,MQTT(消息队列遥测传输)协议凭借其轻量级和高效性,已成为众多物联网应用的首选通信标准。 MQTT 作为一个高性能的 . 开源库,为 . 平台上的 MQTT 客户端与服务器开发提供了强大的支持。 本文将全面介绍 MQTT 的核心功能、显著优势及其广泛的应用场景,帮助我们更好地利用工具提升物联网项目的效率与可靠性。 项目介绍 MQTT 是一个跨平台、高性能和开源的 MQTT 客户端库和服务端实现,是 . 平台上主流的 MQTT 实现之一。 基于 MQTT,用户可以

第27篇 sqlserver2022详细安装步骤
2024/10/14 16:02:37

话不多说,直接开干 一.下载 1.官方链接下载: https:www.microsoft.comzhcnsqlserversqlserverdownloads2.在下载目录中找到下面这个小的安装包 SQL2022SSEIDev.exe,运行开始下载SQL server;二.安装SqlServer2022 服务端 1.双击安装包 【SQLServer2022x64CHSDev.iso】4.选择点击左侧的安装,然后点击右侧“全新SQL Server独立安装或向现有安装添加功能”5.选择Developer版本

弹幕树洞项目功能新增篇
2024/10/14 16:02:32

项目地址 项目后端地址:https:github.comZyPLJZYTteeHole项目前端页面地址:ZyPLJTreeHoleVue (github.com) https:github.comZyPLJTreeHoleVue目前项目测试访问地址:http:tree.pljzy.top 注意是http输成https就访问到博客里面去了。系列文章📖. Ce搭配Vue开源弹幕效果,实现一个评论小项目。好玩! 妙妙屋(zy) 博客园 (cnblogs.com) https:www.cnblogs.com

wpf ToggleButton选中效果和一个登录界面
2024/10/14 16:02:31

先看效果 我修改了ToggleButton的ControlTemplate,在ContentPresenter外面加了4个Bder控制4个Bder的位置在ControlTemplate的左上、右上、左下、右下,选中时,触发4个边框的BderThickness Setter Property="BderThickness" TargetName="brdOut1" Value="2200" Set

.NET 工具库高效生成 PDF 文档
2024/10/14 16:02:30

前言 QuestPDF 是一个开源 . 库,用于生成 PDF 文档。使用了C# Fluent API方式可简化开发、减少错误并提高工作效率。利用它可以轻松生成 PDF 报告、发票、导出文件等。 项目介绍 QuestPDF 是一个革命性的开源 . 库,它彻底改变了我们生成 PDF 文档的方式。 QuestPDF 的核心思想在于使用声明式的 C# 代码来描述 PDF 文档的结构和样式。 这种方法与我们使用 HTML 和 CSS 构建网页的方式非常相似,我们能够迅速上手,并轻松创建复杂的 PDF 文档。 项目

移动开发(一):使用.NET MAUI开发第一个安卓APP
2024/10/14 16:01:59

移动开发(一):使用. MAUI开发第一个安卓APP对于工作多年的C#程序员来说,近来想尝试开发一款安卓APP,考虑了很久最终选择使用. MAUI这个微软官方的框架来尝试体验开发安卓APP,毕竟是使用Visual Studio开发工具,使用起来也比较的顺手,结合微软官方的教程进行了安卓APP的开发,下面把开发的过程给大家分享一下,对于那些从事C#的开发人员,想尝试开发自己的一款APP,也可以跟着本文进行尝试一下。 一、. MAUI官方介绍 它是. 多平台应用 UI (. MAUI) 是一个跨平台框

第26篇 Vue项目如何运行起来
2024/10/14 16:01:59

在工作中,我们常要接手别人的vue项目,那我们从svn、git上拿到别人的vue项目后,要如何跑起来呢? 第1步 将项目里的“node_modules”文件夹删除,这是vue项目的依赖包。不过由于“node_modules”文件夹太大,一般不会打包上传到svn、git上的,所以没有这个文件夹就不用删。第2步 删除packagelock.json。packagelock.json记录了整个node_moudles文件夹的树状结构,还记录了模块的下载地址,但是它是基于项目作者的npm版本库生成的,若不删掉这个

Serilog文档翻译系列(五)
2024/10/14 16:01:57

日志事件通过 Log 静态类或 ILogger 接口上的方法写入接收器。下面的示例将使用 Log 以便语法简洁,但下面显示的方法同样可用于接口。 Log.Warning("Disk quota {Quota} MB exceeded by {User}" quota user) 通过此日志方法创建的警告事件将具有两个相关属性,Quota 和 User。假设 quota 是一个整数,user 是一个字符串,呈现的消息可能如下所示。 Disk quota 1024 MB exceeded by "nblumh

第25篇 RabbitMQ在.net core中的应用
2024/10/14 16:01:57

RabbitMQ 是一个可靠且成熟的消息传递和流代理,它很容易部署在云环境、内部部署和本地机器上。它目前被全世界数百万人使用。 1.基本概念 生产者(Producer) 生产者是一个发送消息的程序。发送消息的程序可以是任何语言编写的,只要它能够连接到RabbitMQ服务器,并且能够发送消息到RabbitMQ服务器。消费者(Consumer) 消费者是一个接收消息的程序。接收消息的程序可以是任何语言编写的,只要它能够连接到RabbitMQ服务器,并且能够从RabbitMQ服务器接收消息。队列(Queue)

.NET 8 + Vue/UniApp 高性能前后端分离框架
2024/10/14 16:01:55

前言 作为一名开发者,我们知道能够简化开发流程、提升工作效率的工具是至关重要的。 推荐一款前后端分离框架 Admin.(ZRAdmin),它不仅可以满足项目开发的需求,还应用了一些新的特性,如RBAC权限管理、SqlSugar M、以及Vue3的动态国际化支持,代码简洁易用。 接下来,让我们一起深入了解和学习这个项目的主要特点和优势。 项目介绍 基于 .5.7.8 实现的通用权限管理平台(采用 RBAC 模式),后端使用 SqlSugar 作为 M;前端则利用 Vue2.xVue3.x 进行开发。通过整合

第24篇 局域网内数据之间传输的方式
2024/10/14 16:01:55

在局域网内,各个电脑可以通过无线网卡进行接口数据的直接传输。以下是一些实现方法和注意事项: 1.使用网络共享 在局域网内建立一个文件共享服务,比如通过Windows的文件共享或Linux的Samba服务。各个电脑可以直接访问共享的文件或目录进行数据传输。 2.使用Socket编程: 可以编写应用程序,通过Socket进行直接数据传输。各个电脑可以在指定的端口上监听并接收数据 3.使用FTPSFTP 在某台电脑上搭建FTP或SFTP服务器,其他电脑可以通过FTP客户端程序上传或下载文件。 4.使用特定的传输

VSCode开发.net项目时调试无效
2024/10/14 16:01:54

先说一下我遇到问题,我的项目是8.0版本,在VisualStudio上可以正常运行与调试,但是在VSCode里可以正常跑但无论怎么打断点都不会进去,提示"还没有为该文档加载任何符号"。 其实最开始我以为是launch.json没有配置好,搞了一上午换了很多种配置方式结果都没有变。其中我创建新的 webapi项目运行起来断点也没问题,还跑了另一个正在开发的项目也没问题。最终确定问题可能出在启动项目的.csproj文件里,最后找到了问题所在—— DebugType 无、pdbonly、嵌入、可移植、或完整,从

NET学习路线图
2024/10/14 16:01:53

1.基础阶段 编程语言基础(C#) 语法学习:掌握 C# 的基本语法,包括变量、数据类型(如整数、字符串、布尔等)、运算符、控制流语句(如 ifelse、f、while 等)。 面向对象编程概念:深入理解面向对象的三大特性,即封装、继承、多态,学会定义类、对象、属性、方法等,以及类的继承和多态的实现。 高级特性:学习接口、委托、事件、泛型、异常处理等 C# 的高级特性,这些特性在实际开发中非常重要,可以提高代码的可维护性和可扩展性。 . 基础框架 公共语言运行时(CLR):了解 CLR 的作用,它是. 框

从0到1搭建权限管理系统系列三 .net8 JWT创建Token并使用
2024/10/14 16:01:48

说明 该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发)。 该系统文章,我会尽量说的非常详细,做到不管新手、老手都能看懂。 说明:OverallAuth2.0 是一个简单、易懂、功能强大的权限+可视化流程管理系统。 结合上一篇文章使用,味道更佳:从0到1搭建权限管理系统系列二 .8 使用JWT鉴权(附当前源码) 有兴趣的朋友,请关注我吧(^▽^)。关注我,学不会你来打我 创建Token创建token的因素(条件)有很多,在该篇文章中,

2024 年 C# 高效开发:精选实用类库
2024/10/14 16:01:47

前言 在平时开发中,好的类库能帮助我们快速实现功能,C#有很多封装好的类库。 本文将介绍一些2024年特别受欢迎的C#类库,并分析各自的优点让我们编程写代码变的更轻松、更快捷。 快来看一看有没有大家常用的类库,欢迎各位小伙伴留言补充。 1、Entity Framewk Ce Entity Framewk Ce 是 Microsoft 推荐的 M(对象关系映射)框架,支持多种数据库系统,包括 SQL Server、MySQL 和 PostgreSQL,并提供了丰富的查询、更新和删除操作。另外它还具备延迟加载

第23篇 委托的概述
2024/10/14 16:01:47

什么是委托? 委托可以说是把一个方法代入另一个方法执行,相当于指向函数的指针;事件就相当于保存委托的数组;1.实例化委托的方式: 方式1:通过new创建实例: public delegate void ShowDelegate() 或者 public delegate string ShowDelegate(string str) ShowDelegate d = new ShowDelegate()方式2:使用赋值的方式: ShowDelegate s = test.show方式3:匿名委托 ShowD

Windows 客户端软件自动更新服务的开发有哪些需求
2024/10/14 16:01:45

本文是从 2020 写到 2024 年,时间跨度很长,大家阅读本文时也许会看到我在不同时间段对软件自动更新这个事情的理解的变化 咱先从自动更新服务的地位开始聊起 意义 我所在的团队是做产品的,不是做项目的。对于产品来说,整个自动更新模块就是命脉级的模块 上面这句话是我这边的总工大大说的。只要自动更新机制不出问题,软件部分就没有什么大不了的问题,大不了就来一个 HotFix 解决 在我加入团队这几年里面,就有很多次的事故,全部靠着软件自动更新快速发布版本解决问题。客户端软件部分,在发布到用户端上之后,如果发

我的网站集成ElasticSearch初体验
2024/10/14 16:01:43

最近,我给我的网站(https:www.xianplay.com)尝试集成了一下es来实现我的一个搜索功能,因为这个是我第一次了解运用elastic,所以如果有不对的地方,大家可以指出来,话不多说,先看看我的一个大致流程 这里我采用的sdk的版本是Elastic.Clients.Elasticsearch Version=8.0.0.0,官方的网址Installation | Elasticsearch . Client [8.0] | Elastic 我的es最开始打算和我的应用程

盘点3款.NetCore(C#)开源免费商城系统
2024/10/14 16:01:41

CeShop商城 介绍核心商城系统(CeShop) 是基于 Asp. 8.0、UniApp开发、支持可视化布局的小程序商城系统;前后端分离,支持跨平台运行;拥有分销、代理、团购秒杀、接龙、拼团、直播、优惠券、自定义表单等众多营销功能,拥有完整SKU、下单、售后、物流流程,支持可视化自定义首页模块布局效果。  支持一套代码编译发布微信小程序版、H5版、roid版、iOS版、支付宝小程序版、百度小程序版、字节跳动小程序版、QQ小程序版、快应用、360小程序共10个平台。源码地址 演示地址 QShop

不可不知的WPF动画(Animation)
2024/10/14 16:01:40

在WPF开发应用中,动画不仅可以引起用户的注意与兴趣,而且还使软件更加便于使用。前面几篇文章讲解了画笔(Brush),形状(Shape),几何图形(Geometry),变换(Transfm)等相关内容,今天继续讲解动画相关内容和知识点,仅供学习分享使用,如有不足之处,还请指正。 什么是动画? 动画是快速循环播放一系列图像(其中每个图像与下一个图像略微不同)给人造成的一种幻觉。当图像播放速度超过了人眼识别的速度,就会感觉这些图像形成了一个连贯的变化的场景。在电影中,摄像机每秒钟拍摄许多照片(每一张成

.NET周刊【9月第3期 2024-09-15】
2024/10/14 16:01:39

国内文章 关于.在中国为什么工资低的分析 https:www.cnblogs.comthinkingmep18406244 .在中国开发者的薪资偏低,主要因市场需求、技术栈选择和企业文化等因素所致。历史上,.曾因微软的闭源策略发展受限,尽管后来推出了跨平台的. Ce,但市场接受度仍不高,主要应用于国有企业和传统行业。与Java、Python相比,.在新兴领域发展滞后,社区活跃度低,限制了开发者的技术更新和职业发展。此外,互联网企业更偏好开源技术,.开发者在这些行业的需求和薪酬因而较低。尽管.技术演进提供了