如何使用.NET8 创建使用MySQL数据库的webapi项目

目录使用 visual studio创建webapi项目需要安装的包新建控制器添加数据库连接字符串注册数据库上下文创建数据库上下文关于迁移数据库在控制器中引入数据库上下文GET请求获...

2024-06-10

.NET8实现PDF合并的示例代码

目录前言一、itext7二、PdfSharpCore三、Aspose.PDF四、Spire.PDF前言在.NET 8中使用itext7需安装 itext7 和 itext7.bouncy-castle-fips-adapter 两个Nuget包,或者使用Aspos...

2024-06-10

aspnet core使用websocket实时更新商品信息的方法

先演示一下效果,再展示代码逻辑。中间几次调用过程省略。。。暂时只用到了下面四个项目1.产品展示页面中第一次通过接口去获取数据库的列表数据/// <summary>/// 获取指定的...

2024-06-10

NET NativeAOT 用法指南

目录.NET NativeAOT 指南基本用法关于编译反射动态泛型实例化解决方案在其他地方使用它DynamicDependencyDynamicallyAccessedMembersTrimmerRootAssemblyTrimmerRootDescri...

2024-06-10

IIS服务器发布ASP.NET项目

目录一、准备项目的发布版本1、检查项目是否可运行2、打包项目3、项目包内容介绍二、服务器搭建ASP.NET运行环境1、服务器安装IIS运行环境2、调试IIS是否正常运行3、发布项...

2024-06-10

.NET分布式Orleans计时器和提醒功能实现

目录Timer是什么Timer的注意事项代码示例Reminder与Timer的区别Timer 和 Reminder 场景依赖注入创建Timer与ReminderTimer是什么Timer 是一种用于创建定期粒度行为的机制。...

2024-06-10

ASP.NET Core 使用SignalR推送服务器日志的过程记录

一个多月前接手了一个产线机器人项目,上位机以读写寄存器的方式控制机器人,服务器就是用 ASP.NET Core 写的 Web API。由于前一位开发者写的代码质量问题,导致上位机需要16秒才...

2024-06-10

如何使用ASP.NET MiniAPI 调试未匹配请求路径

目录1. 引言2. 使用MapFallback方法3. 使用中间件(Middleware)4. 使用MapGet,MapPost,MapPut,MapDelete等方法的通配符5. 使用UseStatusCodePages中间件6. 最后本文将介绍如何在...

2024-06-10

ASP.NET实现图形验证码功能

目录一、实现思路 二、编写前端代码1、编写HTML代码2、创建JavaScript函数三、编写后端代码1、创建输出图形验证码的接口2、创建验证码生成方法3、 绘制验证码图片① 配置验...

2024-06-10

在 .NET 项目中复制资源文件夹到生成目录的方法

目录1. 背景2. 方法一:逐个添加文件3. 方法二:添加 MSBuild 指令3. 方法三:使用通配符4. 结束语本文主要介绍在使用 Visual Studio 进行调试和发布时,如何在 .NET 项目中复制资...

2024-06-10

.Net MinimalApis响应返回值的详细过程

目录前言string 返回值T(任何其他类型)返回值返回 T统一响应格式代码实现自定义类的自动包装实现IResult 返回值返回多个 IResult 实现类型IResult 自定义响应自定义 Json 格...

2024-06-10

.NET Core使用SkiaSharp实现快速生成二维码

