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中的某些配置项。更多信息请查看官方文档。
https://www.cnblogs.com/CreateMyself/p/17900180.html
本文讨论了国产数据库的发展,特别是人大金仓和华为高斯数据库,它们都基于PostgreSQL。作者在工作之余将EF Core适配到这些数据库并开源,以便社区共同改进。目前已支持人大金仓EF Core 6.x和华为高斯EF Core 8.0,未来计划支持更多版本。作者鼓励社区贡献而非仅提问题,并强调在处理问题时需要具体的代码示例。
https://www.cnblogs.com/czwy/p/17915333.html
本文探讨了在.NET中实现高精度定时器的方法。首先介绍了定时器的三个核心功能:计时、等待和触发模式,并解释了如何使用Windows系统的API和.NET类来获取高精度时间戳。文章详细讨论了两种等待策略:自旋等待和阻塞等待,以及如何通过系统API调整Windows的计时器精度。最后,提到了多媒体定时器timeSetEvent
作为实现高精度定时器的一种方法,尽管它已被官方标记为过时,但在精度和稳定性方面仍优于其他方法。
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开发者能够在熟悉的环境中工作,无需依赖云资源或其他服务。
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相关资源和交流平台,鼓励开发者分享经验和技术问题。
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根目录。文中提供了详细的代码示例和最终效果的截图。
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连接器的开发,核心团队将在假期后审查社区贡献。
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)调用。
https://www.cnblogs.com/sheng_chao/p/17921167.html
本文介绍了作者在业余时间开发的升讯威在线客服系统,该系统免费开源且用户众多。系统通过客户的压力测试,表现出色,无异常掉线,消息实时到达。作者计划分析系统的高性能并发技术,首篇聚焦SignalR技术。SignalR是ASP.NET Core的实时Web功能库,适用于需要服务器实时更新的应用,如游戏、社交网络等。它支持WebSockets、Server-Sent Events和长轮询等传输技术,自动选择最佳传输方法。SignalR使用中心(Hub)进行通信,允许客户端和服务器互调方法,支持JSON和MessagePack协议。作者还展示了如何在客服系统中创建SignalR中心,配置服务器,并添加客户端代码以实现实时通信。
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。最后,文章提供了源码调试的具体过程,通过实际代码来验证所学知识。
https://www.cnblogs.com/jevonsflash/p/17917031.html
本文介绍了分布式事件总线的原理和实现。本地事件总线通过Ioc容器和事件订阅表实现事件的注册与触发。分布式事件总线通过中间件如RabbitMQ、Kafka、Redis转发事件,与本地事件总线兼容。自动订阅和事件转发功能确保本地事件注册时同时订阅分布式事件,并在本地事件触发时将消息转发到分布式总线。消费端接收分布式事件消息后,解析类型并触发本地事件,由本地事件处理器完成处理。
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的发布强化了深度学习和数据处理能力。
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开发者具有实用价值。
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,上传文件和提问等功能。
https://www.cnblogs.com/kanadeblisst/p/17922099.html
本文介绍了微软的Detours框架,它支持多种处理器架构,用于实现API hook。文中详细描述了如何在x64环境下编译Detours,包括解决编译错误和生成Debug版本的方法。还提供了使用Detours进行函数hook的代码示例,并说明了如何在项目中引入Detours的头文件和库文件。最后,作者推荐了使用预处理器指令在代码中直接引入库文件的方式。
https://www.cnblogs.com/xbotter/p/kernel_memory_quick_start.html
本文介绍了如何快速开始使用Kernel Memory,包括通过NuGet安装包、构建内存实例、内容导入和问答查询。构建时,可配置OpenAI或Azure OpenAI服务,支持自定义文本生成和Embedding模型。内容导入支持文件路径、文件流、文档集合和URL方式。问答功能通过调用AskAsync
方法实现,可获取答案及相关文档信息。
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的电子秤类,并实现虚方法。最后,通过后台任务模拟电子秤,定时输出随机重量。这些步骤可以帮助开发者快速实现电子秤驱动的集成。
https://www.cnblogs.com/densen2014/p/17915285.html
本文继续介绍了博主的系列博客,提供了配套源码和在线演示demo。文章详细说明了如何创建一个支持长按功能的Blazor组件,包括设置长按触发的回调委托、点击事件处理、判断是否触摸设备等。通过代码示例,展示了组件的实现过程和功能。
https://www.cnblogs.com/known/p/17923002.html
本文是AntDesign Blazor的入门教程,分享了如何创建和操作Modal表单和Table。首先,介绍了在Weather.razor文件中添加新增按钮和Modal组件,设置属性并绑定事件。接着,创建WeatherForm组件,包含日期、温度和摘要字段,并在WeatherForecast模型类中添加必填特性。然后,实现了Modal表单的数据编辑功能,包括绑定Model对象、保存数据的事件处理。最后,教程展示了如何在Table中添加操作列,实现编辑和删除功能,并在WeatherService类中添加相应的方法。教程还提供了示例代码仓库链接和视频教程,方便学习和参考。
https://devblogs.microsoft.com/dotnet/announcing-dotnet-aspire-preview-2/
.NET Aspire Preview 2 已发布。
它包括各种改进,例如改进仪表板的各种视图、改进运行容器时的配置自定义以及添加 MySQL 和 MongoDB 等组件。
https://opensilver.net/announcements/2-0/
OpenSilver 2.0 已经发布。
此版本包括对 Visual Basic .NET 的支持、与 Blazor、React 和 Angular 的集成、设计时实时 XAML 预览、对高级布局系统的支持、更快的基于 WebView 的模拟器以及各种性能改进。
https://github.com/dotnet/wcf/releases/tag/v8.0.0-rtm
WCF客户端8.0已发布。
除了删除了接收配置名称的 API 之外,此版本没有重大变化,但客户端支持政策是自发布之日起提供三年支持(直至 2026 年)。对先前版本 WCF Client 6.0 的支持将于 2024 年 11 月结束。
https://github.com/mysql-net/MySqlConnector/releases/tag/2.3.3
MySQL Connector for .NET 2.3.3/2.3.2 已发布。
此版本包括改进的架构支持和多个错误修复。
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 中的各种错误。
https://github.com/dotnet/wpf/discussions/8533
宣布与 WPFUI 合作将 Windows 11 Fluent UI 主题引入 WPF。
https://devblogs.microsoft.com/dotnet/whats-new-in-our-code-coverage-tooling/
关于代码覆盖率工具(Microsoft.CodeCoverage)的新功能。
支持具有静态检测的所有平台、支持新的报告格式、引入 dotnet-coverage 命令、自动解决方案合并、性能改进等等。
https://qiita.com/TellMin/items/9e7f1e576a195103aa92
了解如何使用 Rust 的 actix-web 框架托管 Blazor WebAssembly 应用程序。
https://qiita.com/Hydrangeas/items/b87bd39843eee0633cb0
创建.NET Aspire项目并涉及配置、日志记录等的记录。
https://qiita.com/spc_ksudoh/items/760a41a73c825eb70e70
了解使用带有命名管道的 gRPC 作为进程间通信方法的好处以及如何实现它。
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
如何在外部文件中编写语义内核中使用的提示并调用它们。
https://zenn.dev/inuinu/articles/c60abf13d5f47a
解释如何使用分析仪。介绍内置分析器,如何抑制分析器,介绍Roslynator等第三方分析器。
https://devblogs.microsoft.com/dotnet/great-dotnet-8-hack-winners/
宣布 The Great .NET 8 Hack 活动的获奖者。
https://zenn.dev/tomokusaba/articles/a403d9ec250ec8
如何将提示转换为模板函数并使用语义内核调用它。
https://zenn.dev/ymd65536/articles/semantic_kernel_v101_handson
在 GitHub Codespace 和 Azure OpenAI 上运行 Semantic Kernel v1.0.1 的设置说明。
https://andrewlock.net/updates-to-the-stronglytypedid-library/
关于StronglyTypedId库的重新设计以及模板的更改等。
https://zenn.dev/yukiko_bass/articles/e6f9f22da5f15e
有关在 WSL2 上的 Ubuntu 22.04 上安装 .NET 8 的说明。
https://devblogs.microsoft.com/visualstudio/ai-powered-rename-suggestions/
引入使用 GitHub Copilot 的标识符重命名建议功能,该功能在 Visual Studio Preview 中受支持。
https://zenn.dev/tetr4lab/articles/74bd50585434ab
将 MudBlazor(与 .NET 8 不正式兼容)与 .NET 8 Blazor Web 应用程序一起使用的说明。
https://weblog.west-wind.com/posts/2023/Dec/21/Integrating-OpenAI-image- Generation-into-your-NET-Application介绍如何使用 OpenAI 的 .NET 图像生成 API 和简单的包装器库。
https://dev.to/tunaxor/revisiting-wasm-for-f-38c1
将 F# 与 Blazor WebAssembly 结合使用时与库和 JavaScript 的互操作性。
https://zenn.dev/tomokusaba/articles/e667217a2045cc
如何在Semantic Kernel中实现自定义函数的自动选择。
https://devblogs.microsoft.com/visualstudio/unlocking-the-secrets-of-management-memory-dive-into-event-handler-leak-insights/
介绍 Visual Studio 17.9 Preview 1 中引入的新内存分析功能。
此功能使得可以快速找到事件处理程序中的对象泄漏。
https://zenn.dev/ynug/articles/dot-net-time-zone
如何处理时区 ID 根据 Windows 和 Linux 等平台不同而不同的情况。
https://tan.hatenadiary.jp/entry/2023/11/23/015139
在 .NET 8 中,用于调用使用 LibraryImportAttribute 声明的外部库的 SafeHandle 类型的构造函数必须是公共的。
本文还解释了生成的代码是如何更改的以及更改的原因和必要性。
https://fukuten.connpass.com/event/303390/
.NET Conf 2023 福冈当地活动。于 2024 年 2 月 3 日星期六举行。
https://dev.to/1kevgriff/httpcontext-issues-with-azure-signalr-service-21d0
Azure SignalR 服务具有无法使用 HttpContext 的独特特征,这可能会出现问题。
https://zenn.dev/tomokusaba/articles/890091dd520f08
NUnit 4 中的异步断言简介。
https://zenn.dev/microsoft/articles/aoai-tools-jsonmode-in-dotnet
了解如何使用适用于 .NET 的 SDK 中的 Azure OpenAI 服务的 JSON 模式和工具属性。
https://www.docswell.com/s/shosuz/Z4QRL8-2023-11-25-172313
引入在 .NET 8 中结合了 React 和 ASP.NET Core 的新 SPA 模板。
https://speakerdeck.com/murachiakira/2-rapid-reset-nogai-yao-todui-ce
HTTP/2 快速重置攻击的说明。
https://speakerdeck.com/tomokusaba/dot-net-8shi-dai-noblazornituite
.NET 8 中 Blazor 托管模型更改的简要说明。
https://speakerdeck.com/nenonaninu/c-number-dehazimeru-opentelemetry
OpenTelmetry 简介、ASP.NET 中的支持和使用、使用 SignalR 进行跟踪等。
https://github.com/SwissLife-OSS/snapshooter
.NET 中用于快照测试的库。
https://github.com/sator-imaging/docfx-pages
使用 docfx 将 API 引用发布到 GitHub Pages 的 GitHub Action。
https://github.com/timonkrebs/MemoizR
https://www.sekiban.dev/
使用 Azure Cosmos DB 和 AWS Dynamo DB 的 C# 事件源框架。
根据目标类型,为集合迭代生成的代码存在差异。
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
由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.NET周刊-国内文章》板块进行贡献,需要推广自己的文章或者框架、开源项目可以下方的项目地址提交Issue或者在我的微信公众号私信。
格式如下:
https://github.com/InCerryGit/.NET-Weekly
相信大家在开发中经常会遇到一些性能问题,苦于没有有效的工具去发现性能瓶颈,或者是发现瓶颈以后不知道该如何优化。之前一直有读者朋友询问有没有技术交流群,但是由于各种原因一直都没创建,现在很高兴的在这里宣布,我创建了一个专门交流.NET性能优化经验的群组,主题包括但不限于:
希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET性能问题和宝贵的性能分析优化经验。目前一群已满,现在开放二群。
如果提示已经达到200人,可以加我微信,我拉你进群: ls1075
另外也创建了QQ群,群号: 687779078,欢迎大家加入。