安全机密管理: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

[.NET项目实战] Elsa开源工作流组件应用(一): Elsa工作流简介

Elsa工作流简介工作流是什么?引用维基百科中对工作流的解释:是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。工作流建模,即将工作流程中的工作如何前后组织在一起...

2024-03-15

.Net接口版本管理与OpenApi

前言作为开发人员,我们经常向应用程序添加新功能并修改当前的 Api。版本控制使我们能够安全地添加新功能而不会造成中断性变更。一个良好的 Api 版本控制策略可以清晰地传达...

2024-03-15

CYQ.Data 支持 KingbaseES人大金仓数据库

KingbaseES人大金仓数据库介绍:KingbaseES是一种关系型数据库管理系统,也被称为人大金仓数据库。KingbaseES 是北京人大金仓信息技术股份有限公司研发的,具有自主知识产权的通...

2024-03-10

那些.NET中的连接池

前言在.NET中,连接池被广泛用于管理和优化不同类型资源的连接。连接池可以减少建立和关闭连接所需的时间和资源消耗,从而提高了应用程序的性能和响应能力。HttpClient中的连接...

2024-03-08

排查 dotNET Core 程序内存暴涨的问题

0. 问题新版本上线之后,发现内存猛涨,入站流量猛增,不清楚具体原因,部分接口提示 OOM 异常,随后 Pod 直接崩溃无限重启。1. 准备Pod 已经接入了 NewRelic 和 Graylog,但是仍然没有...

2024-03-08

Asp .Net Core 系列:Asp .Net Core 集成 Newtonsoft.Json

简介Newtonsoft.Json是一个在.NET环境下开源的JSON格式序列化和反序列化的类库。它可以将.NET对象转换为JSON格式的字符串,也可以将JSON格式的字符串转换为.NET对象。这个类...

2024-03-07

在Avalonia项目中使用MediatR和MS.DI库实现事件驱动通信

AvaloniaUI是一个强大的跨平台.NET客户端开发框架,让开发者能够针对Windows、Linux、macOS、Android和iOS等多个平台构建应用程序。在构建复杂的应用程序时,模块化和组件间的...

2024-03-03

.NET开源功能强大的串口调试工具

前言今天大姚给大家分享一款.NET开源的、功能强大的串口调试工具:LLCOM。工具介绍LLCOM是一个.NET开源的、功能强大的串口调试工具。支持Lua自动化处理、串口调试、串口监听...

2024-03-03

细聊ASP.NET Core WebAPI格式化程序

前言 我们在使用ASP.NET Core WebApi时它支持使用指定的输入和输出格式来交换数据。输入数据靠模型绑定的机制处理,输出数据则需要用格式化的方式进行处理。ASP.NET Core...

2024-02-26

.NET高级调试之sos命令输出看不懂怎么办

一:背景1. 讲故事很多.NET开发者在学习高级调试的时候,使用sos的命令输出会发现这里也看不懂那里也看不懂,比如截图中的这位朋友。
.NET高级调试属于一个偏冷门的领域,国内可观...

2024-02-26

Asp .Net Core 系列:Ocelot结合Consul实现服务注册、服务发现

Consul下载地址:https://www.consul.io/downloads.html文档:https://learn.hashicorp.com/consul/getting-started/servicesOcelot文档:https://ocelot.readthedocs.io/en/late...

2024-02-22

Asp .Net Core 系列:集成 Ocelot+Consul+Swagger+Cors实现网关、服务注册、服务发现

什么是Ocelot?Ocelot是一个开源的ASP.NET Core微服务网关,它提供了API网关所需的所有功能,如路由、认证、限流、监控等。Ocelot是一个简单、灵活且功能强大的API网关,它可以与...

2024-02-22

Asp .Net Core 系列:基于 Swashbuckle.AspNetCore 包 集成 Swagger

什么是 Swagger?Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。它提供了一种规范的方式来定义、构建和文档化 RESTful Web 服务,使...

2024-02-22

Asp .Net Core系列:去掉HTTPS配置和SSL证书

如果你的项目一不小心配置了https 右击项目=》属性=》调试=》启用SSL=》选择去掉 测试...

2024-02-22

Asp .Net Core系列:Centos从创建到部署.Net Core项目

一.搭建环境1..注册Microsoft密钥和源执行命令:sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm 2.安装.NET Core SDK执行命...

2024-02-22

记一次 .NET某列控连锁系统 崩溃分析

一:背景1. 讲故事过年喝了不少酒,脑子不灵光了,停了将近一个月没写博客,今天就当新年开工写一篇吧。去年年初有位朋友找到我,说他们的系统会偶发性崩溃,在网上也发了不少帖子求助,...

2024-02-22

.NET中如何实现高精度定时器