目录前言报错原因官方建议SkiaSharp介绍使用SkiaSharp快速生成二维码1、安装SkiaSharp.QrCode库2、生成二维码图片前言在.NET 6之前我们一直是使用QRCoder来生成二维码(QRCod...

2024-06-10

ASP.Net Core读取配置文件的三种方法小结

目录1. 使用 IConfiguration 接口用方法:2. 使用 Options 模式3. 使用环境变量 总结ASP.NET Core 是一个模块化、高性能的框架,它使用依赖注入来构建应用程序的各个组件。在 A...

2024-06-09

ASP.NET使用Global.asax的方法

目录一、Global.asax简介二、Global.asax功能1、实现定时任务2、应用程序级别的错误处理3、在应用程序开始或结束时执行特定逻辑4、实现应用程序级别的缓存管理5、处理会话...

2024-06-09

.net 6 配置QuartZ定时任务的过程

目录Quartz安装创建定时器任务1、创建QuartzConfigurator 2、在Program.cs 中注入服务 3、创建工作单元WorkerJob4、appsettings.json配置项目中需要用到QuartZ执行定时任务...

2024-06-09

在ASP.NET Core微服务架构下使用RabbitMQ实现CQRS模式的方法

目录前言微服务架构的简要概览RabbitMQ在微服务中的作用CQRS 模式分离读和写操作的优势RabbitMQ与CQRS集成为命令和事件实现消息队列异步通信和事件驱动架构在微服务中集成C...

2024-06-09

Asp.net移除Server,X-Powered-By和X-AspNet-Version头

移除X-AspNet-Version很简单,只需要在Web.config中增加这个配置节:<httpRuntime enableVersionHeader="false" /> 移除Server在Global.asax文件总增加: //隐藏IIS版本pro...

2024-06-09

.NET使用NPOI实现读取带有图片的excel数据

目录前言使用步骤1.定义类PictureData2.数据集引用3.定义获取excel图片数据的方法GetDTWithImg总结前言在.net使用npoi插件进行批量导入时,获取excel中的图片数据,存到集合中...

2024-06-09

Asp.net实现手写验证码的操作代码

引文:众所周知,一般我们日常碰到的验证码是一个图形样式的,列入这个样子的,那么在这个图片里面我们想实现我们自己界面上有这样的一个验证码就需要做两个操作,一个是在我们自己界...

2024-06-09

.Net 中WhenAll的解释和用法小结

在.NET中,WhenAll 是一个与异步编程相关的扩展方法,它属于 System.Threading.Tasks 命名空间下的 TaskExtensions 类。这个方法主要用于处理一组 Task 对象,并等待它们全部完成...

2024-06-09

.NET中的Swagger使用示例详解

目录前言一、Swagger是什么?二、如何Swagger文档说明的信息1.在AddSwaggerGen方法中写入文档信息2.运行效果二、文档UI界面标题、路由设置1.在中间件UseSwaggerUI方法中配置...

2024-06-09

.NET使用QuestPDF高效地生成PDF文档

目录前言QuestPDF介绍QuestPDF License项目源代码创建一个控制台应用安装QuestPDF Nuget包快速实现发票PDF文档生成创建InvoiceModelCreateInvoiceDetailsCreateInvoiceDocu...

2024-06-09

.Net WebApi中实现自动依赖注入的三种方法(最新推荐)

目录前言生命周期用反射实现自动依赖注入定义三种生命周期的接口类通过GetReferencedAssemblies实现加载程序集路径实现通过依赖注入拓展库:Scrutor,使用非常简单,主要通过 Fro...

2024-06-09

在ASP.NET MVC下限制同一个IP地址单位时间间隔内的请求次数的解决方法

目录在ASP.NET MVC下限制同一个IP地址单位时间间隔内的请求次数 在ASP.NET MVC下限制同一个IP地址单位时间间隔内的请求次数 有时候,当用户请求一个Controller下的Action,我们...

2024-06-09

.NET C# 程序自动更新组件

引言本来博主想偷懒使用AutoUpdater.NET组件,但由于博主项目有些特殊性和它的功能过于多,于是博主自己实现一个轻量级独立自动更新组件,可稍作修改集成到大家自己项目中,比如:WPF...

2024-06-05

.NET 中使用 OpenTelemetry Traces 追踪应用程序

上一次我们讲了 OpenTelemetry Logs。今天继续来说说 OpenTelemetry Traces。
在今天的微服务和云原生环境中,理解和监控系统的行为变得越来越重要。在当下我们实现一个功能...

2024-06-05

使用Wesky.Net.Opentools库,一行代码实现实体类类型转换为Json格式字符串

安装1.0.10以及以上版本的 Wesky.Net.OpenTools 包包内,该功能的核心代码如下:自定义属性:实体类JSON模式生成器: 使用方式:引用上面的1.0.10版本或以上的包。如果实体类有特殊需...

2024-06-05

.NET 缓存:内存缓存 IMemoryCache、分布式缓存 IDistributedCache(Redis)

.NET缓存里分了几类,主要学习内存缓存、分布式缓存一、内存缓存 IMemoryCache1、Program注入缓存builder.Services.AddMemoryCache();2、相关方法及参数Get、TryGetValue、Ge...

2024-05-10

.Net 8.0 下的新RPC,IceRPC之"请求"生命线意义非凡

作者引言很高兴啊,我们来到了IceRPC之"请求"生命线意义非凡,号称“死亡时间”的追命线,颤抖吧!"请求"生命线之意义非凡本文将深入探讨将截止时间纳入RPCs的重要性, 以...

2024-05-04

.NET CORE 完美支持AOT 的 ORM SqlSugar 教程

1、AOT适合场景Aot适合工具类型的项目使用,优点禁止反编 ,第一次启动快,业务型项目或者反射多的项目不适合用AOT AOT更新记录: 实实在在经过实践的AOT ORM5.1.4.117 +支持AOT5....

2024-05-04

.NET Emit 入门教程:第七部分:实战项目1:将 DbDataReader 转实体

前言:经过前面几个部分学习,相信学过的同学已经能够掌握 .NET Emit 这种中间语言,并能使得它来编写一些应用,以提高程序的性能。随着 IL 指令篇的结束,本系列也已经接近尾声,在这...

2024-04-29

Asp-Net-Core开发笔记:进一步实现非侵入性审计日志功能

前言上次说了利用 AOP 思想实现了审计日志功能,不过有同学反馈还是无法实现完全无侵入,于是我又重构了一版新的。现在已经可以实现对业务代码完全无侵入的审计日志了,在需要审...

2024-04-29

安全机密管理:Asp.Net Core中的本地敏感数据保护技巧

前言在我们开发过程中基本上不可或缺的用到一些敏感机密数据,比如SQL服务器的连接串或者是OAuth2的Secret等,这些敏感数据在代码中是不太安全的,我们不应该在源代码中存储密码...

2024-04-26

单元测试必备:Asp.Net Core代码覆盖率实战,打造可靠应用 !

引言在前几章我们深度讲解了单元测试和集成测试的基础知识,这一章我们来讲解一下代码覆盖率,代码覆盖率是单元测试运行的度量值,覆盖率通常以百分比表示,用于衡量代码被测试覆...

2024-04-23

ASP.NET Core Web API下基于Keycloak的多租户用户授权的实现

在上文《Keycloak中授权的实现》中,以一个实际案例介绍了Keycloak中用户授权的设置方法。现在回顾一下这个案例: 服务供应商(Service Provider)发布/WeatherForecast API供外部...

2024-04-23

如何将 ASP.NET Core MVC 项目的视图分离到另一个项目

如何将 ASP.NET Core MVC 项目的视图分离到另一个项目在当下这个年代 SPA 已是主流,人们早已忘记了 MVC 以及 Razor 的故事。但是在某些场景下 SSR 还是有意想不到效果。比如...

2024-04-21

Asp-Net-Core开发笔记:使用alpine镜像并加入健康检查

前言使用 docker 部署 AspNetCore 应用已经是标配了,之前我一直使用 mcr.microsoft.com/dotnet/aspnet:8.0 这类镜像,简单粗暴,不过可以使用 alpine 进一步优化镜像大小。很多...

2024-04-21

一个.NET内置依赖注入的小型强化版

前言.NET生态中有许多依赖注入容器。在大多数情况下,微软提供的内置容器在易用性和性能方面都非常优秀。外加ASP.NET Core默认使用内置容器,使用很方便。但是笔者在使用中一直...

2024-04-17

记一次 .NET某炉膛锅炉检测系统 崩溃分析

一:背景1. 讲故事上个月有个朋友在微信上找到我,说他们的软件在客户那边隔几天就要崩溃一次,一直都没有找到原因,让我帮忙看下怎么回事,确实工控类的软件环境复杂难搞,朋友手上有...

2024-04-17

.NET8中的Microsoft.Extensions.Http.Resilience库

借助Aspire中新增的Microsoft.Extensions.ServiceDiscovery库,我们可以很容易的做到服务发现,那么服务节点的熔断限流以及重试等弹性机制.NET是怎么处理的呢?
比如下图的微...

2024-04-17

.NET Emit 入门教程:第六部分:IL 指令:8:详解 ILGenerator 指令方法:类型转换指令

前言:经过前面几篇的学习,我们了解到指令的大概分类,如:参数加载指令,该加载指令以 Ld 开头,将参数加载到栈中,以便于后续执行操作命令。参数存储指令,其指令以 St 开头,将栈中的数据...

2024-04-15

.NET Emit 入门教程:第六部分:IL 指令:7:详解 ILGenerator 指令方法:分支条件指令

前言:经过前面几篇的学习,我们了解到指令的大概分类,如:参数加载指令,该加载指令以 Ld 开头,将参数加载到栈中,以便于后续执行操作命令。参数存储指令,其指令以 St 开头,将栈中的数据...

2024-04-13

.NET服务发现(Microsoft.Extensions.ServiceDiscovery)集成Consul

随着Aspire发布preview5的发布,Microsoft.Extensions.ServiceDiscovery随之更新,服务注册发现这个属于老掉牙的话题解决什么问题就不赘述了,这里主要讲讲Microsoft.Extensio...

2024-04-11

Asp .Net Core 系列:集成 Refit 和 RestEase 声明式 HTTP 客户端库

背景.NET 中 有没有类似 Java 中 Feign 这样的框架?经过查找和实验,发现 在 .NET 平台上,虽然没有直接的 Feign 框架的端口,但是有一些类似的框架和库,它们提供了类似的功能和设...

2024-04-11

NET Core使用Grpc通信(一):一元请求

gRPC是一个现代的开源高性能远程过程调用(RPC)框架,它可以高效地连接数据中心内和跨数据中心的服务,支持负载平衡、跟踪、运行状况检查和身份验证。gRPC通过使用 Protocol Buf...

2024-03-31

.NET Emit 入门教程:第六部分:IL 指令:2:详解 ILGenerator 辅助方法

前言:经过前面几大部分的学习,已经掌握了 Emit 的前因后果,今天来详细讲解 Emit 中 IL 的部分内容。如前文所讲,通过 DynamicMethod(或 MethodBuilder)可获得 ILGenerator 这个用...

2024-03-29

在 .NET 中使用 OPC UA 协议

目录 什么是 OPC UA UaExpert 的使用 下载 UaExpert 首次启动 添加 OPC UA 服务器 连接 OPC UA 服务器 查看 PLC 数据 使用 C# 读写 OPC UA 数据 连接到 OPC UA 服...

2024-03-26

记一次 .NET某半导体CIM系统 崩溃分析

一:背景1. 讲故事前些天有一位朋友在公众号上找到我,说他们的WinForm程序部署在20多台机器上,只有两台机器上的程序会出现崩溃的情况,自己找了好久也没分析出来,让我帮忙看下怎么...

2024-03-25

.Net依赖注入神器Scrutor(上)

前言从.Net Core 开始,.Net 平台内置了一个轻量,易用的 IOC 的框架,供我们在应用程序中使用,社区内还有很多强大的第三方的依赖注入框架如: Autofac DryIOC Grace LightInject L...

2024-03-19

dotNet8 全局异常处理

前言异常的处理在我们应用程序中是至关重要的,在 dotNet 中有很多异常处理的机制,比如MVC的异常筛选器, 管道中间件定义try catch捕获异常处理亦或者第三方的解决方案Hellang....

2024-03-15
返回顶部
顶部