https://www.cnblogs.com/eventhorizon/p/17290125.html
这篇文章讲述了缓存替换策略,特别是LRU算法。LRU算法基于这样一个假设:如果数据最近被访问过,那么将来被访问的几率也更高。通常我们会用双向链表来实现这个数据结构,每次访问数据的时候,就将数据移动到链表的尾部。但如果数据的访问模式不符合LRU算法的假设,那么LRU算法就会失效。文章还提到了LFU和LFRU算法,可以有效的解决这个问题。最后,文章介绍了如何优化算法,降低链表的删除操作的时间复杂度。
https://www.cnblogs.com/xbotter/p/semantic_kernel_introducation_kernel_and_skills.html
这篇文章讨论了如何使用语义内核(SK)构建结合LLM AI和原生代码能力的应用程序。SK的基本能力由技能组成,技能由语义函数(LLM AI能力)和本地函数(代码能力)组成。需要一个内核来组织和管理技能并提供基础服务配置。该页面还提供了如何设置应用程序环境和安装SK nuget包的说明。它还讨论了如何在SK中使用语义和本地函数。
https://www.cnblogs.com/Ax0ne/p/17300692.html
这篇文章介绍了如何使用 Microsoft.AspNetCore.MiddlewareAnalysis
和 Microsoft.Extensions.DiagnosticAdapter
两个 Nuget 包来分析和记录中间件。文章提供了一个适配器的代码实现,用来把从 DiagnosticSource
接收到的日志对象输出到控制台。文章还介绍了如何使用 DiagnosticListener
对象的 SubscribeWithAdapter
方法来订阅日志。最后,文章提供了一种方法来查看一个请求执行了哪些中间件。
https://www.cnblogs.com/Can-daydayup/p/17157135.html
这篇文章介绍了如何使用.NET Core应用程序连接MongoDB并封装MongoDB数据仓储和工作单元模式。文章详细讲解了仓储模式和工作单元模式的好处,以及如何在MongoDB中实现它们。文章还提到,MongoDB单机服务器不支持事务,只有在集群情况下才支持事务。最后,文章给出了一些示例代码,展示了如何定义MongoDB DBContext上下文类,以及如何使用仓储和工作单元模式进行数据操作。
https://www.cnblogs.com/zhangnever/p/17131504.html
这篇博客讲述了如何在.Net Core 7.0 WebApi后端架构中实现动态路由与Dynamic API。作者提到了使用过ABP vNext和Furion框架的可能都会对它们的动态API感到好奇。文章详细介绍了动态路由的实现方式,以及WebApplicationBuilder在不同版本中的变化。此外,作者还详细解释了UseRouting和UseEndpoints的源码。最后,作者提到了MapControllers方法的作用,即将controller里面的action映射为我们的终结点。总之,这篇博客为我们提供了关于.Net Core后端架构实战的宝贵经验。
https://www.cnblogs.com/sheng-jie/p/17294842.html
这篇文章介绍了Semantic Kernel (SK) ,它是一个轻量级的SDK,可以轻松地将传统编程语言与最新的大型语言模型 (LLM) AI "提示"相结合。SK提供了多种能力,包括提示链、递归推理、总结、zero/few-shot(零样本和少量样本)学习、上下文记忆、长期记忆、嵌入、语义索引、 规划,以及访问外部知识库和您自己的数据。文章还提供了一个简单的AI应用示例:使用SK开发专属AI外教应用。总之,这篇文章为我们提供了关于如何使用SK进行面向AI编程的宝贵经验。
https://www.cnblogs.com/huangxincheng/p/17292169.html
上周看了一位训练营朋友的dump,据朋友说他的程序卡死了,看完之后发现是一例经典的死锁问题,蛮有意思,这个案例算是学习 .NET高级调试
入门级的案例,这里和大家分享一下。
https://www.cnblogs.com/CollapseNav/p/17285595.html
这篇文章讲述了C#泛型里的逆变协变。作者通过举例说明了逆变协变的概念和使用方法。例如,IEnumerable<object> list = new List<string> ();
体现的是协变,符合一般直觉,整体上看起来就像是将子类赋值给基类。而IFace<string> item = new Face<object> ();
则体现了逆变。作者还解释了什么时候可以用逆变,什么时候可以用协变,以及这两个东西用起来有什么限制。简单来说,有关泛型输入的用逆变,关键词是in;有关泛型输出的用协变,关键词是out;如果接口中既有输入又有输出,就不能用逆变协变。总之,这篇文章为我们提供了关于C#泛型里的逆变协变的宝贵经验。
https://www.cnblogs.com/catcher1994/p/17291228.html
这篇文章介绍了如何使用 Crank 工具来进行基准测试。Crank 是一个 client-server 架构的工具,由控制器和代理组成。它可以用来在多个环境下运行基准测试,也可以针对 Pull Request 进行基准测试。文章中还提供了一个简单的入门示例,以及如何在不同机器上执行基准测试的方法。总之,Crank 是一个非常不错的工具,可以结合 BenchmarkDotNet 来做类库的基准测试,也可以结合其他压测工具进行 api/grpc 框架和应用的测试。
https://www.cnblogs.com/calvinK/p/netcore-buiding-swaggerhub.html
本文介绍了SwaggerHub,一种集中管理和展示公司API信息的工具。为减少沟通成本并实现全局视野,可选用成熟商业产品如https://swagger.io/tools/swaggerhub/。此外,文章提供了在.Net Core环境中使用Swashbuckle.AspNetCore搭建自定义SwaggerHub的方法。只需一行代码配置Urlsoption,即可添加多个swagger.json文件。SwaggerUIOptions对象的更改实时生效,而URL可以配置为endpoint或任意位置的文件。
https://www.cnblogs.com/wewant/p/17114036.html
本文介绍了缓存技术,特别是在.NET Core框架中的内存缓存。缓存通过存储数据副本降低了生成内容所需的工作,提高应用性能和可伸缩性。注意事项包括:使用缓存适用于不常更改且成本高的数据;始终设有回退选项;应考虑缓存失效的情况;限制缓存增长。
https://www.cnblogs.com/newbe36524/p/0x029-I-can-not-manage-to-always-run-task-on-one-thread.html
这篇文章讨论了如何在处理带有异步代码的常驻任务时确保代码在同一个线程上运行。作者提出了几种解决方案,包括增加线程池容量,使用同步重载方法,以及自定义任务调度程序。但是,这些方法都有其局限性和困难。作者建议读者可以通过 UniTask 项目来了解如何实现全套自定义。
https://www.cnblogs.com/huangxincheng/p/17282019.html
昨天有位朋友找到我,说他的程序内存存在泄露导致系统特别卡,大地址也开了,让我帮忙看一下怎么回事?今天上午看了下dump,感觉挺有意思,在我的分析之旅中此类问题也蛮少见,算是完善一下体系吧。
https://wixtoolset.org/docs/releasenotes/#v4
WiX v4.0.0 已经发布。
此版本包括各种改进,例如 ARM64 支持和 NuGet 提供的工具。
https://blog.jetbrains.com/dotnet/2023/04/05/resharper-2023-1/
ReSharper 2023.1 已发布。
此版本包括修复集合中多个查找的 QuickFix、引入空检查模式的语法样式、改进快捷方式和更新对话框等。
此外,从此版本开始,不再支持 Visual Studio 2010 和 2012。
https://blog.jetbrains.com/dotnet/2023/04/05/dottools-2023-1-release/
dotCover、dotMemory、dotPeek、dotTrace 2023.1 已发布。
dotTrace 现在作为 Linux 和 macOS 的独立测试版提供,并进行了多项改进。
https://devblogs.microsoft.com/dotnet/improvements-auth-identity-aspnetcore-8/
了解 .NET 8 中 ASP.NET Core 中的身份验证和身份管理。
它提到从 .NET 8 SPA 模板中删除了 IdentityServer 依赖项并改进了自托管身份验证。
https://devblogs.microsoft.com/dotnet/aspnet-core-route-tooling-dotnet-8/
.NET 8 中 ASP.NET Core 路由的工具增强。
https://github.com/icsharpcode/ILSpy/releases/tag/v8.0-preview4
ILSpy 8.0 Preview 4 已经发布。
此版本添加了新主题并修复了各种错误。
https://www.christianfindlay.com/blog/asp-dotnet-core-minimal-webhooks
描述实现和测试使用 ASP.NET Core 的最小 API 接收请求的 webhook 的过程。
线程和并行堆栈调试工具的介绍视频。
https://dev.to/yushulx/how-to-create-a-nuget-package-for-both-desktop-and-mobile-development-5e61
如何创建一个 NuGet 包,其中除了桌面之外还包括适用于 Android 和 iOS 的绑定库。
https://zenn.dev/shimat/articles/daab88eea9c41f
一篇关于使用通用数学实现类似 OpenCV 的 saturate_cast 函数的方法的文章。
https://blog.neno.dev/entry/2023/04/07/165241
引入 user-jwts 工具,它允许您在使用 ASP.NET Core 开发时使用 JWT 时轻松生成可以在本地开发环境中使用的 JWT。
https://blog.jetbrains.com/dotnet/2023/04/06/net-annotated-monthly-april-2023/
JetBrains 4 月发行的 .NET 相关信息。
https://medium.com/@epeshk/arraypool-t-ea90cb24b87f
ArrayPool 内部实现的描述。
https://devblogs.microsoft.com/identity/improved-windows-broker-support-with-msal-net/
在 MSAL.NET 中改进 Windows 环境中的代理支持。
https://qiita.com/YoshijiGates/items/e1055e14c9960228726b
如何覆盖 C# 项目并使其在 SonarQube 中可见。
如何在没有 jQuery 或 ASP.NET Core 中的非侵入式验证的情况下添加客户端验证。
文章介绍了如何使用 npm 的 aspnet-client-validation 包并对其进行自定义。
https://qiita.com/nohanaga/items/430b59209b02c298ef2a
语义内核简介,这是一个用于将诸如 ChatGPT 之类的 LLM 集成到您的应用程序中的框架。
https://www.devleader.ca/2023/03/17/shocking-results-from-collection-and-iterator-benchmarks/
在针对产生意外结果的列表和迭代器对 LINQ 进行基准测试时,对我忽略的事情的思考。
https://qiita.com/nekohei/items/9a2e8b1e9dfc922592ea
如何使用 iText 7 拆分和合并 PDF 文件。
https://csharp.christiannagel.com/2023/03/28/primaryctors/
将在 C# 12 中引入的主要构造函数的讨论。
https://zenn.dev/junnuj/articles/c2ba888670bc8e
了解如何使用 Lambda Web Adaptor 在 Lambda 上运行纯 ASP.NET Core 应用程序。
https://github.com/ufcpp/ScribanSourceGenerator
ScribanSourceGenerator 使用 Scriban(模板引擎)生成源代码。
https://github.com/marketplace/actions/visual-studio-marketplace-publisher
要发布到 Visual Studio Marketplace 的 GitHub 操作。
https://github.com/marketplace/actions/visual-studio-vsix-signer
用于签署 Visual Studio VSIX 的 GitHub 操作。
https://github.com/drasticactions/Drastic.InAppSettingsKitInAppSettingsKit 的绑定库,用于在 iOS 应用程序中创建设置屏幕。
https://twitter.com/dramaticactions/status/1642778859992154114?s=20
关于 Java 和 .NET 堆栈跟踪之间的区别。
https://twitter.com/matarillo/status/1643864714466951168?s=12
MFractor 现在支持 Visual Studio for Mac v17.5。
https://twitter.com/matthewrdev/status/1642281174793068544?s=12
https://github.com/dotnet/runtime/pull/84469
为 DateTime 等值类型实现“IUtf8SpanFormattable”的 PR。
由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.NET周报-国内文章》板块进行贡献,需要推广自己的文章或者框架、开源项目可以下方的项目地址提交Issue或者在我的微信公众号私信。
格式如下:
https://github.com/InCerryGit/.NET-Weekly
相信大家在开发中经常会遇到一些性能问题,苦于没有有效的工具去发现性能瓶颈,或者是发现瓶颈以后不知道该如何优化。之前一直有读者朋友询问有没有技术交流群,但是由于各种原因一直都没创建,现在很高兴的在这里宣布,我创建了一个专门交流.NET性能优化经验的群组,主题包括但不限于:
希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET性能问题和宝贵的性能分析优化经验。目前一群已满,现在开放二群。
如果提示已经达到200人,可以加我微信,我拉你进群: ls1075
另外也创建了QQ群,群号: 687779078,欢迎大家加入。