-
(点击上方蓝字,可快速关注我们)来源:张蘅水cnblogs.com/chenug/p/9848852.html一、前言最近在看《架构整洁之道》一书,书中反复提到了面向对象编程的 SOLID 原则(在作者的前一本书《代码整洁之道》也是被大力阐 ...
-
↓推荐关注↓现如今大部分服务都会有用户输入,为了服务的正常运行,很多时候不得不针对输入进行敏感词的检测、替换。如果人工做这样的工作,不仅效率低,成本也高。所以,先让代码去处理输入,成为了经济方便的途径 ...
-
一、背景1. 讲故事前些天把 .NET 高级调试[/pre] 方面的文章索引到 github 的过程中,发现了一个有意思的评论,详见 文章,截图如下:大概就是说在 Winform 的主线程下执行 Task.Result[/pre] 会造成死锁,我也看了 ...
-
↓推荐关注↓我们在.NET 6 Preview 3中交付了.NET多平台应用UI的移动和桌面开发的最新进展。此版本添加了Windows平台和WinUI 3,改进了基本应用程序和启动构建器,添加了原生生命周期事件,并添加了更多UI控件和 ...
-
↓推荐关注↓前言现在.NET Core 上线后,不可避免的会出现各种问题,如内存泄漏、CPU占用高、接口处理耗时较长等问题。这个时候就需要快速准确的定位问题,并解决。这时候就可以使用.NET Core 为开发人员提供了一系 ...
-
前言大家可能对诊断工具并不陌生,从大名鼎鼎的 dotTrace,到 .NET CLI 推出的一系列的高效诊断组件(dotnet trace,dotnet sos,dotnet dump)等, 这些工具提升了对程序Debug的能力和效率,可以让开发人员从更高层次 ...
-
一、背景1. 讲故事我在年前写过一篇关于CPU爆高的分析文章 再记一次 应用服务器 CPU 暴高事故分析,当时是给同济做项目升级,看过那篇文章的朋友应该知道,最后的结论是运维人员错误的将 IIS 应用程序池设成 32bit[/ ...
-
↓推荐关注↓需要注意的是标题中的CAP不是指的CAP理论,而是园区大神杨晓东实现的框架,CAP框架基于本地消息表用最终一致性实现分布式事务。本地消息表首先我们考虑一个场景,在将用户信息更改后,需要发送一条消息 ...
-
咨询区abatishchev:我现在有一个数字型的 string 数组。var arr = new string[] { "1", "2", "3", "4" }; [/pre][/pre]但是我的 Foo(int[] arr)[/pr ...
-
(给DotNet加星标,提升.Net技能) Docker 相比 虚拟机 具有更轻量级,更便捷的特性,为什么这么说呢?虚拟机通常打包了完整的操作系统,而容器只仅仅打包了你的应用程序,运行环境及相关依赖库,Docker 是一种 ...
-
↓推荐关注↓环境准备需要在MQ中进行安装插件 地址链接插件介绍地址:https://www.rabbitmq.com/blog/2015/04/16/scheduling-messages-with-rabbitmq/使用场景作为一个新的预支付订单被初始化放置,如果该订单在指定 ...
-
↓推荐关注↓前言随着需求的越来越复杂,最近windows的计划任务已经越发的不能满足我了,而且计划任务毕竟太弱智,总是会失败之类,强制结束之类的。最近增加了一些复杂的参数,每天的任务对同步程序调用需要多次调 ...
-
一、背景相信很多人都知道通过 任务管理器[/pre] 抓取dump,虽然简单粗暴,但无法满足程序的无数种死法,比如:内存膨胀,程序爆炸CPU爆高,程序累死应用无响应,用户气死意外退出,和人生一样既然手工太弱鸡,那有 ...
-
一、讲故事上个月有个老朋友找到我,说他的站点晚高峰 CPU 会突然爆高,发了两份 dump 文件过来,如下图:又是经典的 CPU 爆高问题,到目前为止,对这种我还是有一些经验可循的。抓 2-3 个 dump第一个:有利于算两份 ...
-
↓推荐关注↓首先,我们要感谢正在阅读这篇文章的你,我们所有的产品开发都始于你也止于你,无论你是在开发者社区上发帖,还是填写了调查问卷,还是向我们发送了反馈意见,或者参与了客户研究,感谢你帮助我们继续引 ...
-
↓推荐关注↓自1995年互联网战略日以来最雄心勃勃的事业 —— 微软.NET战略, 2000年6月30日。微软公司于2002年2月13日正式推出第一代.NET平台 .NET Framewrok 1.0。借助于自家强大易用的 Windows 系统,.NET Framewo ...
-
当我们在用 .NET 调用 RestAPI 时通常有三种选择,分别为:WebClient, HttpWebRequest,HttpClient[/pre],这篇文章我们将会讨论如何使用这三种方式去调用 RestAPI,我还会提供相应的代码案例来帮助你更好的理解这三 ...
-
.NET 6 预览版 3 现已推出,其中包括许多对新的 ASP.NET Core 改进。以下是本次预览版的新内容:更小的 SignalR、Blazor Server、MessagePack 脚本文件启用 Redis 分析会话HTTP/3 端点 TLS 配置初步 .NET 热重载支持 ...
-
↓推荐关注↓延续《.NET 简单、高效、避免OOM的Excel工具》尝试进阶做成Excel模板填充数据生成工具 MiniExcel Template。主要特点同样以Stream流、延迟查询[/pre]避免全部数据载入内存情况,做到1GB内存降低到只需60 ...
-
↓推荐关注↓前言本文主要是讲解EF Core3.0+ 如何实现自定义的数据库扩展函数虽然EF.Functions 提供了很多数据库函数,但是并不全面.比如加密解密..这样的话 我们就需要自己扩展这些数据库函数 从而达到调用的目的.本 ...
-
↓推荐关注↓考虑到直接讲实现一个类Task库思维有点跳跃,所以本节主要讲解Async/Await的本质作用(解决了什么问题),以及Async/Await的工作原理。实现一个类Task的库则放在后面讲。首先回顾一下《C#异步编程由浅入 ...
-
↓推荐关注↓最近升级专案到大统一 .NET 5 并使用 C#9 语法尝试改写套件,发现之前以为 record 只是简单属性 POCO 的简化语法糖的认知是错误。另外因为 POCO 属于需定义口语词,这边在本文定义简单属性 POCO[/pre] ...
-
之前写《.NET gRPC 核心功能初体验》,利用gRPC双向流做了一个打乒乓的Demo,存储消息的对象是IAsyncEnumerable,这个异步可枚举泛型接口支撑了gRPC的实时流式通信。本文我将回顾分享foreach/yield return/async awa ...
-
大家用 ASP.NET Core 进行项目开发时,常会有生成 PDF 的需求,那如何生成呢?这篇文章我们就来讨论如何通过 DinkToPdf[/pre] 来生成 PDF 文档,DinkToPdf 封装了 C++ 的 wkhtmltopdf[/pre] 工具包,前者通过 P/Invo ...
-
yield关键词是在 C# 2.0 中被引入的,我们都知道实现了 IEnumerable 接口的类都可以用于被 foreach 迭代,这是因为 IEnumerable 接口中提供了一个可迭代的 GetEnumerator()[/pre] 方法,代码定义如下:public i ...
-
前言async/await异步操作,是C#中非常惊艳的"语法糖",让异步编程变得优美且傻瓜化到了不可思议的程度。就连JavaScript都借鉴了async/await语法,让回调泛滥的JavaScript代码变得很优美。我之前录制的.NET视频教程已 ...
-
↓推荐关注↓前言最近晚辈尝试做一个.NET简单、高效、避免OOM的Excel工具 MiniExcel。主要目前主流框架大多将资料全载入到内存方便操作,但这会导致内存消耗问题,MiniExcel 尝试以 Stream 角度写底层算法逻辑,能让 ...
-
↓推荐关注↓前言在如间的网络环境下,高并发的场景无处不在,特别在面试如何解决高并发是一个躲不过的问题,即使生产环境达不到那么高的qps但是也应该给自己留条后路来应对日后可能发生的高并发场景,不用匆忙的加 ...
-
当我们用 C# 进行编码的时候,总需要写很多的模板代码,即使是最简单的 console 程序,想象一下,如果去测试一个 类库[/pre] 或者 API[/pre] 的功能,通常你会用 Console 程序去实现,在开始工作的时候会发现你受到了 ...
-
咨询区stackoverflowuser:请问类型 IQueryable[/pre] 和 IEnumerable[/pre] 有什么异同?我应该使用哪一个而不是另一个,代码如下:IQueryable custs = from c in db.Customer ...
-
(给DotNet加星标,提升.Net技能)简介官方介绍,Flurl是一个现代的,流利的,支持异步的,可测试的,可移植的,URL增强和Http客户端组件。Url构建现在有一个登录的接口,地址如下:https://www.some-api.com/login? ...
-
介绍用一种全新的雪花漂移算法,让ID更短、生成速度更快。核心在于缩短ID长度的同时,还能拥有极高瞬时并发处理量(50W/0.1s),及强大的配置能力。需求来源1、作为架构设计的你,想要解决数据库主键唯一的问题,特 ...
-
(给DotNet加星标,提升.Net技能)转自:东邪独孤cnblogs.com/tcjiaan/p/14547950.html前言小风扇,其实就是一个电机(马达),然后轴子上套一个扇叶。扇叶有两叶的,也有三叶的。这种我们小时候没少玩,太阳能帽子 ...
-
(给DotNet加星标,提升.Net技能)匿名函数[/pre] 在 C# 中已经出现很多年了,虽然匿名函数用起来很爽,但代价是不小的,为了避免不必要那些你意想不到的内存分配,这就是为什么 C#9 中引入 static 匿名函数的原因, ...
-
(给DotNet加星标,提升.Net技能)转自:土伦cnblogs.com/yumaster/p/14523591.html前言去年下半年开始从BS开发转战CS开发了,相继做了一些大大小小的项目。最近在做的一个人脸识别挺有意思,作为一个初学者我也是摸 ...
-
(给DotNet加星标,提升.Net技能)英文:devblogs.microsoft.com译文:cnblogs.com/ElderJames译者:ElderJames前言《.NET 6 Preview 2 发布》其中包括许多对 ASP.NET Core 的新改进。以下是本次预览版的新内容:Raz ...
-
(给DotNet加星标,提升.Net技能)转自:dax.netcnblogs.com/daxnet/p/14456391.htmlVisual C# 8.0中引入了可空引用类型(Nullable reference type),通过编译器提供的强大功能,帮助开发人员尽可能地规避由空引用 ...
-
(给DotNet加星标,提升.Net技能)转自:lindexicnblogs.com/lindexi/p/14515588.html在 C# 9.0 里面添加的一个新特性是支持协变返回类型,也就说子类重写了基类的抽象或虚拟方法,可以在返回值里面返回协变的类型, ...
-
↓推荐关注↓前言本文主要是讲解EF Core3.0+ 通过拦截器实现读写分离与SQL日志记录注意拦截器只有EF Core3.0+ 支持,2.1请考虑上下文工厂的形式实现.正文一、通过拦截器实现读写分离先讲一下本文实现的方式吧SQL 通过 ...
-
↓推荐关注↓起因近期项目中,提供了一些调用频率较高的api接口,需要保障服务器的稳定运行;需要对提供的接口进行限流控制。避免因客户端频繁的请求导致服务器的压力。一、AspNetCoreRateLimit 介绍AspNetCoreRateL ...
-
↓推荐关注↓在领域驱动设计中,由于领域边界的存在,以往的分层设计中业务会按照其固有的领域知识被切分到不同的限界中,并且引入了领域事件这一概念来降低单个业务的复杂度,通过非耦合的事件驱动来完成复杂的业务 ...
-
前言.NET Core 中使用异步编程已经很普遍了, 在项目中随处可见 async 和 await,它简化了异步操作,允许开发人员,使用同步的方式编写异步代码,你会发现在大部分的异步方法中,都提供了CancellationToken参数,本 ...
-
算法介绍一个全新的雪花漂移算法,生成的ID更短、速度更快。核心在于缩短ID长度的同时,具有极高瞬时并发处理量(保守值 50W/0.1s)。原生支持 C#/Java/Go/Rust/C 等语言,并由 Rust 提供 PHP、Python、Node.js、Rub ...
-
↓推荐关注↓一、什么算异步?广义来讲,两个工作流能同时进行就算异步,例如,CPU与外设之间的工作流就是异步的。在面向服务的系统中,各个子系统之间通信一般都是异步的,例如,订单系统与支付系统之间的通信是异 ...
-
介绍在微服务大行其道的今天,系统会被拆分成多个模块,作为单独的服务运行,同时为了集中化管理,我们还需要日志中心,配置中心等,很多开发人员可能更熟悉 ApolloConfig,这个组件功能也很完善,dotnet的客户端也 ...
-
↓推荐关注↓前言.NET 6 Preview 3 发布,这个版本的改进大多来自于底层,一起来看看都有什么新特性和改进吧。库改进新增值类型作为字典值时更快的处理方法.NET 6 Preview 3 引入了新的 unsafe API CollectionsMarsh ...
-
↓推荐关注↓.NET Core引入了ioc机制让开发人员逐步习惯从过去的各种new对象变成通过IOC框架来管理对象的生命周期。这样当我们需要某个对象的时候,我们一般在构造函数里申明该对象的接口,即可通过ioc容器创建它。 ...
-
一、背景相信有很多朋友在遇到应用程序各种奇葩问题后,拿下来一个dump文件,辛辛苦苦分析了大半天,终于在某一个线程的调用栈上找到了一个可疑的方法,但 windbg 常常是以 汇编[/pre] 的方式显示方法代码的,可惜的 ...
-
一、背景1. 讲故事有位粉丝朋友在后台留言让我帮忙看看他的 Winform程序 UI无响应[/pre] + 410线程[/pre] 到底是啥情况,如下图:img说实话,能看到这些真实案例我是特别喜欢的免责声明:如果侵犯了您的权益,请联系 ...
-
一、背景《如何在 .NET 程序万种死法中有效的生成 Dump》上一篇我们聊到了如何通过 procdump 抓取 cpu爆高 和 内存暴涨 两种情况,这一篇再聊聊如何去抓程序 挂死 和 意外退出。二、程序挂死1. 定义程序挂死[/pre] ...