国内文章
CAP 8.0 版本发布通告 - CAP 7 岁生日快乐!
https://www.cnblogs.com/savorboard/p/cap-8-0.html
今天宣布 CAP 8.0 版本正式发布,恰逢项目七周年及作者生日。七年间,CAP 共发布 61 个版本,在 GitHub 获得 6.3K 星标,有 108 名贡献者,核心包在 NuGet 上的下载量达 640 万次。CAP 是一种分布式事务解决方案,通过本地消息表保证数据安全,同时可作为 EventBus 使用。8.0 版本主要更新包括全面支持.NET 8,优化 Dashboard 认证授权,新增配置项以自定义回溯时间窗,改进消费者预取和分组调度配置项的协同工作,NATS 支持配置 DeliverPolicy,默认为 New。此外,修复了多个 BUG,包括消息无限重试、Open Telemetry 上下文丢失等问题。破坏性改动包括移除 Dashboard 中的某些配置项。更多信息请查看官方文档。
EF Core 助力信创国产数据库
https://www.cnblogs.com/CreateMyself/p/17900180.html
本文讨论了国产数据库的发展,特别是人大金仓和华为高斯数据库,它们都基于 PostgreSQL。作者在工作之余将 EF Core 适配到这些数据库并开源,以便社区共同改进。目前已支持人大金仓 EF Core 6.x 和华为高斯 EF Core 8.0,未来计划支持更多版本。作者鼓励社区贡献而非仅提问题,并强调在处理问题时需要具体的代码示例。
.NET 中如何实现高精度定时器
https://www.cnblogs.com/czwy/p/17915333.html
本文探讨了在.NET 中实现高精度定时器的方法。首先介绍了定时器的三个核心功能:计时、等待和触发模式,并解释了如何使用 Windows 系统的 API 和.NET 类来获取高精度时间戳。文章详细讨论了两种等待策略:自旋等待和阻塞等待,以及如何通过系统 API 调整 Windows 的计时器精度。最后,提到了多媒体定时器timeSetEvent作为实现高精度定时器的一种方法,尽管它已被官方标记为过时,但在精度和稳定性方面仍优于其他方法。
用 C#也能做机器学习?
https://www.cnblogs.com/mingupupu/p/17918738.html
本文介绍了如何在 C#中使用 ML.NET 进行机器学习,特别是通过 ML.NET Model Builder 构建猫狗识别模型。ML.NET 是一个适合.NET 开发者的免费、开源机器学习框架,支持 C#或 F#语言。Model Builder 提供了一个直观的界面,使得在 Visual Studio 中生成、训练和部署机器学习模型变得简单,无需深厚的机器学习背景。它还支持 AutoML 自动选择最佳算法和设置。Model Builder 作为 Visual Studio 扩展,使.NET 开发者能够在熟悉的环境中工作,无需依赖云资源或其他服务。
一款基于.NET Core 的快速开发框架、支持多种前端 UI、内置代码生成器
https://www.cnblogs.com/Can-daydayup/p/17922742.html
本文介绍了 WalkingTec.Mvvm(简称 WTM),这是一个基于.NET Core 的开源快速开发框架,支持多种前端 UI,具备代码生成器,旨在提升开发效率。WTM 支持前后端分离,降低沟通成本,内置了用户、角色、权限等管理功能,支持单点登录和分布式数据库。技术栈包括 LayUI、React、VUE、Blazor 等前端技术,以及.NET Core、EF Core、Redis 等后端技术。数据库支持 MySql、Sql Server、PostgreSQL。WTM 的源代码和文档可在 GitHub 查看,项目已被收录为 C#/.NET/.NET Core 优秀项目。DotNetGuide 技术社区提供.NET 相关资源和交流平台,鼓励开发者分享经验和技术问题。
简便实用:在 ASP.NET Core 中实现 PDF 的加载与显示
https://www.cnblogs.com/powertoolsteam/p/17911303.html
本文讲述了如何在 ASP.NET Core 中加载和显示 PDF 文件。首先,使用 Visual Studio 创建 ASP.NET Core Web 应用程序,并选择.NET Core 6.0 作为目标框架。然后,安装 GrapeCity.Documents.Pdf 依赖包。接着,在 Index.cshtml.cs 页面中定义服务器端代码生成 PDF 文件,包括添加图片、文本格式设置、添加标题和项目列表。最后,将生成的 PDF 文件保存到 Web 根目录。文中提供了详细的代码示例和最终效果的截图。
Semantic Kernel 正式发布 v1.0.1 版本
https://www.cnblogs.com/shanyou/p/17924196.html
微软发布了 Semantic Kernel 的.NET 1.0.1 版本,这是一个开源 SDK,结合了 AI 服务和传统编程语言,如 C#和 Python,以创建 AI 应用程序。它作为 AI 编排层,与 Microsoft AI 模型堆栈和 Copilot AI 助手配合。新版本提供了文档,介绍了如何创建能与用户互动的 AI 代理,执行任务如自动化流程。文档还涵盖了构建 AI 代理的核心组件,如插件、规划器和角色。Semantic Kernel 现在稳定,未来将专注于 AI 连接器、Memory 连接器和 Agent 抽象。微软鼓励社区参与 AI 连接器的开发,核心团队将在假期后审查社区贡献。
记一次 .NET 某药厂业务系统 CPU 爆高分析
https://www.cnblogs.com/huangxincheng/p/17916751.html
本文讲述了作者帮助朋友分析程序 CPU 使用率过高的问题。首先,通过 procdump 工具抓取 dump 文件,然后使用 Windbg 的!tp 命令确认 CPU 利用率为 88%。通过!cpuid 命令发现服务器只有 4 个 CPU 核心,性能较弱。进一步分析发现程序有 451 个线程,其中 443 个是后台线程,多数线程通过 new Thread 创建而非线程池。使用~*e !clrstack 命令检查线程栈,发现大多数线程在执行 Thread.SleepInternal。作者最终意识到频繁的上下文切换可能是导致 CPU 爆高的原因,特别是在 Loop 方法中发现了大量的 Sleep(1)调用。
升讯威在线客服系统的并发高性能数据处理技术:超强的 SignalR
https://www.cnblogs.com/sheng_chao/p/17921167.html
本文介绍了作者在业余时间开发的升讯威在线客服系统,该系统免费开源且用户众多。系统通过客户的压力测试,表现出色,无异常掉线,消息实时到达。作者计划分析系统的高性能并发技术,首篇聚焦 SignalR 技术。SignalR 是 ASP.NET Core 的实时 Web 功能库,适用于需要服务器实时更新的应用,如游戏、社交网络等。它支持 WebSockets、Server-Sent Events 和长轮询等传输技术,自动选择最佳传输方法。SignalR 使用中心(Hub)进行通信,允许客户端和服务器互调方法,支持 JSON 和 MessagePack 协议。作者还展示了如何在客服系统中创建 SignalR 中心,配置服务器,并添加客户端代码以实现实时通信。
Net 高级调试之十四:线程同步的基础知识和常见的同步原语
https://www.cnblogs.com/PatrickLiu/p/17910805.html
本文是《Net 高级调试》系列的第十四篇,重点介绍了多线程中锁的底层实现原理,而非其使用方法和 API。文章强调了对.Net 框架底层理解的重要性,有助于更好地进行调试。调试环境包括 Windows 10 专业版、Windbg Preview、Visual Studio 2022 和.Net Framework 4.8。基础知识部分讲述了线程同步原语,包括 C#、CLR 和 OS 层的线程表示,以及不同类型的锁,如 AutoResetEvent、Semaphore、Monitor 和 ThinLock。最后,文章提供了源码调试的具体过程,通过实际代码来验证所学知识。
将 Abp 默认事件总线改造为分布式事件总线
https://www.cnblogs.com/jevonsflash/p/17917031.html
本文介绍了分布式事件总线的原理和实现。本地事件总线通过 Ioc 容器和事件订阅表实现事件的注册与触发。分布式事件总线通过中间件如 RabbitMQ、Kafka、Redis 转发事件,与本地事件总线兼容。自动订阅和事件转发功能确保本地事件注册时同时订阅分布式事件,并在本地事件触发时将消息转发到分布式总线。消费端接收分布式事件消息后,解析类型并触发本地事件,由本地事件处理器完成处理。
.NET 周刊【12 月第 2 期 2023-12-13】
https://www.cnblogs.com/InCerry/p/dotnet_week_23_12_2.html
本文汇总了.NET 领域的多篇文章。首先介绍了使用.Net6 的 miniapi 开发简洁 API 的方法,包括数据库操作和 Swagger 配置。接着分享了 C#/.NET/.NET Core 的优秀项目和框架,如 CAP、ZEQP.WMS 和 HandyControl,以及.NET 平台下的网络爬虫框架 DotnetSpider。此外,C#有望成为 2023 年度编程语言,TIOBE 榜单显示其增长迅速。文章还分析了博客园频繁崩溃的原因,探讨了 SQL Server 的性能问题。另外,.NET8 的 AOT 编译性能优化被详细讨论,包括减少可执行文件大小和提升性能。还有对.NET 内存管理术语的解释,以及使用.NET 8 开发个人网盘项目的介绍。最后,ML.NET 3.0 的发布强化了深度学习和数据处理能力。
.NET 周刊【12 月第 1 期 2023-12-06】
https://www.cnblogs.com/InCerry/p/dotnet_week_23_12_1.html
本文汇总了多篇关于.NET 和相关技术的文章。介绍了 openEuler 操作系统的多处理器架构支持和.NET 社区合作机会;MAUI Blazor 应用中显示本地媒体文件的新方法;Visual Studio 2022 17.8 版本的性能提升;.NET 中六种定时器的使用场景;HtmlAgilityPack 库在.NET 中解析 HTML 的功能;ASP.NET Core Web API 中设置 Json 响应格式的方法;Cron 表达式在 Unix 系统中的应用及在.NET 中的解析执行;VS2022 中调试.Net 源码的配置方法;以及 C#中只读结构体成员可能导致的问题。这些内容涵盖了操作系统支持、开发工具更新、编程技巧和潜在 BUG 的警示,对.NET 开发者具有实用价值。
Kernel Memory 入门系列:Kernel Memory Service
https://www.cnblogs.com/xbotter/p/kernel_memory_service.html
本文介绍了 Kernel Memory Service,一个 GitHub 上的项目,提供独立部署后台和接口服务。首先通过 Git Clone 下载源码,然后执行 setup 脚本或命令进行初始化,配置项存储在 appsettings.json 中。配置完成后,运行 run 脚本启动服务,本地运行可通过 Swagger 页面访问。C#用户可用 MemoryWebClient 包调用接口。项目还提供了工具脚本,如启动 Qdrant 和 RabbitMQ 服务,初始化和启动 Kernel Memory Service,上传文件和提问等功能。
封装 Detours 用于 Python 中 x64 函数 hook
https://www.cnblogs.com/kanadeblisst/p/17922099.html
本文介绍了微软的 Detours 框架,它支持多种处理器架构,用于实现 API hook。文中详细描述了如何在 x64 环境下编译 Detours,包括解决编译错误和生成 Debug 版本的方法。还提供了使用 Detours 进行函数 hook 的代码示例,并说明了如何在项目中引入 Detours 的头文件和库文件。最后,作者推荐了使用预处理器指令在代码中直接引入库文件的方式。
Kernel Memory 入门系列:快速开始
https://www.cnblogs.com/xbotter/p/kernel_memory_quick_start.html
本文介绍了如何快速开始使用 Kernel Memory,包括通过 NuGet 安装包、构建内存实例、内容导入和问答查询。构建时,可配置 OpenAI 或 Azure OpenAI 服务,支持自定义文本生成和 Embedding 模型。内容导入支持文件路径、文件流、文档集合和 URL 方式。问答功能通过调用AskAsync方法实现,可获取答案及相关文档信息。
使用代码生成工具快速开发应用-结合后端 Web API 提供接口和前端页面快速生成,实现通用的业务编码规则管理
https://www.cnblogs.com/wuhuacong/p/17921357.html
本文介绍了如何使用代码生成工具 Database2Sharp 和 SqlSugar 开发框架,快速开发 Winform、WPF 和 Vue3+ElementPlus 前端应用。通过通用业务编码规则的管理功能,可以统一生成和维护各种编码,如订单号等。文章展示了数据库设计,后端接口,以及 Winform 和 WPF 界面的生成过程。最后,介绍了如何利用生成的 Web API 控制器和 Service 层接口,快速实现 Vue3 前端界面的开发。
称重驱动二次开发教程
https://www.cnblogs.com/yizhuqing/p/17921902.html
本文介绍了如何通过二次开发快速集成新的电子秤驱动到系统。首先,需要了解系统介绍并下载相关软件。接着,创建一个控制台工程,并添加引用 DDS.IOT.Weight.exe。然后,新建一个继承自 WeightBase 的电子秤类,并实现虚方法。最后,通过后台任务模拟电子秤,定时输出随机重量。这些步骤可以帮助开发者快速实现电子秤驱动的集成。
Blazor 入门 100 天 : 自做一个支持长按事件的按钮组件
https://www.cnblogs.com/densen2014/p/17915285.html
本文继续介绍了博主的系列博客,提供了配套源码和在线演示 demo。文章详细说明了如何创建一个支持长按功能的 Blazor 组件,包括设置长按触发的回调委托、点击事件处理、判断是否触摸设备等。通过代码示例,展示了组件的实现过程和功能。
AntDesignBlazor 示例——Modal 表单
https://www.cnblogs.com/known/p/17923002.html
本文是 AntDesign Blazor 的入门教程,分享了如何创建和操作 Modal 表单和 Table。首先,介绍了在 Weather.razor 文件中添加新增按钮和 Modal 组件,设置属性并绑定事件。接着,创建 WeatherForm 组件,包含日期、温度和摘要字段,并在 WeatherForecast 模型类中添加必填特性。然后,实现了 Modal 表单的数据编辑功能,包括绑定 Model 对象、保存数据的事件处理。最后,教程展示了如何在 Table 中添加操作列,实现编辑和删除功能,并在 WeatherService 类中添加相应的方法。教程还提供了示例代码仓库链接和视频教程,方便学习和参考。
主题
宣布 .NET Aspire 预览版 2 - .NET 博客
https://devblogs.microsoft.com/dotnet/announcing-dotnet-aspire-preview-2/
.NET Aspire Preview 2 已发布。
它包括各种改进,例如改进仪表板的各种视图、改进运行容器时的配置自定义以及添加 MySQL 和 MongoDB 等组件。
OpenSilver 2.0 简介 - OpenSilver
https://opensilver.net/announcements/2-0/
OpenSilver 2.0 已经发布。
此版本包括对 Visual Basic .NET 的支持、与 Blazor、React 和 Angular 的集成、设计时实时 XAML 预览、对高级布局系统的支持、更快的基于 WebView 的模拟器以及各种性能改进。
发布 WCF 8.0 · dotnet/wcf
https://github.com/dotnet/wcf/releases/tag/v8.0.0-rtm
WCF 客户端 8.0 已发布。
除了删除了接收配置名称的 API 之外,此版本没有重大变化,但客户端支持政策是自发布之日起提供三年支持(直至 2026 年)。对先前版本 WCF Client 6.0 的支持将于 2024 年 11 月结束。
版本 2.3.3 · mysql-net/MySqlConnector
https://github.com/mysql-net/MySqlConnector/releases/tag/2.3.3
MySQL Connector for .NET 2.3.3/2.3.2 已发布。
此版本包括改进的架构支持和多个错误修复。
- 版本 2.3.2·mysql-net/MySqlConnector[1]
ReSharper 和 Rider 2023.3.2 – 错误修复已落地! | .NET 工具博客
https://blog.jetbrains.com/dotnet/2023/12/20/resharper-and-rider-2023-3-2-bug-fix/
ReSharper / Rider 2023.3.2 已发布。
此版本修复了自 2023.3 版本以来 ReSharper 和 Rider 中的各种错误。
- [ReSharper 和 Rider 2023.3 的第一组错误修复已在这里! | .NET 工具博客](https://blog.jetbrains.com/dotnet/2023/12/13/rsrp-rd-2023-3 -1-错误修复/ "ReSharper 和 Rider 2023.3 的第一组错误修复已在这里! | .NET 工具博客")
Win11 主题的 WPFUI 协作 · dotnet/wpf · 讨论 #8533 · GitHub
https://github.com/dotnet/wpf/discussions/8533
宣布与 WPFUI 合作将 Windows 11 Fluent UI 主题引入 WPF。
- WPF UI x WPF 协作·lepoco/wpfui·讨论 #880[2]
我们的代码覆盖率工具有哪些新增功能? - .NET 博客
https://devblogs.microsoft.com/dotnet/whats-new-in-our-code-coverage-tooling/
关于代码覆盖率工具(Microsoft.CodeCoverage)的新功能。
支持具有静态检测的所有平台、支持新的报告格式、引入 dotnet-coverage 命令、自动解决方案合并、性能改进等等。
2023 年降临节日历
- C# 降临节日历
- neue cc - 介绍 .NET 8 使用示例以及 Unity C# 11 与 ZLogger v2 的兼容性[3]
- 使用 UnsafeAccessor 测试私有方法 - Qiita[4]
- 我从 Untiy 启动 C# 的 IEnumerator - Kako 所做的各种事情[5]
- C# (.NET) 中的最小-最大标准化 - Qiita[6]
- LINQ - Python 备忘单[7]
- 在 Stride 中使用 BepuPhysics 作为物理引擎 - Qiita[8]
- async/await 会继续成为你最好的朋友吗[9]
- 让我们尝试使用 USB 摄像头 - Qiita[10]
- 我尝试了 AutoML,它允许您在没有机器学习专业知识的情况下使用 C# + ML.NET 创建高性能 AI - Qiita[11]
- 注意 Mono.Cecil 中的“.s”命令[12]
- 尝试使用 Microsoft.Extensions.ObjectPool[13]
- 使用 C# 创建。关于嵌入式 GUI 应用程序通信方法-Qiita[14]
- 用通用树做类似可变长度结构的事情 - Qiita[15]
- EF Core 查询表达式 - Qiita[16]
- mex 库封装 - Qiita[17]
- C# 中的 OpenTelemetry 入门 [18]
- Blazor 降临节日历
- “我尝试使用 Blazor 表达网络游戏等中常见的“长按按钮”的 UI - Qiita[19]
- 我想让塑料模型照片闪闪发光 x Blazor WebAssembly x OpenCV - koudenpa 的博客[20]
- 使使用 Blazor WebAssembly 创建的 Web 应用程序“snow catch”游戏能够通过 ? 语音命令(语音识别)进行操作 - Qiita[21]
- 迁移到 .NET 8 自动渲染模式后,Blazor WebAssembly 应用程序无法处理 InvalidOperationException - Qiita[22]
- 我也想在 Blazor 上进行视图转换 - Qiita[23]
- 使用 .NET 8 的新渲染模式 - Qiita,在 Blazor 服务器中的范围服务中保存状态可能会很危险[24]
- 在 Blazor 应用中应对 2 年无人看管的代码警告 - Qiita[25]
- Blazor - 如何判断它是在服务器上还是在浏览器中运行 - Qiita[26]
- .NET 8 自动渲染模式下的 Blazor 可能无法在 WebAssembly 模式下工作,即使已下载 .wasm - Qiita[27]
- 使用轻量级且功能强大的 HAVIT Blazor 进行 Blazor 开发 - Qiita[28]
- [修订]如何在 Blazor 中对单选按钮输入元素进行双向数据绑定 - Qiita[29]
- 其他的
- 利用 C#和 YouTube API 调查 VTuber 分布趋势-Qiita[30]
- [C#]使用异步调用 CPU 绑定进程时,线程不会分布[31]
- 在 C# + xUnit 项目中以报告形式输出单元测试结果和测试覆盖率。 - Qiita[32]
- 使用 SQL CLR 和 CData ADO.NET Provider 直接从 SQL Server 访问 kintone - Qiita[33]
- 使用 Roslyn API 获取字段和属性类型和名称 - Qiita[34]
- [C#] 我尝试实现就地合并排序[35]
- 使用 Roslyn API 仅获取第一行摘要标签注释 - Qiita[36]## 文章、幻灯片等
使用 actix-web 托管 Blazor WebAssembly - Qiita
https://qiita.com/TellMin/items/9e7f1e576a195103aa92
了解如何使用 Rust 的 actix-web 框架托管 Blazor WebAssembly 应用程序。
尝试过 .NET Aspire - Qiita
https://qiita.com/Hydrangeas/items/b87bd39843eee0633cb0
创建.NET Aspire 项目并涉及配置、日志记录等的记录。
gRPC 管道通信似乎非常适合 .NET 8 中的进程间通信 - Qiita
https://qiita.com/spc_ksudoh/items/760a41a73c825eb70e70
了解使用带有命名管道的 gRPC 作为进程间通信方法的好处以及如何实现它。
- gRPC 管道通信似乎非常适合 .NET 8 中的进程间通信:第 2 部分如何编写特定代码 - Qiita[37]
String.Intern - 使用还是不使用?一个性能问题
https://sergeyteplyakov.github.io/Blog/benchmarking/2023/12/10/Intern_or_Not_Intern.html
关于 String.Intern 的性能。文章还提到了使用 NativeAOT 运行时的差异。
一年回顾:庆祝今年的里程碑
https://avaloniaui.net/Blog/a-year-in-recap-celebating-this-years-milestones
Avalonia 的 2023 年回顾文章。
将语义内核提示写入文件
https://zenn.dev/tomokusaba/articles/379d39dc225b88
如何在外部文件中编写语义内核中使用的提示并调用它们。
[C#] 推荐给初学者!使用代码分析器!
https://zenn.dev/inuinu/articles/c60abf13d5f47a
解释如何使用分析仪。介绍内置分析器,如何抑制分析器,介绍 Roslynator 等第三方分析器。
宣布 HackTogether:伟大的 .NET 8 黑客获胜者 - .NET 博客
https://devblogs.microsoft.com/dotnet/great-dotnet-8-hack-winners/
宣布 The Great .NET 8 Hack 活动的获奖者。
- 一般:NASA TechPort 头条新闻[38]
- 最佳人工智能:Betakads[39]
- 最佳云原生:AI Counselor[40]
模板化语义内核提示
https://zenn.dev/tomokusaba/articles/a403d9ec250ec8
如何将提示转换为模板函数并使用语义内核调用它。
GitHub Codespaces 语义内核 v1.0.1 上手版
https://zenn.dev/ymd65536/articles/semantic_kernel_v101_handson
在 GitHub Codespace 和 Azure OpenAI 上运行 Semantic Kernel v1.0.1 的设置说明。
StronglyTypedId 库更新 - 简化、模板化和 CodeFixes:使用强类型实体 ID 避免原始痴迷 - 第 8 部分
https://andrewlock.net/updates-to-the-stronglytypedid-library/
关于 StronglyTypedId 库的重新设计以及模板的更改等。
在 WSL2 Ubuntu 上安装 .NET 8.0
https://zenn.dev/yukiko_bass/articles/e6f9f22da5f15e
有关在 WSL2 上的 Ubuntu 22.04 上安装 .NET 8 的说明。
命名变得简单:AI 支持的重命名建议 - Visual Studio 博客
https://devblogs.microsoft.com/visualstudio/ai-powered-rename-suggestions/
引入使用 GitHub Copilot 的标识符重命名建议功能,该功能在 Visual Studio Preview 中受支持。
在 .NET 8 中将 MudBlazor 与 Blazor Web 应用程序结合使用
https://zenn.dev/tetr4lab/articles/74bd50585434ab
将 MudBlazor(与 .NET 8 不正式兼容)与 .NET 8 Blazor Web 应用程序一起使用的说明。
将 OpenAI 图像生成集成到 .NET 应用程序中
https://weblog.west-wind.com/posts/2023/Dec/21/Integrating-OpenAI-image- Generation-into-your-NET-Application 介绍如何使用 OpenAI 的 .NET 图像生成 API 和简单的包装器库。
重新审视 F# 的 WASM
https://dev.to/tunaxor/revisiting-wasm-for-f-38c1
将 F# 与 Blazor WebAssembly 结合使用时与库和 JavaScript 的互操作性。
Semantic Kernel1.0.1 正式版,自动选择 Semantic Kernel 函数并返回答案
https://zenn.dev/tomokusaba/articles/e667217a2045cc
如何在 Semantic Kernel 中实现自定义函数的自动选择。
解锁托管内存的秘密:深入了解事件处理程序泄漏!- Visual Studio 博客
https://devblogs.microsoft.com/visualstudio/unlocking-the-secrets-of-management-memory-dive-into-event-handler-leak-insights/
介绍 Visual Studio 17.9 Preview 1 中引入的新内存分析功能。
此功能使得可以快速找到事件处理程序中的对象泄漏。
.NET Core 中 Windows 和 Linux 的时区 ID 不同
https://zenn.dev/ynug/articles/dot-net-time-zone
如何处理时区 ID 根据 Windows 和 Linux 等平台不同而不同的情况。
从.NET 8 开始,将 LibraryImportAttribute 中使用的 SafeHandle 类型构造函数公开 - 程序系统备忘录博客
https://tan.hatenadiary.jp/entry/2023/11/23/015139
在 .NET 8 中,用于调用使用 LibraryImportAttribute 声明的外部库的 SafeHandle 类型的构造函数必须是公共的。
本文还解释了生成的代码是如何更改的以及更改的原因和必要性。
福冈.NET Conf 2023 - connpass
https://fukuten.connpass.com/event/303390/
.NET Conf 2023 福冈当地活动。于 2024 年 2 月 3 日星期六举行。
Azure SignalR 服务的 HttpContext 问题
https://dev.to/1kevgriff/httpcontext-issues-with-azure-signalr-service-21d0
Azure SignalR 服务具有无法使用 HttpContext 的独特特征,这可能会出现问题。
尝试 NUnit4 的新异步断言
https://zenn.dev/tomokusaba/articles/890091dd520f08
NUnit 4 中的异步断言简介。
让我们通过 .NET SDK 使用 Azure OpenAI 服务的 JSON 模式和工具
https://zenn.dev/microsoft/articles/aoai-tools-jsonmode-in-dotnet
了解如何使用适用于 .NET 的 SDK 中的 Azure OpenAI 服务的 JSON 模式和工具属性。
在 .NET 8 上尝试最新的 React-TypeScript SPA 模板 | Doxel
https://www.docswell.com/s/shosuz/Z4QRL8-2023-11-25-172313
引入在 .NET 8 中结合了 React 和 ASP.NET Core 的新 SPA 模板。
HTTP/2 快速重置概述及对策
https://speakerdeck.com/murachiakira/2-rapid-reset-nogai-yao-todui-ce
HTTP/2 快速重置攻击的说明。
关于 .NET 第 8 代 Blazor
https://speakerdeck.com/tomokusaba/dot-net-8shi-dai-noblazornituite
.NET 8 中 Blazor 托管模型更改的简要说明。
C# 中的 OpenTelemetry 入门
https://speakerdeck.com/nenonaninu/c-number-dehazimeru-opentelemetry
OpenTelmetry 简介、ASP.NET 中的支持和使用、使用 SignalR 进行跟踪等。
- C# 中的 OpenTelemetry 入门 [41]
.NET Conf 回顾日本/晚会
- GitHub - ufcpp/DotNetConf2023Recap:.NET Conf 2023 Recap Japan“开发工具的最新更新”[42]- .NET 夜间派对@品川[43]
- .NET 之夜派对@品川现场编码对决[44]
- .NET Night Party@品川现场编码对决如果是 IF Blazor Apps 模板会怎样? [45]
库、存储库、工具等。
GitHub - SwissLife-OSS/snapshooter: Snapshooter 是 .NET Core 和 .NET Framework 的快照测试工具
https://github.com/SwissLife-OSS/snapshooter
.NET 中用于快照测试的库。
- .NET 中的快照日志测试 | johnnyreilly[46]
GitHub - sator-imaging/docfx-pages: 只需 1 个操作即可将 docfx API 参考部署到 GitHub Pages
https://github.com/sator-imaging/docfx-pages
使用 docfx 将 API 引用发布到 GitHub Pages 的 GitHub Action。
- docfx + GitHub 页面劣质模板 - Qiita[47]
GitHub - timonkrebs/MemoizR: C# 的声明式结构化并发
https://github.com/timonkrebs/MemoizR
- MemoizR - C# 的声明式结构化并发[48]
Sekiban - 事件溯源和 CQRS 框架 - 主页
https://www.sekiban.dev/
使用 Azure Cosmos DB 和 AWS Dynamo DB 的 C# 事件源框架。
- Sekiban - 使用 C# 的事件源和 CQRS 框架它可以将数据存储到 Azure Cosmos DB 或 AWS Dynamo DB[49]
- JTEC Japan Co., Ltd. 发布 C# 事件溯源框架“Sekiban”作为开源软件[50]
网站、文档等
推文
「根据目标类型,为集合迭代生成的代码存在差异。」
https://x.com/steplyakov/status/1737524544171384927?s=12
「async/await 的历史故事。」
https://x.com/dsymetweets/status/1735396207328162082?s=12
https://x.com/davidfowl/status/1735686682354356690?s=12
「您可以使用 DebuggerDisplay 属性的 Name 属性来显示 Key 而不是索引。」
https://x.com/nietras1/status/1736703070401155195?s=12&t=ggvrrZ7oLogHyNoIGNgjbw
「尝试在 NativeAOT 上运行 Mono 解释器。」
https://x.com/filipnavara/status/1734996595349836154?s=12
版权声明
- 国内板块由 InCerry 进行整理 : https://github.com/InCerryGit/WeekRef.NET
- 其余内容来自 Myuki WeekRef,由 InCerry 翻译(已获得授权) : https://github.com/mayuki/WeekRef.NET
「由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.NET 周刊-国内文章》板块进行贡献,需要推广自己的文章或者框架、开源项目可以下方的项目地址提交 Issue 或者在我的微信公众号私信。」
格式如下:
- 10~50 字左右的标题
- 对应文章或项目网址访问链接
- 200 字以内的简介,如果太长会影响阅读体验
https://github.com/InCerryGit/.NET-Weekly
.NET 性能优化交流群
相信大家在开发中经常会遇到一些性能问题,苦于没有有效的工具去发现性能瓶颈,或者是发现瓶颈以后不知道该如何优化。之前一直有读者朋友询问有没有技术交流群,但是由于各种原因一直都没创建,现在很高兴的在这里宣布,我创建了一个专门交流.NET 性能优化经验的群组,主题包括但不限于:
- 如何找到.NET 性能瓶颈,如使用 APM、dotnet tools 等工具
- .NET 框架底层原理的实现,如垃圾回收器、JIT 等等
- 如何编写高性能的.NET 代码,哪些地方存在性能陷阱
希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET 性能问题和宝贵的性能分析优化经验。「目前一群已满,现在开放二群。」
如果提示已经达到 200 人,可以加我微信,我拉你进群: 「ls1075」
另外也创建了「QQ 群」,群号: 687779078,欢迎大家加入。