一款针对ef core轻量级分表分库、读写分离的开源项目-编程思维

在项目开发中,如果数据量比较大,比如日志记录,我们往往会采用分表分库的方案;为了提升性能,把数据库查询与更新操作分开,这时候就要采用读写分离的方案。 分表分库通常包含垂直分库、垂直分表、水平分库和水平分表方案,包括分表分库方案,实现每一个方案都需要花费一定的时间;所以,今天给大家推荐一个基于EF Code实现的分表分库、读写分离开源库,可以让我们零成本的接入。 项目简介 这是一个针对EF Cod

一次对pool的误用导致的.net频繁gc的诊断分析-编程思维

(最近有读者朋友表示,希望能加一些示意图来描述分析过程中用到的原理知识。好的,之后我会注意,谢谢这位读者) 背景 有位朋友找我,希望我能帮看一下他的一个service。从他的描述看,并没有资源方面的泄漏,程序目前也能正常工作。他是在用dotnet-counters moniter时发现gc2、也就是full gc触发的比较频繁,频率超过了他自己的预期,于是他心里不踏实,所以想找我看一下。 能在

基于.net core + jquery实现文件断点分片上传-编程思维

基于.NET Core + Jquery实现文件断点分片上传 前言 该项目是基于.NET Core 和 Jquery实现的文件分片上传,没有经过测试,因为博主没有那么大的文件去测试,目前上传2G左右的文件是没有问题的。 使用到的技术 Redis缓存技术 Jquery ajax请求技术 为什么要用到Redis,文章后面再说,先留个悬念。 页面截图 NuGet包 Microsoft.Ext

c#/vb.net:如何将pdf转为pdf/a-编程思维

PDF/A是一种ISO标准的PDF文件格式版本,是为长期保存文件而设计的。它提供了一种工具,使电子文件在长时间之后依然以一种保留其外观的方式重现,而不管该文件是用什么工具和系统创建、储存或制作的。这种保留方式使PDF文件可自我持续。PDF/A通过嵌入在文档自身内部显示该文档的信息(内容、颜色、字体、图像,等等),存储这种自我持续。换句话说,PDF/A文件不要求任何附加的外部信息才能适当地显示。本

接口的 com 组件调用 queryinterface 因以下错误而失败: 库没有注册。-编程思维

这个问题原因是因为安装了高版本的office然后卸载掉,又安装了低版本的office导致的。 博主是 office2016卸载后,安装了office2013. EXCEL报错信息为: 无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel._A

.net core webapi接口ip限流实践-编程思维

.NET Core WebApi接口ip限流实践 前言 之前一直想实现接口限流,但一直没去实现,然后刚好看到一篇文章是基于AspNetCoreRateLimit 组件的限流策略。这个组件不做多的介绍,想了解详情可以去访问官方网址或者原文地址,地址在文章底部,本文只讲实现。 实现接口限流步骤 导包 第一步 配置服务 由于需要再appsettings.json中去读取数据,所以需要在Program

.net实现html保存到照片-编程思维

本文将使用PuppeteerSharp组件、实现Html代码片段生成Jpg照片 PuppeteerSharp项目地址:https://github.com/hardkoded/puppeteer-sharp 1.安装引用PuppeteerSharp 1.1 使用Nuget界面管理器 搜索 "PuppeteerSharp",找到对应的包点安装即可。 2.实现一段Html页面 <body>

.net core 自定义异常中间件-编程思维

前言 在程序设计中,我们会遇到各种各样的异常问题,一个好的异常处理解决方案能够帮助开发者快速的定位问题,也能够给用户更好的用户体验。 异常处理的几种方式 1、通过异常过滤器捕获异常进行处理 2、自定义异常处理中间件 在这里我选择自定义异常处理中间件,中间件依托于请求管道运行,并且中间件的执行是有序的,与业务隔离开的,将中间件放置在请求管道开始能够捕获到全局异常。 异常中间件定义 我们先新建一个类

.net core 关于对swagger的ui(index.html)或接口的权限验证;-编程思维

背景: 如何在ASP.Net Core的生产环境中保护swagger ui,也就是index.html页面。其实swagger是自带禁用的功能的,只需要设置开关即可。但是有一些场景,是需要把这些接口进行开放或者导出成文档供第三方进行调用,这个时候却又不想让所有人访问。本文介绍一种权限控制访问的方式,用来指定用户使用; 基本思路: 1,利用UseMiddlewareExtensions的UseMi

.net core 自定义授权策略提供程序进行权限验证-编程思维

