https://www.cnblogs.com/Can-daydayup/p/18230586
文章介绍了一个免费的C#工具类库Z.ExtensionMethods,可以通过NuGet包管理器轻松集成。该库支持.NET Standard 2.0和.NET Framework 4.0,包含丰富的扩展方法示例,如MD5哈希算法、解压GZip字节数组以及将泛型数组转换为DataTable。
https://www.cnblogs.com/sunkaixuan/p/18228103
ReZero是一款.NET中间件,通过界面操作生成API,适用于.NET6+ API项目,非.NET用户也可使用exe文件。功能包括表文档导出、在线建表、代码生成、NUGET包安装和注册等。该工具使用自研模版引擎,易于集成与使用,支持创建和导入数据库表并导出文档。设置完成后,可通过URL启动。
https://www.cnblogs.com/Can-daydayup/p/18232050
本文讨论了如何使用Visual Studio 2022分析.NET Dump文件,以快速查找程序内存泄漏问题。文章首先介绍了Dump文件的作用及其内容,然后通过编写一段死循环代码演示内存泄漏的情况。接着,文章详细讲解了如何查看程序运行情况并创建Dump文件。最后,使用Visual Studio分析Dump文件,定位内存泄漏位置,并提供了额外的Visual Studio编程效率提升技巧。此外,文章还推广了DotNetGuide技术社区以及其资源。
https://www.cnblogs.com/anding/p/18221262
文章详细阐述了字符与字符编码、字符串基础的相关知识。介绍了字符Char及其在C#中的表现形式,说明了Unicode字符集及其各种平面的特点。解释了常见字符编码方案如UTF-8和UTF-16的区别。介绍了字符串的定义、不可变性以及常见操作方法,并提供了字符串常用API的详细说明。
https://www.cnblogs.com/BFMC/p/18233359
工作流思想在60年代提出,80年代出现首批成功系统。90年代后至今许多版本出现,其主旨是提高工作效率。本文介绍如何通过工作流框架Workflow Core实现工作流程,包括安装包、创建项目、添加步骤和配置启动。举例展示了具体代码实现步骤。
https://www.cnblogs.com/Bob-luo/p/18231510
博主实现了一个轻量级独立自动更新组件,适用于WPF/Winform/Windows服务。系统架构包括版本检查、下载更新、解压缩与安装以及重启应用。文章详细介绍了在WinForms应用中创建自动更新程序的步骤,包括解析命令行参数、关闭当前运行程序、下载更新包、解压更新包和重启新版本程序。提供了相应的代码示例以实现这些功能。
https://www.cnblogs.com/Can-daydayup/p/18236262
这篇文章定期分享C#/.NET/.NET Core优秀项目和框架,介绍了每个项目的特点、使用方式和源码地址。文章涵盖多个开源项目,如Fluent UI Blazor、Z.ExtensionMethods、Mapsui等,帮助开发者快速找到合适的开发工具。
https://www.cnblogs.com/hoyho/p/18229682
作者开始寻找支持自定义时间的时间管理软件,最终决定自己开发,并分享了开发过程。用C#和XAML编写,先选用MAUI框架,后转用Avalonia。主要遇到MAUI在macOS下的bug和局限。最终实现了一个能跨平台、满足自身需求的简易计时器。
https://www.cnblogs.com/Can-daydayup/p/18227674
本文介绍了Fluent UI Blazor,这是一个开源且免费的Blazor UI组件库。该库基于Blazor框架,旨在帮助开发人员构建现代化的Web应用程序。Blazor使用.NET框架和C#,允许开发者以C#编写单页应用和Web服务。文中还提供了项目源代码和在线文档链接。DotNetGuide技术社区为.NET开发者提供全面的学习资料和交流平台。
https://www.cnblogs.com/anding/p/18221160
本文解释了为什么0.1 + 0.2 不等于0.3,并介绍C#中的数值类型及其存储机制。文中详细讨论了浮点数的存储方式,以及其遵循的IEEE754标准。文章还介绍了decimal类型的特点,并强调其在金钱计算中的优势。通过多个代码示例,文章描述了C#中处理数值类型的方法。
https://www.cnblogs.com/whuanle/p/18232144
本文介绍了.NET开发框架的设计,详细讲解了故障排查和日志记录的方法。作者总结了常用的IDE调试和.NET CLI工具的使用,如dotnet-dump和dotnet-trace。此外,还提到了System.Diagnostics接口和Microsoft.Diagnostics接口在性能探测中的重要性。最后,介绍了Microsoft.Extensions.Logging.Abstractions日志抽象接口及其常见实现方式,包括Serilog框架的使用方法。针对生产环境,文中建议使用Fluentd、Logstash和Elasticsearch等工具进行日志收集和可视化查询。
https://www.cnblogs.com/tcjiaan/p/18233254
本文讨论如何在新线程上创建并显示WPF窗口,强调UI线程必须是STA模式,跨线程访问UI对象需要进行封送。例子通过Button点击事件启动新线程创建新窗口,但没有消息循环导致异常。解决方法是使用Dispatcher类创建消息循环,确保线程能处理事件并保持窗口运行。dispatcher通过投放“帧”启动消息循环,关键方法是PushFrame,内部通过PushFrameImpl实现。
https://www.cnblogs.com/whuanle/p/18227954
本文介绍了一个名为Maomi.Core的模块化开发框架,适用于ASP.NET Core、控制台和WPF项目。文中详细说明了框架的模块化和自动服务注册功能,展示了如何创建和配置模块类、依赖注入以及在程序启动时初始化模块。框架通过实现IModule接口,使得服务可以自动注册并简化代码复杂度。
https://www.cnblogs.com/fanshaoO/p/18233291
本文讨论了在数据过滤时如何简化代码,首先介绍了普通方法和改进的WhereIf方法,然后提出一种更高级的WhereObj方法。WhereObj通过自定义CompareAttribute和动态表达式库DynamicExpresso.Core实现,自动解析对象属性并进行数据过滤。这样可以清晰、优雅地处理复杂的查询条件。
https://www.cnblogs.com/vic-tory/p/18237065
鉴权是验证用户身份的过程,确认用户提供的凭据是否有效。在.NET Core中,鉴权由IAuthenticationService管理,通过注册的处理程序实现。传统鉴权依赖密码,现代则多使用数字签名认证。鉴权是授权的前提。基于Cookie的方式常见于.NET Core中,开发者可通过配置不同选项来实现。CookieAuthenticationHandler用于处理逻辑,开发者可设定Cookie的特性和事件来定制鉴权行为。
https://www.cnblogs.com/kklldog/p/18227932/opentelemetry-logs
OpenTelemetry 是 CNCF 托管的开源项目,提供全面的观察性工具,包括度量、日志和追踪。它的主要优点是广泛的兼容性和灵活性,支持多种编程语言和后端服务。OpenTelemetry 定义了 Otlp 协议,减少了与特定三方组件的深度绑定,提高了兼容性。本文演示了在 .NET 项目中如何使用 OpenTelemetry 对接 Seq 进行日志记录,展示了配置和代码示例。
https://www.cnblogs.com/shanyou/p/18238209
微软与OpenAI合作发布了官方OpenAI .NET库,目前为2.0.0-beta.3版本。该库支持.NET 6和.NET Standard 2.0,并包含对最新OpenAI功能和模型如GPT-4o的支持。该库的发布旨在提高.NET开发人员的开发体验,与其他编程语言库保持一致。官方库在GitHub上进行开发和支持,未来几个月将继续收集反馈改进库并发布稳定版本。此库补充了Python和TypeScript/JavaScript的官方库,社区开发人员也积极参与。
https://www.cnblogs.com/huangxincheng/p/18230369
本文讨论了一个.NET程序在Windows操作系统上因栈溢出导致IIS崩溃的案例。作者利用WinDbg分析崩溃的原因,发现问题出在iiscore.dll组件。详细列出了崩溃相关的错误信息和调用栈,并逐步分析栈溢出的根源。
https://www.cnblogs.com/PatrickLiu/p/18190864
这篇文章是《Advanced .Net Debugging》系列的第九篇,讨论了调试中互用性的问题,包括COM互用性和平台调用服务。文章详细描述了如何在NET 8.0环境中使用Windbg Preview和NTSD工具进行调试,并展示了一些示例代码。作者推荐使用Windbg Preview调试工具,强调其便利性和高效性。文章目录清晰,内容涵盖调试过程中的各种情况,并提供了源码部分供读者参考。
https://www.cnblogs.com/kklldog/p/18233768/opentelemetry-traces
文章讨论了在微服务和云原生环境中如何使用OpenTelemetry进行分布式追踪,提供了理论解释和代码示例。OpenTelemetry Traces通过记录和描述系统中操作的生命周期来实现调用链的可视化,提升监控和问题排查能力。文章通过一个用户登录接口演示了追踪HTTP请求和数据库操作的实现过程,涉及的技术包括ASP.NET Core、Npgsql和OpenTelemetry扩展。这些追踪数据可以通过指定的接收端进行导出和分析。
https://www.cnblogs.com/ggtc/p/18229724
本文通过示例演示多线程与异步编程。示例程序让用户输入命令,主线程以“一发即忘”模式调用异步方法,输出带有线程ID的结果。分析了主线程与异步线程的上下文流转,并通过VS调试工具监视线程栈变化。解释了代码阻塞与线程阻塞两种现象。代码阻塞时,线程可能继续执行其他代码或在同步方法中阻塞。
https://www.cnblogs.com/Can-daydayup/p/18237932
文章介绍了一款开源、免费且实用的.NET多功能原神工具箱——胡桃工具箱。该工具箱旨在改善桌面端玩家的游戏体验,支持多种语言且无需移动设备。介绍了系统要求、工具箱功能、下载地址及源码地址,并呼吁大家关注该项目。文末还提到DotNetGuide技术社区,提供学习资源、技术分享和咨询的平台。
https://www.cnblogs.com/digital-college/p/18227982
本文介绍了数据分页的两种解决方案:一种是读取数据库数据到内存后分页,另一种是在数据库中直接分页再输出数据。文章详细讲解了两种方案的实现方法和优劣,尤其侧重于第一种方案的优点和页面返回对象的属性。文章还通过NuGet引入包以及代码示例展示了使用方法。
https://www.cnblogs.com/huangxincheng/p/18234656
本文通过WinDbg调试器分析一位学员在.NET视觉自动化开发中遇到的程序卡死问题,重点解析了调用栈及相关模块。作者借助第三方库PylonBase并深入解释了NtWaitForMultipleObjects方法的机制,从线程栈追溯问题根源,提供了详细的调试过程和思路。
https://www.cnblogs.com/gmmy/p/18233297
文章讨论了使用大模型智能体进行斗地主游戏的设计和实现。作者选择了国产大模型通义千问作为基础,通过阿里云平台获取接口。游戏设计包括随机发牌、确定地主、轮流出牌等。主要技术点在于C#编程实现的出牌合法性检测,包括手牌检测、牌型判断和竞赛逻辑。提供了核心代码段展示出牌类型的检测和玩牌的主要逻辑。
https://www.cnblogs.com/goodluckily/p/18230478
文章示范了如何在控制台项目中使用多种配置提供程序,包括内存字典、命令行参数、环境变量和文件配置。这些示例展示通过不同方式添加和读取配置信息。
https://www.cnblogs.com/magicMaQaQ/p/18230370
这篇文章介绍了离线安装.NET 3.5的方法,首先关闭防火墙及杀毒软件,通过系统版本查询并下载对应的Windows 10系统镜像文件。解压后找到sxs文件夹,利用dism工具进行离线安装。总结强调版本匹配的重要性。
https://www.cnblogs.com/dotnet-org-cn/p/18239999
作者考虑到常用的远程连接工具不便,研究了基于tun2socks实现的自制工具,最终基于tun/tap手动实现了一个简易的版本,分享了核心代码。
https://www.cnblogs.com/xiaolipro/p/18235447
这篇文章主要谈论内存分析,特别是通过JetBrains的工具dotMemory来优化.NET应用程序的内存流量和性能问题。它详细介绍了装箱的定义、问题及其解决办法,并举例说明了如何使用dotMemory和Heap Allocations Viewer插件进行装箱检测和修复。此外,文章还探讨了动态集合调整大小的问题及其优化方法。通过这些最佳实践,该系列文章旨在帮助开发者提高.NET应用程序的内存使用效率,提高性能。
https://www.cnblogs.com/MeteorSeed/p/18233857
开发者通过技术创新引领未来,但技术债务和上下文切换影响效率。Visual Studio 17.10 和 GitHub Copilot for Azure 提供更好的编码体验。.NET Aspire 支持云原生开发。使用智能应用实现个性化用户体验,新的 AI Toolkit for Visual Studio Code 使开发更简便。Azure App Platform 支持智能应用的构建和运行,并提供新的 API 管理功能。
https://www.cnblogs.com/xlgwr/p/18238532
本文介绍了IceRPC如何通过依赖注入(DI)构建调度管道,包括DI作为可选功能的设计原则、相关API的使用以及在Microsoft的DI容器中构建调度管道的具体操作。讨论了传统与DI构建的调度管道区别,说明了中间件和调度程序的通信方式和生命周期管理。
https://www.cnblogs.com/ruipeng/p/18229755
本章详细介绍了如何使用Semantic Kernel的插件,通过结合自定义和预定义的插件简化应用向智能化转型。介绍了插件的定义,强调插件通过语义方式和API交互,增强了功能。详细说明了Semantic Plugins和Native Plugins的定义方法,包括Prompts和config.json文件的结构和配置。
https://www.cnblogs.com/mingupupu/p/18234563
Semantic Kernel是一个SDK,用于将大型语言模型集成到C#、Python和Java等编程语言中。为了解决大语言模型功能受限的问题,可以通过插件扩展其功能。文章展示了如何创建一个时间插件并在Kernel中使用,从而让AI回答更准确。
https://www.cnblogs.com/ruipeng/p/18234840
本文介绍了Semantic Kernel中Native Plugins原生函数插件的使用和定义。作者详细讲解了如何通过函数定义插件并给出具体的代码示例,包括根据类型创建插件、通过KernelFunction和Description特性定义函数插件、以及插件的注册和调用步骤。文中还介绍了通过对象创建插件的方法,并为实战应用提供了依赖注入的示例。该内容对于使用Semantic Kernel进行插件开发和提升OpenAI模型能力具有指导意义。
https://www.cnblogs.com/weskynet/p/18233902
文章介绍了Wesky.Net.OpenTools包1.0.10及以上版本的使用方法,尤其是实体类JSON模式生成器的核心代码。通过OpenJson属性,可以自定义实体类在JSON中的映射方式,支持多层嵌套和集合。文章提供了实际代码示例,并指出该功能可用于webapi接口快速测试和其他应用场景。
https://www.cnblogs.com/weskynet/p/18236082
通过引用Wesky.Net.OpenTools包,可以为实体类添加注释,生成Json数据字符串或实体类说明文档。反射解析获取类型属性及注释,生成演示文档。代码示例展示了如何生成和提取XML文档的属性摘要信息,及获取XML文档路径的方式。
https://www.cnblogs.com/chillsrc/p/18238421
文章介绍了如何在Visual Studio中使用依赖注入方式调用gRPC服务,包括创建类、编写代码、添加控件、注入服务、启动和运行项目等步骤。
https://devblogs.microsoft.com/dotnet/introducing-mstest-34/
MSTest 3.4 已发布。
此版本包括对 MSTest.Analyzer 的各种改进和错误修复、对 STA 线程的支持、对固定方法的超时支持、对 MSTest.Sdk 中的 Playwright 和 Aspire 的支持以及对 MSTest.Runner 中的 WinUI 的支持。
https://devblogs.microsoft.com/dotnet/openai-dotnet-library/
OpenAI官方客户端第一个测试版2.0.0-beta.1已经发布。
该库涵盖了 OpenAI 的大部分 API,包括对 GPT-4o 和 IAsyncEnumerable 等的支持,并将继续通过最新功能进行改进。
文章还提到了之前的 OpenAI v1.x NuGet 包和其他包社区。
https://github.com/serilog/serilog/releases/tag/v4.0.0
Serilog 4.0.0 已发布。
此版本包括对轻松实现批处理的支持,以及实验性点名称捕获支持。
此外,从该版本开始,固定为 2.0.0.0 的程序集版本现在与包版本匹配,因此在 .NET Framework 中使用它时可能需要程序集重定向。
Windows App SDK 1.6.0-experimental1 已发布。
此版本增加了对 NativeAOT 的支持、对 TabView 的改进、新的 TitleBar 控件以及其他一些改进和新的 API。
隆重推出 Visual Studio 2022 17.11 Preview 2 中引入的新资源浏览器。
新的资源浏览器支持解决方案范围的视图、深色模式以及搜索和过滤器等操作,使资源的使用更加轻松。
目前,不支持以 CSV 格式导入和导出。
https://andrewlock.net/thoughts-about-primary-constructors-3-pros-and-5-cons/
介绍 C# 12 主构造函数的三个优点和五个陷阱和微妙之处。
https://qiita.com/jun1s/items/c000763f31e6a42bdd3b
如何在 ASP.NET Core MVC 中通过操作筛选器从 DI 容器中检索和使用服务。介绍“ServiceFilter”、“TypeFilter”和“IFilterFactory”。
关于添加新的 Visual Studio 安装映像和弃用 Azure 市场中的产品/服务。
https://dev.to/issamboutissant/how-to-readwrite-from-credential-manager-in-net-8-1ag
了解如何读写 Windows 权利管理器。本文介绍了如何使用 Meziantou.Framework.Win32 包进行读写。
https://blog.jetbrains.com/dotnet/2024/06/05/rider-2024-2-roadmap/
Rider 2024.2 路线图。
https://devblogs.microsoft.com/dotnet/array-mapping-in-ef-core-8/
Entiy Framework Core 8 中数组映射的说明。
本文介绍了 PostgreSQL 数组类型、在其他数据库中使用 JSON 的数组、类型化数组以及它们的扩展方式。
Visual Studio LIVE! 活动将于 8 月 5 日至 9 日在微软总部举行。
本文概述了 Visual Studio LIVE! 活动并提供了有关特别早鸟折扣的信息。
https://dev.to/issamboutissantante/creating-shell-extensions-in-net-8-with-sharpshell-2ioe
如何使用 .NET 8 和“SharpShell”实现上下文菜单的 shell 扩展。
https://zenn.dev/microsoft/articles/aspnetcore-blazor-dotnet8-errorboundary
如何在 .NET 8 中使用 Blazor 中的 ErrorBoundary 处理错误以及需要注意的事项。
介绍如何使用“Stateless”实现状态机。文章还提到了使用 UmlDotGraph 输出图形等内容。
https://blog.elmah.io/understanding-the-exception-hresult-property-in-c/
Exception 的 HResult 属性的说明。
本文解释了 HResult 的作用、使用什么规则来设置其值以及如何读取和研究它。
将 Windows Photo 应用从 UWP 迁移到 Windows App SDK 的案例研究。
文章解释了流程模型的变化、使用 WebView2 的能力、改进的可维护性以及从 ASTA 切换到 STA 和 AutoPlay 等技术挑战。
https://blog.shibayan.jp/entry/20240604/1717465930
说明如何使用 ONNX 运行时生成 AI (DirectML) 在本地环境中运行 Phi-3 模型。
https://event-driven.io/en/batching_async_enumerable/
如何在使用 AsyncEnumerable 时批量处理消息。
本文介绍了如何使用Open.ChannelExtensions库创建基于Channel的AsyncEnumerable。
https://yoh.dev/weakly-and-strongly-typed-values-in-dotnet
关于使用原语(弱类型)和包装它们的强类型的 FrozenDictionary 的参考性能。
https://qiita.com/nnkanegon/items/1715b0da782e3dd713c9了解释放 COM 对象的问题以及如何调查因错过释放而导致的泄漏。
https://qiita.com/Fom/items/d9e421bae516be85d675
简要介绍通过 IME 获取转换候选项的库以及如何使用它。
https://devblogs.microsoft.com/dotnet/refactor-your-code-using-alias-any-type/
文章:在 C# 12 中使用任何类型的别名进行重构。
https://nikiforovall.github.io/dotnet/keycloak/2024/06/02/aspire-support-for-keycloak.html
https://zenn.dev/zead/articles/vscode_playwright
关于使用 Playwright 构建浏览器测试环境。
由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.NET周刊-国内文章》板块进行贡献,需要推广自己的文章或者框架、开源项目可以下方的项目地址提交Issue或者在我的微信公众号私信。
格式如下:
https://github.com/InCerryGit/.NET-Weekly
相信大家在开发中经常会遇到一些性能问题,苦于没有有效的工具去发现性能瓶颈,或者是发现瓶颈以后不知道该如何优化。之前一直有读者朋友询问有没有技术交流群,但是由于各种原因一直都没创建,现在很高兴的在这里宣布,我创建了一个专门交流.NET性能优化经验的群组,主题包括但不限于:
希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET性能问题和宝贵的性能分析优化经验。目前一群已满,现在开放二群。
如果提示已经达到200人,可以加我微信,我拉你进群: ls1075
另外也创建了QQ群,群号: 687779078,欢迎大家加入。