随笔分类 - .NET Core
摘要:最近在项目上遇到几个问题,关于ADO.NET中SQL绑定变量 总结一下,分享给大家。 1. 使用 SqlParameter(推荐方式,防止 SQL 注入) ADO.NET 提供 SqlParameter 来绑定变量,从而提高安全性和性能。 防止 SQL 注入攻击。 支持各种数据类型,避免 SQL 解
阅读全文
摘要:昨天线上有几个进程因为 StackOverFlowException 导致进程 Crash 了,但是 TCP 请求还是可以连接,具体可不可以连接一个出现StackOverFlowException的微服务应用进程, 做个研究和分享: 在 .NET 进程发生 StackOverflowExceptio
阅读全文
摘要:C# 13 中,引入了新的锁类型和语义,主要用于增强多线程编程中的同步机制。 传统上,C# 使用 lock 关键字与任意的 object 实例配合,实现线程间的互斥访问。然而,这种方式可能存在性能瓶颈和潜在的死锁风险。 为此,C# 13 在 .NET 9 中引入了新的锁类型 System.Threa
阅读全文
摘要:在 .NET 9 中,微软引入了 Microsoft.ML.Tokenizers 库,为 .NET 开发者提供了强大的文本标记化功能。 一、什么是Microsoft.ML.Tokenizers Microsoft.ML.Tokenizers 是一个用于文本标记化的库,是 .NET 生态系统中的一个强
阅读全文
摘要:.NET 9 针对云原生开发进行了显著优化,重点改进了分布式追踪、HTTP/3 支持和容器镜像优化等方面。 这些特性极大地提升了 .NET 在现代云原生应用中的适配性与开发效率。 1. 设计原理 1.1 分布式追踪支持 背景:在云原生架构中,应用程序通常由多个微服务组成。分布式追踪能够帮助开发者监控
阅读全文
摘要:一、内存缓存(Memory Caching) 1. 具体的原理 内存缓存是一种在应用程序内存中存储数据的机制,旨在减少对外部数据源的频繁访问,从而提高应用程序的性能。 在 .NET 中,MemoryCache 类提供了内存缓存的实现。它允许开发者将经常使用的数据存储在内存中,以便快速检索。 在 .N
阅读全文
摘要:上一篇文章给大家介绍了 .NET 9 New features-JSON序列化 本篇文章,研究分享一下关于AOT方面的改进 1. 什么是AOT AOT(Ahead-of-Time)编译是一种在应用程序部署之前,将高级语言代码直接编译为本机机器代码的技术。 与传统的即时编译(Just-In-Time,
阅读全文
摘要:.NET 9已经发布有一段时间了,近期整理一下.NET 9的新特性,今天重点分享.NET 9 JSON序列化方面的改进。 先引用官方的说明: 在 System.Text.Json 中,.NET 9 提供了用于序列化 JSON 的新选项和新的单一实例,可以更轻松地使用 Web 默认值进行序列化。 举个
阅读全文
摘要:葡萄牙语,作为一种罗曼语族的语言,其正字法(orthography)并不使用音标系统来标记发音,而是有一套特定的拼写规则。然而,葡萄牙语中确实使用重音符号(acentos)来标记某些元音的重音(stress)或音质(quality)的变化。 葡萄牙语中使用的重音符号包括: Acute accent
阅读全文
摘要:最近团队有小伙伴问在单元测试中如何Mock HttpContext. 这是一个好问题,整理了一个实现方案分享给大家。 在C#中,尤其是在单元测试场景下,模拟(Mocking)HttpContext 是一种常见的做法。这允许我们在没有实际HTTP请求的情况下测试与HTTP上下文相关的代码。 为了模拟H
阅读全文
摘要:在ASP.NET Core中,当一个HTTP请求到达服务器时,它会被分配给线程池中的一个线程来处理。该线程会执行相应的Controller方法。 如果这个方法是一个异步方法并且使用了await关键字,那么在await的代码执行完毕之前,这个线程会被释放回线程池,可以用来处理其他的HTTP请求。 当a
阅读全文
摘要:在葡萄牙语软件中,数字本地化通常涉及小数点和千位分隔符的使用。在葡萄牙语中,小数点用“,”表示,而不是英语中使用的“.”。千位分隔符通常是一个空格或一个点。 例如:62.5,其实代表的不是62.5 而是625M 为了正确地处理数字本地化,可以使用.NET框架中提供的CultureInfo类。此类允许
阅读全文
摘要:假期中有时间,整理了C#11的各个新特性,简单分享给大家。 一、使用VSCode新建一个.NET7.0的Console工程 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFr
阅读全文
摘要:2022年微软发布了.NET 7, 同时提供了详细的升级迁移方案。 Migrate from ASP.NET Core 6.0 to 7.0 今天给大家简单整理、分享一篇文章。 一、首先需要升级Visual Studio 2022或者VS Code VS Code升级最新版本,或者安装.NET 7
阅读全文
摘要:2022年11月份微软推出了带有STS(标准期限支持)的.NET版本7,仅提供18个月的支持。 微软今年推出了STS版本,因为它已经在2019年提到,它将在每年11月左右发布一个新版本的.NET。 但是,考虑到新的官方.NET7功能和更新,它仍然为用户带来了大量变化和.NET7性能改进。今天给大家分
阅读全文
摘要:这几天看C# 11的新语法,学习到了Raw string literals 今天给大家分享一下: 原始字符串是字符串的一种新格式。 原始字符串可以包含任意文本,包括空格、新行、嵌入引号和其他特殊字符,无需转义字符(这个很关键、也很简单)。 原始字符串以至少三个双引号 (""") 字符开头。 它以相同
阅读全文
摘要:.NET 6 Project中,添加了其他解决方案的工程后,本地能编译通过,代码签入后,其他同事下载代码,编译报错: 错误 NU1105 找不到“E:\Teld\01Code\TTP_CTP\_git\TTP_CTP_NET6\Src\Framework\HSF\Src\Teld.Core.HSF.
阅读全文
摘要:日常我们开发.NET应用时会使用SQLServer数据库,对于SQLServer数据库的日常开发有一些技能和工具,准备给大家分享一下。 一、场景1:SQLServer死锁分析 执行以下SQL,启用SQLServer死锁日志输出 EXEC sp_altermessage 1205, 'WITH_LOG
阅读全文
摘要:NET 6.0引入了Crossgen工具的后续版本Crossgen2,这个工具提供了程序提前(AOT)编译的能力。 什么是CrossGen? 我们日常开发时使用C#编译器CSC编译一个.NET程序集,程序集包含MSIL代码(中间语言代码)。当应用程序运行时,目标环境的本地JIT编译器将MSIL代码转
阅读全文
摘要:.NET 热重载技术支持将代码更改(包括对样式表的更改)实时应用到正在运行的程序中,不需要重启应用,也不会丢失应用状态。 一、整体介绍 目前 ASP.NET Core 6.0 项目都支持热重载。在以下情况下支持应用的热重载: 1. 仅运行一次的应用启动逻辑代码 中间件,除非代码更新是委托给内联中间件
阅读全文
浙公网安备 33010602011771号