.net core 自定义授权策略提供程序进行权限验证 在这之前先了解一下鉴权和授权的概念; 鉴权 鉴权可以说是身份验证,身份验证是确定用户身份的过程; 在ASP.NET Core 中身份验证是由身份验证服务IAuthenticationService负责的,它被身份验证中间件使用, 身份验证服务会使用已注册的身份验证处理程序来完成与身份验证相关的操作。身份验证相关的操作包括:对用户身份进行验

rapid scada v6安装常见问题-编程思维

用了很多年的Rapid SCADA v5,现在官网已经推出了v6,就简单写一下有关v6的安装指南吧。 本指南面向Windows用户,不适用于linux用户 步骤 从官网下载Rapid SCADA最新的RC版本的v6,然后运行压缩包内的ScadaSetup.exe程序。 FAQ 提示端口占用 Rapid SCADA 6.0.0~rc1 Installation --------------

mscorlib.dll 是什么?-编程思维

    在用ildasm工具反汇编C#生成的exe文件时,看到了 mscorlib字眼,印象中有mscorlib.dll这个东西,所以好奇这到底是个什么玩意,所以搜索了下。         C#高级变成里说,mscorlib是个程序集,  Console类位于 mscorlib程序集里,我把鼠标放在代码的Console里点了一下,果然,跳转到的Console页顶部显示 Console属于程序集m

blazor在iot领域的前端实践 @.net开发者日-编程思维

2023年3月11号,MASA技术团队参加了“.NET开发者日”,IoT项目经理郭浩在活动中做“Blazor 在 IoT 领域的前端实践”的主题分享 郭浩 数闪科技 IoT 项目经理 从事 .NET 开发10余年,目前在数闪科技担任 IoT 项目经理,有大量 IoT 产品的开发经验,在 Android 和 iOS 的 Blazor MAUI 开发上有大量实践经验。 本次分享主要分为两个部分 第

.net task 揭秘(3)async 与 asyncmethodbuilder-编程思维

目录前言AsyncMethodBuilder 介绍AsyncMethodBuilder 是状态机的重要组成部分AsyncMethodBuilder 的结构AsyncMethodBuilder 功能分析对状态机的生命周期进行管理对 async 方法的返回值进行包装小结async void自定义 AsyncMethodBuilder 前言 本文为系列博客 什么是 Task Task 的回调执行与

如何通过c#/vb.net从powerpoint文档中提取图片-编程思维

PowerPoint是用于制作幻灯片(演示文稿)的应用软件,每张幻灯片中都可以包含文字、图形、图形、表格、声音和影像等多种信息。有时候我们发现在PPT里面有一些精美的图片,或者其他原因想要把PPT里面的图片保存下来。但如果PowerPoint文档中包含大量图片,一张张保存未免太费时间及精力。那有什么办法可以高效便捷地提取出PPT中的图片呢?在这篇文章中,您将学习如何以编程方式从PowerPoin

遭遇奇怪的问题:所有 asp.net core viewcomponent 都输出为空-编程思维

3月9日晚上的一次发布中遇到一个非常奇怪的问题,发布前在 staging 环境测试正常,发布到生产环境后发现所有 ViewComponent 都输出为空(没有任何内容)。 生产环境与 staging 环境的不同之处是生产环境生成容器镜像时预编译了 razor 视图文件。 RUN dotnet build /p:RazorCompileOnBuild=true -c Release 开始以为是

winui(wasdk)使用chatgpt和摄像头手势识别结合tts让机器人更智能-编程思维

前言 之前写过一篇基于ML.NET的手部关键点分类的博客,可以根据图片进行手部的提取分类,于是我就将手势分类和摄像头数据结合,集成到了我开发的电子脑壳软件里。 电子脑壳是一个为稚晖君开源的桌面机器人ElectronBot提供一些软件功能的桌面程序项目。它是由绿荫阿广也就是我开发的,使用了微软的WASDK框架。 电子脑壳算是本人学习WinUI开发的练习项目了,通过根据一些开源的项目的学习,将一些功

c# 通用树形数据结构-编程思维

前言 树在图论中是一种重要的图,由于其自身的许多特殊性质,也是一种重要的计算机数据结构,在很多地方都有用。但是这些树大多都是作为其他应用的内部数据结构来使用。我们无法了解这些树的详细信息,而 .Net 也没有在内置的集合类库中提供树形数据结构的类。很多时候我们都需要树形数据完成一些工作,在自己的实践经验和查阅大量相关资料后,我编写了一个使用简单,能方便地将普通集合转换为树形集合(当然前提是这些集