在现代应用开发中,第三方登录是常见的功能,可以降低用户登录的门槛,所以我给我的我的网站集成 github、gitee 登录教程,今天来看看如何在.net core 中集成 ,代码比较简单,以此记录一下。 Github登录 配置 GitHub 认证 在 GitHub 上创建一个 应用,获取 Clien ...
前言 最近 DeepSeek 可太火了,在人工智能领域引起了广泛的关注,其强大的自然语言处理能力和智能搜索功能让大家跃跃欲试。 对于 .NET 技术栈的开发来说,一个常见的问题是:能否在 .NET 程序中使用 DeepSeek? 答案是肯定的。 为了帮助 .NET 开发快速上手并充分利用 DeepS ...
1、准备工作 在开始写代码之前,我们先要准备下写程序的 基础信息:MQTT地址、OrgID(机构ID)、API访问密钥 连接模式:QoS1, 持久会话 ,防止服务掉选数据丢失问题,具体模式根据实际情况而定 2、我们先创建个C#的控制台应用程序,然后写入以下代码: // 创建MQTT客户端工厂 var ...
信号量Semaphore是C#中用于线程同步的机制,通过计数器控制对共享资源的访问。Semaphore和SemaphoreSlim是两种实现,前者内核级别,支持跨进程;后者用户级别,性能更高。使用需注意配对获取和释放信号量。 ...
在.NET Aspire中使用swagger或者scalar做测试时发现,无论哪个API接口,返回的结果都如下图所示(NetworkError when attempting to fetch resource): 这个问题是由于.NET Core在使用OpenApi时没有转发正确的网络地址导致的 ...
废话少说直接上重点,使用SqlSugar搭建仓储模式,之前自己搭建的一个相对基础同时还算稳定的一个框架;【不想看过程的直接拉取本文代码Github】 创建解决方案....创建项目省过...结果如图: 仓储服务和仓储实现,业务服务以及业务实现外加一个webapi; 我们先从SqlSugarCore项目 ...
SpinLock是C#中轻量级锁,通过自旋避免线程上下文切换。传递时需小心,用ref避免副本问题。适用于高并发且锁持有时间短的场景,避免单核CPU。可自己实现简单自旋锁。 ...
前言 随着物联网(IoT)技术的迅猛发展,智能设备之间的互联互通变得越来越重要。 推荐一套基于 C# 的高效 IoT 系统,该系统运行在 Linux 开发板上,并支持 Modbus RS485 传感器、NPN/PNP 开关等所有符合 485 通讯协议的设备进行数据采集和指令发送。这套系统在为智能家居 ...
在.NET中,注入泛型依赖项是一个常见的场景。 在依赖注入(DI)中使用泛型可以使得应用程序更加模块化、易于测试和扩展。 在ASP.NET Core中注册泛型服务 假设我们有一个需要注入的泛型接口 IRepository<T> 和实现类 Repository<T>。 public interface ...
学习C#互斥锁Monitor,注意避免锁定值类型和try/finally错误,善用TryEnter避免长时间持锁,以及使用Wait、Pulse等方法实现生产者-消费者模式。示例代码和测试方法在代码库。 ...
在 .NET 开发中,异常处理是保证应用健壮性的重要手段,但不应被滥用。 异常的引发和捕获相较于普通的代码逻辑性能较差,因此在热路径(频繁执行的代码路径)中,避免依赖异常来控制程序流是提升性能的关键之一。 为什么要减少异常的使用? 性能开销大:异常处理机制涉及堆栈回溯和额外的系统调用,可能显著影响性 ...
提问词:【我想在一个dotnet core 8项目中使用 Blazor Hybric 技术,同时构建一个MAUI Project(A,打包到手机端),和一个Auto Render Model 的WebApp Project(W,发布到服务器),我想将两者都用到的Razor文件抽出来作为一个Commo ...
为什么要避免同步读取 ASP.NET Core 中的所有 I/O 操作都是异步的。服务器实现了 Stream 接口,该接口同时具备同步和异步的方法。 在进行 I/O 操作时,应优先使用异步方法,以避免阻塞线程池的线程。 如果阻塞了线程池线程,可能会导致服务器无法处理更多请求,造成急剧性性能下降。 尤 ...
lock是C#中的线程同步互斥锁,使用时需避免锁定this、公共对象、字符串和非readonly对象,小心锁定静态对象。锁定不当易导致同步问题,示例代码和源码在代码库。 ...
前一阵子,想着给我的站点集成一个微信登录,因为我之前从未有过微信相关的开发,所以我自己跟着网上的资料,一步一步的慢慢的摸索,过程不免的遇到了许多坑,才把我的网站微信登录集成完成,所以这里分享一下我的摸索的过程。因为我的是订阅号,所以一下的内容均针对订阅号而言的。 一、了解微信的交互流程 这里假设我们 ...
在 C# 中,Task.Run 是用来在后台线程中执行异步任务的一个常见方法。 它非常适用于需要并行处理的场景,但如果不加以谨慎使用,可能会导致额外的线程池调度,进而影响程序的性能。 什么是线程池? 线程池是 .NET 中的一种优化机制,它通过复用固定数量的线程来减少线程创建和销毁的开销。 线程池中 ...
本文主要使用.Net9中的HttpClient组件,调用本地部署的Ollama提供的API接口,获取对应的问答信息。 1、测试环境 VS2022; .Net9控制台程序; HttpClient组件; 本地部署的Ollama环境 DeepSeek R1模型(deepseek-r1:1.5b) 关于 ...
什么是IAsyncEnumerable IAsyncEnumerable<T> 是 .NET 中用于表示异步数据流的接口。 它允许你逐个异步地获取数据项,而不是将所有数据一次性加载到内存中。这样可以减少内存占用,尤其在处理大量数据时更加高效。 与 IEnumerable<T> 不同,IEnumera ...
本文介绍Interlocked类的使用,包括Read、Increment、Decrement和Add方法,适用于多线程环境安全操作变量,解决了非原子操作导致的线程安全问题,并提供示例代码。 ...
引言 在现代 Web API 开发中,我们经常需要对资源进行部分更新(Partial Update)。传统的 PUT 请求会要求发送整个对象,而 PATCH 请求可以仅发送需要更新的字段。ASP.NET Core 提供了 JsonPatchDocument<T> 来简化这一操作。 什么是 JsonP ...