![](https://img-blog.csdnimg.cn/20190829133829527.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
.Net Core Asp.Net .Net 6
文章平均质量分 69
主打.NET 学习相关。
蓝创精英团队
你所追求的事物,所做的每一件事情,都有它存在的意义。
展开
-
Asp.Net Core 实现分片下载的最简单方式
虽然直接下载是最快的,但是,如果网络中断的话,基本得重新下载,所以,它的风险反而是最高的,而分片下载虽然有了分片的开销的,但是可以从断点处继续下载,风险反而最低,各有优势。原创 2024-06-01 23:44:26 · 836 阅读 · 0 评论 -
如何让32位.Net 应用打开3G开关
这种还在使用32位应用的场景大部分都是传统老的项目还在运行在很老的环境上,衷心希望这样长久的项目以后也越来越多(以后几百G的内存应该比比皆是了)。原创 2023-12-18 20:13:25 · 1184 阅读 · 0 评论 -
如何让.NET应用使用更大的内存
一直在思考大内存的应用,如何申请大的内存,只有实际测试和验证才知道有哪种以及哪种的方式是最佳的。现在才明白,Redis 64位系统不限制内存,32位系统最多使用3GB内存。所以,如果你想开发一个类Redis这种的中间件,内存的限制就这么多。原创 2023-12-17 14:34:17 · 2281 阅读 · 2 评论 -
Visual Studio WebHook 隧道功能展示
Visual Studio 里还有很多我们不知道的好功能,比如Live Share功能等,要多多挖掘新的姿势,效率杠杠的。原创 2023-04-21 08:45:00 · 132 阅读 · 0 评论 -
c# 实现对系统环境变量操作
写入需要管理员权限。原创 2023-01-06 14:57:00 · 858 阅读 · 0 评论 -
.Net Core 实现WebSocket Server 的另外三种方式
只有复杂的实际应用才能深入了解各个方面,果真是天降大任于斯人也,深入挖掘才能掌握更多知识。还是要勤于思考,勤于总结,我发现好多自己写过的东西都直接帮助到了我,这也许就是反哺己身吧。原创 2022-11-14 08:00:00 · 1332 阅读 · 0 评论 -
.NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
秋高气爽,终于不用那么热了。CDC功能总得来说是不可缺的,特别是跟大数据相关的业务,这个步骤总是不可少,无非是别人做和自己来做这件事情,而CDC做的好的,也就阿里了。用着有问题,就上git上问问,实在不行改改源码。.........原创 2022-09-01 08:30:00 · 749 阅读 · 0 评论 -
WebView2 通过 PuppeteerSharp 实现RPA获取壁纸 (案例版)
基于WebView2,技术又深一层次的展开,一个好的技术,必定用到合适的场景上才是最合适的。原创 2022-08-10 07:53:39 · 628 阅读 · 0 评论 -
【万字长文】使用 LSM-Tree 思想基于.Net 6.0 C# 实现 KV 数据库(案例版)
任何事情的开始都是艰难的,跨越时间的长河,一步一步的学习,才有了今天它的诞生,会了就是会了,那么,应对下一个相关问题就会容易许多,我对这样的壁垒称之为,知识的屏障。一叶障目,还真是存在,如何突破,唯有好奇心,坚持下去,一点点挖掘。......原创 2022-07-24 17:38:01 · 567 阅读 · 0 评论 -
Grpc MagicOnion库 之 客户端和服务端 (案例版)
接口定义,是我直接拿之前做的demo的样子直接搞的。也方便。至此,RPC系列已经完结了,撒花,欧耶!看着简单,搞着不知不觉已经夜深人静了,山中无岁月,世上已千年啊。原创 2022-07-20 09:00:00 · 1026 阅读 · 2 评论 -
.Net Core WebApi 部署到 Centos 7 Linux 平台 实现 服务的后台运行和服务自启动
最近在开发一个.Net Core WebApi 服务,大部分都在windwos上运行,很容易,现在要发布到linux平台上。linux 平台先要安装 .Net Core 的支持 ,可以到官方平台看其他平台安装:https://www.microsoft.com/net/core#linuxcentos敲如下命令:sudo rpm -Uvh https://packages....原创 2020-03-19 15:59:45 · 1983 阅读 · 4 评论 -
.NET 6 Linux 系统服务 Systemd (案例版)
我这里选了不使用.NET 6 特有的统一命名空间方式,就以旧方式编码。默认创建完,是这个样子的然后,修改 Program方法为以下的方法,主要是增加了UseSystemd服务修改WorkServer逻辑Linux 执行脚本因为我感觉敲命令,老麻烦了(用惯了Windows),所以,还是简单点,提供了一些命令的脚本这个是Linux系统服务的标准名称,后缀是固定的.serviceinitserver.sh初始化服务,也叫安装服务,目的是把上面的 WorkerServiceDemo.service原创 2022-07-14 09:00:00 · 862 阅读 · 0 评论 -
C# 实现 Actor并发模型 (案例版)
为啥要实现Actor模型,一个是为了更深入的了解它,一个是想实现一下。可能在某些地方直接就用了。没必要搞那么复杂引用。按照自己的理解画了一下。简单来讲,就是各个服务都可以投递消息到Actor实例里,Actor会从邮箱里把消息取出来,然后,消费掉。这么简单的一件事情。Actor.cs相关测试模型AccumulationActor.csWriteActor.cs测试代码运行结果上节实现了状态机,这节实现了Actor模型,接下来对Orleans 和 Dapr 的核心原理就了解深入一些了,那么原创 2022-07-07 08:30:00 · 742 阅读 · 0 评论 -
C# 关于状态机的实现(案例版)
以前在C语言上,自己实现过状态机,但是,过去好久了。也想通过C#实现,看看是不是方便许多。也可以在 更新状态里,自己设置下一个状态。算是转到指定状态上。比如登录成功这个是状态机的核心实现,大佬随便看一下应该就知道啥意思了。一只猫,一只狗,就可以切换状态效果了。运行结果状态机C#实现完之后,用着还是挺方便的。对于有些流程也可以用状态机来实现。https://github.com/kesshei/StateMachineDemo.githttps://gitee.com/kesshei/StateM原创 2022-07-06 08:30:00 · 2344 阅读 · 0 评论 -
C# Redis NReJSON 实现对RedisJson的使用,听说比ES快500倍
直接docker 一行命令也可以去官网查看具体详情https://hub.docker.com/r/redislabs/rejson然后,服务就启动了。简单的很现在服务已经运行了。以下是 Another Redis Desktop Manager 看到的信息安装Nuget包具体的代码实体类测试代码测试结果可以看到可以通过指定json路径来进行查询相关的信息,也可以根据节点来设置相关的信息。相对来讲还是很方便的。有点mangodb的文档的概念,具体其他API大家可以多多尝试。通过 Ano原创 2022-06-24 07:30:00 · 558 阅读 · 0 评论 -
.Net Redis 入门到熟练
所以,这种内存型的缓存,内存是越大越好,我是见过几百G的内存做的缓存服务,更大的,目前我还没有见到。网上有教程,可以参考,安装地址 : https://github.com/MicrosoftArchive/redis/releases也可以注册官网的 https://redis.com/try-free/ 免费资源,大概一百M左右好像,支持的功能多,测试用很方便。我安装此类服务直接就是Docker Desktop ,直接就部署了。方便的很。所以,建议,可以搜一下,安装个Docker Desktop,安装,原创 2022-06-22 01:33:41 · 1286 阅读 · 0 评论 -
.Net Castle.Core 实现 HTTP RPC 功能,方便接口开发
之前的文章写了如何自己实现动态代理,我这边是采用emit技术来实现的类的动态代理。但是,项目要直接用到生产环境的话,还是得测试和运行一段时间,稳定后,才可以上正式。这个时候,采用成熟的动态代理组件就显得很实用了。我这里就采用 Castle.Core 库来实现,当然,也有一些别的可以用,大致用法一致。首先,在日常对接API接口的过程中,大部分都需要客户端独自实现API接口的一个一个实现,如果遇到变动修改就有点多,比如微信公众号API对接等等。那么有没有简单的方式,我想HTTP RPC方式就可以解决这个问题,它原创 2022-06-21 07:30:00 · 1014 阅读 · 0 评论 -
.Net Core RPC 从零开发到完整 案例版
谈论到实现RPC,不可避免的就要讨论一个问题,啥是gRpc,gRpc是由谷歌实现的一个PRC,为啥带了个g呢。这就是grpc 存在的优势了。我们自己实现的话,可以通过http实现通讯,也可以通过socket 实现,websocket实现。通讯协议,也可以自定义,也可以用json,也可以用谷歌的ProtoBuf来进行实现。这都不是问题,但是,要向完整实现gRpc那种就难很多了。但是,作为参考也是很不错的选择。下面我就基于之前写过的Netty来作为通讯方式,以json为通讯数据格式,来实现一个完整的RPC案例原创 2022-06-20 07:00:00 · 1066 阅读 · 3 评论 -
.Net Core基于Emit动态代理从零实现RPC 初级实现
上篇文章,我们已经能从零实现动态代理了,其实就是类的代理,这节课,我们就基于动态代理技术,实现RPC功能。概念之类的上节文章,也讲了。如果有不懂的,可以看上节文章。废话不多说,开搞。这节文章,代码偏多,就看代码就成了。内容还是偏多,这节也算是代码级简单实现,后面还会有一节,搞完整案例的。描述一下,RPC的实现过程。假设服务端 有一个服务,对外提供一个地址,假设是 127.0.0.1:80然后,客户端要调用服务端的方法,那么,连接服务端,这是必须的,但是,服务端有什么方法呢。服务端要公开它自己的类接口信息。如原创 2022-06-17 15:01:43 · 1010 阅读 · 0 评论 -
.Net IL Emit 实现Aop面向切面之动态代理 案例版
啥是Aop呢,面向切面,啥是面向切面呢,就不太好一句话说明白了。但是,其实不论在生活中还是工作研发中,我们都能找到它。在研发中,它其实就是个过滤器,每个请求来了。它都要检查一下。在生活中,它就是父母的谆谆教导,回家就得问你吃了么。在工作中,它就是打卡机,就是刷卡机,人脸识别,总得检查你一下子。想实现AOP,就得通过代理层来实现,那么,我们就通过动态代理来实现。不懂动态代理的,可以参考设计模式之代理(中介)模式即可。其实就像生活中租房子要找中介一样。.Net框架自带开源的框架有实现代理的方式有两种,一种是静态原创 2022-06-17 13:39:54 · 570 阅读 · 2 评论 -
DotNetty 高性能NIO通讯模型 服务端和客户端案例版
还有一个叫做 内存零拷贝技术。整体架构大致如下图:从架构图来看,NIO非阻塞模型的连接数要多许多。分为服务端和客户端先安装Nuget包然后,实现服务端代码,用第三方就是方便,几行代码就搞定了。ServerMessageHandler.cs实现具体的业务测试运行代码客户端实现 Client来先安装Nuget包客户端实现 NettyClinet.csClientMessageHandler.cs实现客户端读取数据的业务客户端测试至此,已经把Netty的服务端与客户端写完了。来看下效原创 2022-06-16 18:58:07 · 1611 阅读 · 0 评论 -
基于.Net TcpListener 实现 WebSocketServer 通讯
续接上文,上文已经实现了一个可用的IOCP 完成端口服务了。本来是准备用IOCP实现服务的,但是,在实现过程中出现了Bug,短时间搞不定。就换另外一种技术 TcpListener 来实现。这篇文章就根据此服务,来实现一个WebSocketServer。虽然实现的效果不是很强大,我相信,对很多人来讲,还是具有很大的借鉴意义的。这就是这篇文章的意义。新建项目如下:整体协议大致如下:客户端请求服务端返回大概是这样子的。握手完毕,就开始用Socket开始通讯。websocket 通讯协议的实现主要的核心就原创 2022-06-16 01:23:57 · 855 阅读 · 0 评论 -
IOCP 完成端口 .Net 开发完整实例(服务端和客户端)
IOCP 算是.Net里,相对来讲是属于AIO模型的,而常用的socket是BIO模型的,Netty技术是属于NIO模型的。这个技术点算是通讯顶级的技术方案了。用的好,性能刚刚的。IOCP在Windows下,算是性能发挥最强的方案。话不多说,看代码。实现主要是两方面,一方面是实现IOCP客户端,一方面是要实现IOCP服务端。开搞。新建项目,大概是这个样子IOCP 服务端 IOCPServer.cs服务端,其实第一是用了socket异步,第二是用了一个连接池化技术。用户token管理 Async原创 2022-06-15 23:02:55 · 1078 阅读 · 0 评论 -
.Net Core WebSocket 服务端与客户端完整示例
websocket 由名知意,就是web端支持的socket通讯服务,其实,从本质来讲,也就是socket服务。所以,如果让Web端支持了socket长连接,那效率必然是杠杠的,通讯延迟是最低的,才能支持那些通讯级,实时性的需求。而且虽然,它是web端的通讯技术,但是,在实际业务应用中,却用到了各个方面,据我所知就有,web端,winform,wpf 客户端,手机app端,node.js 后端和前端,物联网终端与服务端,以及最出名的 谷歌游览器的 DevTools 协议服务端,都是基于 websocket来原创 2022-06-14 23:10:34 · 7613 阅读 · 4 评论 -
c# 实现 Server-Sent Events (SSE),服务器单方面消息推送 [案例版]
游览器通讯技术其实有很多,相较于 WebSocket 而言,Server-Sent Events (简称SSE)更少被人知晓,具体实践也较少。但是,实现却是简单的,其中 IE / Edge 几乎根本不支持 SSE。这也是WebSocket活的原因,相比 websocket的复杂来讲,SSE相对来讲实现就简单多了,如果WebSocket是全双工,那么SSE就是半双工通信。而且,在.NET 技术栈里 SignalR 其实是包含了前端的ajax通讯、websocket通讯以及SSE(游览器事件)通讯。但是也不影响原创 2022-06-14 12:07:06 · 2351 阅读 · 1 评论 -
.NET 5 自定义配置(动态配置,配置中心) 案例版
有些功能可能自己用着简单,不需要那么复杂。想着简单粗暴的解决问题,可控的实现代码控制,就可以用这样的方式实现。另外,如果对配置中心的原理,以及对.NET 底层的配置深入理解,就得动手实现一下,才能更深入的了解此功能,对吧。统一按照依赖注入的方法获取对象构造注入 以下对象IConfiguration configuration注: 否则可以自己构造对象配置如何动态更改还能被读到呢假设配置如下:读取相应的值(大致有以下几个用法)配置节结构首先不论你是啥文件方式,INI,JSON,YAML,XML原创 2022-06-10 13:31:33 · 1111 阅读 · 0 评论 -
.Net之时间轮算法(终极版)定时任务
一个基于时间轮原理的定时器其实我是有一篇文章(.Net 之时间轮算法(终极版))针对时间轮的理论理解的,但是,我想,为啥我看完时间轮原理后,会采用这样的方式去实现。可能只是一些小技巧不上大雅之堂吧,大佬看看就行了。当然如果大佬有别的看法,也请不吝赐教,互相交流,一起进步。作用么,造个小轮子,顺便,对任务调度的实现多一些深度的思考和了解。实现了对方法的定时 循环执行。大概样子是下面这样的能实现,定时任务,死信任务,能支持CRON表达式通过 TimeTask进行实现的主要是基于 NCrontab 库,实现原创 2022-06-07 18:49:53 · 628 阅读 · 0 评论 -
.Net 之时间轮算法(终极版)
我也认真的看了时间轮算法相关,大致都是如下的一个图大部分文章在解释这个为何用时间轮的时候都再说对于以上的描述,我自己还是很不认同的,我为啥要声明这么大的数组,难道不能有一个任务,我就放一个任务么,实际数组的长度应该是你任务数的长度把。要不然,为啥要这么浪费。想不通,可能还有别的解释,谁有答案可以告诉我。在实际的使用中,一般都为秒级,毫秒级都很少,因为毫秒级的不准。所以,我可以根据这些通过hash字典构建一个 这样的时间轮算法,也作为我自己想实现定时任务框架的一部分。最后的效果当然,也可以通过C原创 2022-06-07 18:34:08 · 369 阅读 · 0 评论 -
.Net WebView2 项目,实现 嵌入 WEB 页面 Chromium内核
开发需要的条件1.运行时:WebView2 - Microsoft Edge Developer 通过控制面板,我们也能看到已经安装了这个运行时了。没有的话,需要上边的那个地址下载安装。具体地址:https://go.microsoft.com/fwlink/p/?LinkId=2124703https://go.microsoft.com/fwlink/p/?LinkId=2124703也可以通过 csdn下载:MicrosoftEdgeWebview2Setup-C#...原创 2022-05-17 15:34:40 · 2582 阅读 · 0 评论 -
开源 .Net C# 解放自己从部署服务开始( 类似 jenkins,等发布工具)
上一个文章中,我把相关概要设计给发出来了。很多朋友还是希望有实际的代码来直接用,我想着那就直接开源吧。目前支持的服务已经从支持CS这种支持到了OSS这种来实现发布和同步。CS这种架构是需要 服务端和客户端支持的,OSS这种,就需要客户端 < = > OSS服务< = > OSS服务端 来实现。代码也很简单,直接来个开原地址:GitHub - kesshei/AutoPublishing: .Net 自动发布项目框架,目前BS方式和OSS方式,默认支持net5 git.原创 2022-04-09 10:18:00 · 945 阅读 · 0 评论 -
.Net C# 解放自己从部署服务开始( 类似 jenkins,等发布工具)
主要面对的环境是测试环境,你需要把服务整到测试环境去,但是,测试环境,没有自动化这一套,但是,你又不得不去干这件事情,主要是 ,这件事情是重复的,可以被程序替代的。我做出来的时候,跟网友讨论,他们说可以用jenkins来部署啊,githook啥的来部署啊,第一么,我对它们稍微熟悉,第二么,我想用c#实现的服务来搞,加深自己对自动化发布这件事情的深入。好了。现在说下他们的架构吧。基本就是这个架构了环境不用说,都是我们常见的一个环境。架构么,先从客户端开始讲:客户端的职责就.原创 2022-03-27 09:53:05 · 2370 阅读 · 0 评论 -
redisjson 使用C# NReJSON 实现对redisjson的 使用
redisjson 听说性能比mongo快几十倍,但是,一直没有找到这样的教程。现在我就做一个示例。redisjson服务是用docker搭建的。可以参考这篇文章Docker 系列之 RedisJson_蓝创精英团队-CSDN博客来搭建服务。以下是代码示例需要安装Nuget包Install-Package NReJSON -Version 4.0.0 //创建redis对象 var db = ConnectionMulti原创 2022-03-03 10:07:14 · 1161 阅读 · 0 评论 -
自研内网穿透项目(Ngrok,FastTunnel,HttpMouse)
直言一直研究Ngrok项目,主要是它是go实现的,所以,转换语言这一块遇到一些障碍,关键问题是导致我很长时间没搞出来。但是,fastTunnel方案使我豁然开朗,加上HttpMouse方案,使其更加清楚内部的机制。使我也很快就搞出来了。当然,也借鉴了一下思想。在此留下脚印。技术使生活更加美好。...原创 2022-02-14 10:28:23 · 394 阅读 · 0 评论 -
.NET 5 自定义配置(动态配置,配置中心)
/// <summary> /// 增加配置扩展 /// </summary> public static class ConfigExtensions { /// <summary> /// 自定义扩展,增加配置 /// </summary> public static IConfigurationBuilder AddCustomConfig(thi...原创 2022-01-27 18:19:24 · 565 阅读 · 0 评论 -
C# 获取注释信息
首先要项目启动XML输出然后,读取此XML /// <summary> /// 注释辅助类 /// </summary> public class XmlCommentHelper { private static Regex RefTagPattern = new Regex(@"<(see|paramref) (name|cref)=""([TPF]{1}:)?(?<display>.+?)原创 2022-01-25 10:02:37 · 1788 阅读 · 2 评论 -
.Net 6 最简单的方式生成时间戳
public string GenerateTimestamp() { return new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds().ToString(); }原创 2021-11-30 10:09:51 · 1960 阅读 · 0 评论 -
Memcached Enyim.Caching 解决无法遍历获取Key的问题
STATS命令出于性能考虑,memcached没有提供遍历功能,不过我们可以通过以下两个stats命令得到所有的缓存对象。1、stats items 显示各个slab中item的数目。2、stats cachedump slab_idlimit_num 显示某个slab中的前limit_num个key列表,显示格式:ITEM key_name [ value_length b; expire_time|access_time s]基于此 我们就可以通过 扩展类...原创 2021-07-29 16:18:48 · 422 阅读 · 0 评论 -
ActiveMQ 简单Demo
可以根据这篇文章来安装 会快速很多https://blog.csdn.net/i2blue/article/details/117422616技术点同条件均衡消费 主模式为 生产消费和发布订阅 生产消费模式queue 多个生产对多个消费者,消费者ClientID 不同,就会 负载均衡的消费 消费者ClientiD 相同,那只有一个能消费 可以根据某个条件进行过滤进行消费。 发布者可以根据条件发布 消费者可以无条件消费,这个时候,同条件就得 均衡消费 消费者可以有条件原创 2021-06-17 14:04:05 · 356 阅读 · 1 评论 -
.Net kRpc 自己实现代码
AOP 动态代理可以参考此项目 :https://blog.csdn.net/i2blue/article/details/115569790Netty 高性能服务IO可以参考此项目 :https://blog.csdn.net/i2blue/article/details/106149261实现的效果如下客户端 代码 static void Main(string[] args) { var client = RpcCli...原创 2021-04-11 16:34:40 · 166 阅读 · 0 评论 -
.Net IL Emit 实现Aop面向切面之动态代理
AOP 实现方式就是增加一层代理层,这个代理可以用以下技术实现:.Net框架自带DispatchProxy Realproxy DynamicObject开源的框架有:ImpromptuInterface PostSharp1.5 Castle.DynamicProxy 实现代理的方式有两种一种是静态织入,一种是动态织入。静态织入的话,相当于是在不影响业务的情况下,又对框架做了一层处理(PostSharp1.5)而动态织入就是在应用运行的过程中动态插入到里面。..原创 2021-04-10 12:28:34 · 510 阅读 · 1 评论