随笔分类 - .NET
摘要:本文使用 OpenAI gpt-3.5-turbo-0301 模型翻译生成 原文:Announcing .NET 8 Preview 1 欢迎使用 .NET 8!第一个预览版已经发布,您可以获取第一个 .NET 8 预览版并开始构建应用程序。请往下滑动以查看此预览版中包含的功能列表。.NET 8 是
阅读全文
摘要:如果熟悉 GIthub 我们经常可以在一些开源项目的 PR 上看到会配置测试的验证以及覆盖率的报告,并且可以强制覆盖率不低于设定的值才可以进行 Merge PR。 1.测试 创建一个 xUnit 单元测试项目。 Class /// <summary> /// Represents a class w
阅读全文
摘要:代码覆盖率(Code coverage)是指在软件测试中测试用例执行时覆盖的代码量与总代码量的比例。代码覆盖率是软件测试中一个重要的指标,它对于保障软件质量、提高软件可靠性和可维护性具有许多好处:发现代码缺陷、提高代码的可维护性、确保代码的正确性和优化测试用例质量等。 我们常用的 IDE,Visua
阅读全文
摘要:Github Actions 是 Github 提供的一种持续集成(CI)和持续部署(CD)工具,可以自动化代码开发、测试、构建和部署的过程。它可以在代码仓库中通过配置文件来定义工作流程(Workflow),包括触发事件、执行任务和处理结果等。这些工作流程可以与Github仓库的其他功能(如Issu
阅读全文
摘要:一.写在前面 System.Text.Json 是 .NET Core 3 及以上版本内置的 Json 序列化组件,刚推出的时候经常看到踩各种坑的吐槽,现在经过几个版本的迭代优化,提升了易用性,修复了各种问题,是时候考虑使用 System.Text.Json 了。本文将从使用层面来进行对比。 Sys
阅读全文
摘要:一.前言 Dubbo 是比较流行的服务治理框架,国内不少大厂都在使用。以前的 Dubbo 使用的是私有协议,采集用的 hessian 序列化,对于多语言生态来说是极度的不友好。现在 Dubbo 发布了新版本 v3,推出了基于 gRPC 的新协议 Triple,完全兼容 gRPC。目前和几个小伙伴正在
阅读全文
摘要:一.前言 最近在做的工作需要 .NET 和 Java 功能对齐,在 Java 方面使用了一个科学 API: Math.nextUp,在 .NET 中并没有同名的方法。 二.解决 具有相同功能的 API,.NET 里是有的叫做 Math.BitIncrement()。但是只支持 Core >= 3.0
阅读全文
摘要:1.问题 最近在写一个熔断的 SDK,其中一种策略是根据慢请求来进行熔断。 我们在测试的时候,在对应 API 里面采用了 Thread.Sleep(ms) 来模拟慢请求。 设置的慢请求阈值是 RT 100ms,我们设置了 Thread.Sleep(90ms),但是发现竟然触发了熔断。最近分析发现是
阅读全文
摘要:在和 Go 语言提供的 API 通信时,如果 Go Json 反序列化字段类型直接使用的 time.Time 那么对时间有格式要求,必须是 RFC3399 # 秒 DateTime.Now.ToString("yyyy-MM-dd'T'HH:mm:ss'Z'") # 毫秒 DateTime.Now.
阅读全文
摘要:1.无限等待 我们在使用 WhenAll 和 WaitAll 时,一定得要注意:1.必须添加超时时间,防止无限等待 2.等待的 Task 一定要保证是启动的。 比如下面这种写法: using System; using System.Collections.Generic; using System
阅读全文
摘要:原文 https://devblogs.microsoft.com/dotnet/dotnet-loves-github-actions/ 嗨朋友们,我整理了一些帖子,我将向您介绍GitHub Actions平台的基础知识。在这篇文章中,您将了解 GitHub Actions 如何改善您的 .NET
阅读全文
摘要:原文:https://devblogs.microsoft.com/dotnet/dotnet-5-end-of-support-update/ .NET 5.0 将于 2022 年 5 月 8 日终止支持。在 .NET 5 月更新之后,Microsoft 将不再为 .NET 5.0 提供服务更新,
阅读全文
摘要:一.前言 最近有一个生成 APM TraceId 的需求,公司的APM系统的 TraceId 的格式为:APM AgentId+毫秒级时间戳+自增数字,根据此规则生成的 Id 可以保证全局唯一(有 NTP 时间同步),前两个字段好说,最后一个字段也不复杂,我的想法是按秒来进行自增。比如说1秒的时候,
阅读全文
摘要:容器默认是无法使用 nslookup 命令的,这个工具没有安装,使用下面的命令进行安装: apt-get update apt-get install dnsutils 然后运行命令即可: nslookup www.baidu.com
阅读全文
摘要:.NET 6 创建 Console 项目,默认采用了 C# 10 的最新特性,顶级指令、全局 using、隐藏式 using 。不过个人还不习惯这写特性。官方说明文档:https://docs.microsoft.com/zh-cn/dotnet/csharp/fundamentals/progra
阅读全文
摘要:原文:Announcing dotnet monitor in .NET 6 我们在 2020 年 6 月首次推出了dotnet monitor 作为实验工具,并在去年(2020年)努力将其转变为生产级工具。今天,我很高兴地的宣布 dotnet monitor 的第一个正式版将和 .NET 6 一起
阅读全文
摘要:前面接触过一个在控制台输出二维码图片的项目,其原理就是按像素解析图片,然后按照像素颜色的不同来设置控制台颜色,进而输出到控制台。最近发现了一个有趣的项目 Spectre.Console https://github.com/spectreconsole/spectre.console ,可以使用这个
阅读全文
摘要:在 .NET BCL 里, DateTime 类型是大家经常使用的类型,它代表了日期时间,Date and Time ,但是一直没有类型可以单独表示日期(Date)或者时间(Time) 在 .NET 6 里,提出了关于此问题的提议 https://github.com/dotnet/runtime/
阅读全文
摘要:本文中如无特别说明 .NET 指 .NET 5或者更高版本,代码同样可用于 .NET Core 前言 调整图片尺寸最常用的场景就是生成缩略图,一般为保持纵横比缩小,如果图片放大会使图片变得模糊,如果确实有这方面的需求,可以寻找开源的AI放大图片的方法。 1.ImageSharp 开源地址:https
阅读全文
摘要:本文中如无特别说明 .NET 指 .NET 5或者更高版本,代码同样可用于 .NET Core 无意间看到一个 go 的项目 qrcode ,它在控制台打印了二维码,便去看了他的实现原理,然后用 C# 实现了一个。 代码地址:https://github.com/stulzq/QRConsole 效
阅读全文