-
↓推荐关注↓前言微信群里的一个提问引发的这个问题,有同学问:C#异步有多少种实现方式?想要知道C#异步有多少种实现方式,首先我们要知道.NET提供的执行异步操作的三种模式,然后再去了解C#异步实现的方式。.NET异 ...
-
什么是速率限制?速率限制是一个用于控制特定资源在一段时间内允许的请求次数的功能。在.NET 7中,我们可以使用内置的速率限制器中间件来配置与速率限制相关的设置。那为什么要限制速率呢?首先,通过限制网络流量, ...
-
前言支持.NET Core(2.0及以上)/.Net Framework(4.5及以上),可以部署在Docker, Windows, Linux, Mac。http请求调用是开发中经常会用到的功能,因为,很多第三方功能接口往往是通过http地址的形式提供的,比如:ChatG ...
-
简介ABP-MicroService是 一个基于ABP vNext微服务架构、vue-element-admin的后台管理框架,适用于大型分布式业务系统和企业后台,也可以集成各种小程序、电商后台以及业务中台。主要特性最新.NET Core框架,稳定强大 ...
-
↓推荐关注↓前言这是一篇ChatGPT插件开发教程,描述如何使用 ASP.NET Core Minimal API 开发 ChatGPT 插件,以最简单的 Todo List 指导示例作为入门教程。这个Todo List插件主要功能是以自然语言的方式向ChatGPT发 ...
-
↓推荐关注↓一、线程锁和分布式锁线程锁通常在单个进程中使用,以防止多个线程同时访问共享资源。在我们.NET中常见的线程锁有:自旋锁:当线程尝试获取锁时,它会重复执行一些简单的指令,直到锁可用互斥锁: Mutex ...
-
↓推荐关注↓前言基于.NET 6.0搭建跨平台DDD思想WebApi架构、IDS4单点登录、多缓存、自动任务、分布式、多租户、日志、授权和鉴权、CAP、SignalR docker部署 。正文代码地址:https://github.com/junkai-li/NetCoreK ...
-
↓推荐关注↓简介大家好,为了使开源项目的维护和管理更方便一些,出于个人需求写了一款开源项目的模板,该模板基于 Github 平台,并使用 .NET 来实现管道功能。在接受过实战检验后开源,项目地址:https://github.com/ni ...
-
↓推荐关注↓前言最近小编思维发散"Visual Studio可以集成chatgpt吗?",这样不就可以让chatgpt帮你写代码了吗?寻觅了一圈,还真有这个东西,那就是一个Visual Studio的扩展插件:Visual chatGPT Studio,虽然不是官 ...
-
↓推荐关注↓前言dotnet ef是Entity Framework Core(EF Core)的一个命令行工具,用于管理EF Core应用程序的数据库和代码。除了提供管理数据库的命令之外,dotnet ef还可以生成和管理实体和上下文代码。本文将介绍 ...
-
↓推荐关注↓一、ServiceSelf为.NET 泛型主机的应用程序提供自安装为服务进程的能力,支持windows和linux平台。功能自我服务安装自我服务卸载自我服务日志监听二、自我服务安装虽然.NET Core提供了Microsoft.E ...
-
↓推荐关注↓前言在本文中,我们将讨论ASP.NET Core[/pre]中的新路由。我们将了解什么是接口(endpoints[/pre])路由,它是如何工作的,它在哪里使用,以及如何创建自己的路由。本文主题:探索接口路由创建自定义接口 ...
-
↓推荐关注↓概述C#是微软开发的一种流行的编程语言,广泛用于开发桌面,Web和移动应用程序。在每个新版本中,C# 都会带来令人兴奋的功能和改进,使其更强大、更具表现力和更高效。C# 的最新版本是2022年发布的 C#11 ...
-
前言2023年目前要说最热的点,肯定是ChatGPT了。ChatGPT官方提供的网页版本,还有需要科学上网,很多人都会基于此进行封装。现在是移动互联网时代,基于手机APP的需求还是很大的。所以给大家推荐一个ChatGPT客户端开 ...
-
IdGenIdGen 是 .NET 平台下开源的类似 Twitter Snowflake 的 ID 生成器。在某些情况下,你需要一个低延迟、分布式、按时间排序、紧凑且高度可用的 Id 生成系统。实际上,IdGen 会生成 63 位 Id。一个 Id 由 3 部分组 ...
-
↓推荐关注↓前言WorkFlowCore[/pre]是一个针对.NetCore[/pre]的轻量级的工作流引擎,提供了FluentAPI、多任务、持久化以及并行处理的功能,适合于小型工作流、责任链的需求开发。支持工作流长期运行,提供了各种 ...
-
↓推荐关注↓前言在我第一次写博客的时候,写的第一篇文章,就是关于表达式树。其中当时一直没有研究Expression.Dynamic的使用方法(因为网上找不到资料),就了解到是程序运行时动态去构建表达式树,举个例子,例如我 ...
-
Intro在.NET 8 Preview 2 中对于 DataAnnotation 增加了一些新的特性,使用 DataAnnotation 可以进行更多的验证了New featuresRequiredAttribute.DisallowAllDefaultValues在 RequiredAttribute[/pre] 中新增了一个 ...
-
↓推荐关注↓第一步,添加Nuget包引用需要添加两个Nuget包分别是:Microsoft.AspNetCore.MiddlewareAnalysis和Microsoft.Extensions.DiagnosticAdapter,前者是分析记录中间件核心代码实现后者是用来接收日志输出的 ...
-
前言近期在重新搭建一套基于ASP.NET Core WebAPI的框架,这其中确实带来了不少的收获,毕竟当你想搭建一套框架的时候,你总会不自觉的去想,如何让这套框架变得更完善一点更好用一点。其中在关于WebApi统一结果返回 ...
-
RyujinxRyujinx 是一个开源的任天堂 Switch 模拟器,可以在 PC 上模拟运行 Switch 游戏。由 gdkchan 创建,使用 C# 编写。这个模拟器旨在提供卓越的准确性和性能、用户友好的界面和一致的构建。它是从头开始编写的, ...
-
↓推荐关注↓引言《.NET 7.0+WebAPI 后端架构实战》使用过ABP vNext和Furion框架的可能都会对它们的动态API感到好奇,不用手动的去定义,它会动态的去创建API控制器。后端代码架构的复杂在核心代码,如 ...
-
ADNC 介绍ADNC[/pre] 是一个基于 .NET 平台的分布式/微服务开源框架。微服务是一种分布式架构模式,通过将应用程序拆分成一组小型、松耦合的服务,可以提高应用程序的可伸缩性、可靠性和灵活性。ADNC[/pre]&nbs ...
-
概述首先使用开发隧道可以干嘛,引用官网的一句话叫做:可以在无法直接相互连接的计算机之间建立临时连接,创建一个 URL,使任何具有 Internet 连接的设备在 localhost 上运行时都可以连接到 ASP.NET Core 项目。那 ...
-
Mapster 是什么?Mapster 是一个 .NET 库,它提供了一种简单的方式来实现对象之间的映射。它使用了一个基于约定的自动映射策略,让你可以轻松地将一个对象转换为另一个对象。编写映射方法是一项机器工作。不要浪费你 ...
-
↓推荐关注↓一、什么是敏感词过滤?敏感词过滤是一种处理网络内容的技术,可以检测和过滤出网络中的敏感/违禁词汇。它通过给定的关键字或字符串,判断网络内容是否包含某些敏感信息,从而防止违反法律法规的信息流 ...
-
↓推荐关注↓简介官方定义:MessagePack是一种高效的二进制序列化格式。它允许像JSON一样在多个语言之间交换数据。但是它更快并且更小。MessagePack是一种开源的序列化反序列化组件,可支持JAVA,C#等主流语言。在 C ...
-
↓推荐关注↓前言对于Dapr ,在项目中也有用过一段时间,优缺点并存,但是瑕不掩瑜,目前随着版本的迭代和第三方团队对它的支持也使得我们用得更加得心应手,所以借此也回顾一下Dapr的相关知识以及分享一下项目中 ...
-
前言在项目开发过程中,我们经常碰到从数据库导入导出的需求,虽然这样的功能不是很复杂,但是往往我们都会碰到一些问题。比如导入的Excel格式问题、Excetl中图片导入问题,导出的需求为了方便客户查看,会面临更多 ...
-
↓推荐关注↓一、简介StructureMap 是一个开源的.NET 依赖注入框架,用于管理和解析对象之间的依赖关系。它提供了一种简单而灵活的方式,用于在应用程序中使用依赖注入。StructureMap在.net framework已经存在,属于 ...
-
↓推荐关注↓一、高并发的情况,时常会发生数据不稳定的情况在看本节内容之前,请先看上一章《SqlServer 高并发的情况下,如何利用锁保证数据的稳定性》本节内容,也是具体讨论如何在EF中实现这些操作二、场景模拟, ...
-
概述.NET中托管内存在使用完毕后会在合适的时机被垃圾回收,非托管的内存则不会被自动回收,如果这些非托管的资源没有释放或者及时释放,程序长时间运行会导致内存慢慢被占满直到程序崩溃..NET中常见的内存泄漏主要 ...
-
↓推荐关注↓前言Gitee:https://gitee.com/zyplj/book-marksGithub:https://github.com/ZyPLJ/BookMarks作为一个bug程序员,保存了很多书签,直接用浏览器的每次都还要找,很麻烦,比如我自己的Google浏览器就200 ...
-
前言.NET 发展很快, 现在 .NET 8 的预览版已经发布了,但我们现在还在使用 .NET Core 3.1,将 .NET 升级到 .NET 6 已经势在必行。记得之前从 .NET Core 2.1 升级到 .NET Core 3.1 的时候,虽然网上有很多的教程,也 ...
-
前言AvaloniaUI是一个优秀的XAML的跨平台UI框架,支持Windows、Linux、MacOS。Avalonia 已经成熟并且可以投入生产。本文介绍在Vistual Studio 2022中使用Avalonia并与AnyCAD Rapid SDK三维控件集成的环境搭建过程。 ...
-
↓推荐关注↓前言在C#中我们知道使用StringBuilder能提高大量字符串拼接的效率,其实StringBuilder的效率也可以提升,那就是使用ObjectPool。本文将介绍怎么使用ObjectPool提高StringBuilder的性能。一、简介C# Ob ...
-
↓推荐关注↓一、介绍GRPC是一个高性能、通用的开源远程过程调用(RPC)框架,基于底层HTTP/2协议标准[/pre]和协议层Protobuf序列化协议[/pre]开发,支持众多的开发语言,由Google开源。gRPC也是基于以下理念:定义 ...
-
CoravelCoravel是.NetCore中开源的工具库,可以让你使用定时任务,缓存,队列,事件,广播等高级应用程序变得轻而易举!Coravel 帮助开发人员在不影响代码质量的情况下快速启动和运行他们的 .NET Core 应用程序。它 ...
-
Intro最近在我们的项目中发现有使用 list 的 ForEach 方法,并且 ForEach 里的是一个异步方法,这导致原本我们想要等待 ForEach 中的任务完成之后再继续其他另外一个 task,但是出现了 ForEach 的 task 还未完成,另 ...
-
↓推荐关注↓前言ASP.NET Core Web API 接口限流、限制接口并发数量,我也不知道自己写的有没有问题,抛砖引玉、欢迎来喷!需求1、写了一个接口,参数可以传多个人员,也可以传单个人员,时间范围限制最长一个月。简 ...
-
↓推荐关注↓前言代码覆盖率(Code coverage)是指在软件测试中测试用例执行时覆盖的代码量与总代码量的比例。代码覆盖率是软件测试中一个重要的指标,它对于保障软件质量、提高软件可靠性和可维护性具有许多好处: ...
-
↓推荐关注↓引言.NET 同僚对于async和await的话题真的是经久不衰,这段时间又看到了关于这方面的讨论,最终也没有得出什么结论,其实要弄懂这个东西,并没有那么复杂,简单的从本质上来讲,就是一句话,async 和awa ...
-
↓推荐关注↓前言肉夹馍(https://github.com/inversionhourglass/Rougamo)通过静态代码织入方式实现AOP的组件,其主要特点是在编译时完成AOP代码织入,相比动态代理可以减少应用启动的初始化时间让服务更快可用,同 ...
-
前言平常我们在做项目过程中,桌面软件具备操作高效、利用本地计算机做一些复杂运算、或者设定快捷操作等优势,但是桌面软件也有很多缺点,比如升级问题、系统兼容问题、系统bug排查问题等。而如果采用网页模式,虽 ...
-
前言前一段时间得闲的时候优化了一下我之前的轮子[DotNetCoreRpc]小框架,其中主要的优化点主要是关于RPC异步契约调用的相关逻辑。在此过程中进一步了解了关于async和await异步操作相关的知识点,加深了异步操作的理 ...
-
↓推荐关注↓前言在微服务架构中,由于服务之间做了拆分,一次请求往往要涉及多个服务的调用,不同的服务可能由不同的团队开发,使用不同的编程语言,还有可能部署在不同的机器上,分布在不同的数据中心。当请求出现 ...
-
↓推荐关注↓前言在项目开发中,如果数据量比较大,比如日志记录,我们往往会采用分表分库的方案;为了提升性能,把数据库查询与更新操作分开,这时候就要采用读写分离的方案。分表分库通常包含垂直分库、垂直分表、 ...
-
前言项目发布后,对于我们程序员来说,项目还不是真正的结束,保证项目的稳定运行也是非常重要的,而对于服务器的监控,就是保证稳定运行的手段之一。对数据库、Redis、ES等一些中间件的监控,也都是非常重要。所以 ...
-
前言本文部分翻译自微软开发者博客,为了避免翻译纠纷,本文由翻译原文部分+个人理解组成,.NET 8 详细发布情况请看英文博文原文(文末给出链接)。欢迎来到 .NET 8!第一个预览版已准备好供你下载:声明第一个 .NET 8 ...
-
前言本次迁移涉及的是公司内部一个业务子系统,该系统是一个多样化的应用,支撑着公司的多个业务方向。目前,该系统由40多个基于.NET的微服务应用构成,使用数千个CPU核心和数TB内存,在数百个Linux容器中运行。每天 ...