.NET中有多少种定时器一文介绍过.NET中至少有6种定时器,但精度都不是特别高,一般在15ms~55ms之间。在一些特殊场景,可能需要高精度的定时器,这就需要我们自己实现了。本文将讨论...

2024-01-31

.NET中有多少种定时器

.NET中至少有6种定时器,每一种定时器都有它的用途和特点。根据定时器的应用场景,可以分为UI相关的定时器和UI无关的定时器。本文将简单介绍这6种定时器的基本用法和特点。UI定...

2024-01-31

[WPF]动手写一个简单的消息对话框

消息对话框是UI界面中不可或缺的组成部分,用于给用户一些提示,警告或者询问的窗口。在WPF中,消息对话框是系统原生(user32.dll)的MessageBox,无法通过Style或者Template来修改消息...

2024-01-31

[WPF]标记扩展(Markup Extension)

XAML是基于XML的语言,其遵循并扩展了XML的语法规则。其中一项扩展就是标记扩展(Markup Extension),比如我们经常使用的绑定Binding和x:Type。什么是标记扩展标记扩展允许在XAM...

2024-01-31

[WPF]浅析资源引用(pack URI)

WPF中我们引用资源时常常提到一个概念:pack URI,这是WPF标识和引用资源最常见的方式,但不是唯一的方式。本文将介绍WPF中引用资源的几种方式,并回顾一下pack URI标识引用在不同...

2024-01-31

[WPF]原生TabControl控件实现拖拽排序功能

在UI交互中,拖拽操作是一种非常简单友好的交互。尤其是在ListBox,TabControl,ListView这类列表控件中更为常见。通常要实现拖拽排序功能的做法是自定义控件。本文将分享一种在...

2024-01-31

WPF性能优化:Freezable 对象

Freezable是WPF中一个特殊的基类,用于创建可以冻结(Freeze)的可变对象。冻结一个对象意味着将其状态设置为只读,从而提高性能并允许在多线程环境中共享对象。Freezable的应用我...

2024-01-31

【译】为什么命名“它”为依赖属性(DependencyProperty)

当我们创建新的类和成员时,我们花费了大量的时间和精力是它们尽可能的好用,好理解,好发现。通常我们会遵循.Net框架设计指南,尤其是会不断地研究这个新类与其他类,未来计划等内容...

2024-01-31

CefSharp自定义滚动条样式

在WinForm/WPF中使用CefSharp混合开发时,通常需要自定义滚动条样式,以保证应用的整体风格统一。本文将给出一个简单的示例介绍如何自定义CefSharp中滚动条的样式。基本思路在...

2024-01-31

[WPF]浅析依赖属性(DependencyProperty)

在WPF中,引入了依赖属性这个概念,提到依赖属性时通常都会说依赖属性能节省实例对内存的开销。此外依赖属性还有两大优势。 支持多属性值,依赖属性系统可以储存多个值,配合Expres...

2024-01-31

[WPF]使用HLSL实现百叶窗动效

百叶窗动画是制作PPT时常用的动画之一,本文将通过实现百叶窗动画效果的例子介绍在WPF中如何使用ShaderEffect。ShaderEffect使用高级着色器语言(High Level Shading Language,H...

2024-01-31

WPF使用TextBlock实现查找结果高亮显示

在应用开发过程中,经常遇到这样的需求:通过关键字查找数据,把带有关键字的数据显示出来,同时在结果中高亮显示关键字。在web开发中,只需在关键字上加一层标签,然后设置标签样式就...

2024-01-31

WPF实现Element UI风格的日期时间选择器

背景业务开发过程中遇到一个日期范围选择的需求,和Element UI的DateTimePicker组件比较类似,由两个日历控件组成,联动选择起始时间和结束时间。问题WPF中提供了一个DatePicker...

2024-01-31

.NET桌面程序如何设置任务栏图标右键菜单中的名称

右键任务栏中应用程序图标时会显示程序名称,例如:这里显示的并不是程序文件名DingTalk,而是文件属性中详细信息选显卡下的“文件说明”。在.NET桌面程序中,是通过修改...

2024-01-31

如何让WPF中的ValidationRule实现参数绑定

背景应用开发过程中,常常会对用户输入内容进行验证,通常是基于类型、范围、格式或者特定的要求进行验证,以确保输入符合预期。例如邮箱输入框校验输入内容是否符合邮箱格式。在...

2024-01-31

WPF中非递归(无后台代码)动态实现TreeView

在UI界面中,树形视图是比较常用的表示层级结构的方式,WPF中提供了TreeView控件。对于TreeView控件的基本使用已经有很多文章。大都是介绍如何在XAML中使用硬编码的固定信息填...

2024-01-31
返回顶部
顶部