https://www.cnblogs.com/shanyou/p/17858385.html
本文介绍了 openEuler 操作系统,它支持多处理器架构,包括 X86、ARM 等,并计划支持更多芯片架构。openEuler 社区正通过场景化的特别兴趣小组(SIG)扩展应用范围,覆盖服务器、云计算、边缘计算到嵌入式等多个场景。作者曾推广欧拉运行.NET Core,因其对 ARM 的优秀支持获得华为云 MVP。同时,文章提到微软.NET Framework 的开源历程,.NET Core 遵循 ECMA 标准,现已成为全场景开发平台。中国.NET 社区的发展需要优质开源社区支持,openEuler 为合作伙伴提供了机会。2023 中国.NET 开发者峰会将展示科技进步,openEuler 作为赞助商参与,邀请更多赞助者加入。
https://www.cnblogs.com/Yu-Core/p/17855661.html
本文提出了在 MAUI Blazor 应用中显示本地媒体文件的新方法。文章首先指出了之前方案的不足,如不同平台 URL 不统一、音视频文件无法播放、Windows 上大文件显示限制和 iOS/Mac 的跨域问题。随后,文章介绍了如何通过修改项目文件和添加处理 ContentType 的静态类来完善方案。具体包括在.csproj 文件中配置基于文件名的多目标,以及创建 StaticContentProvider.cs 来获取文件 ContentType。这样,可以在前端统一使用特定格式的 URL 来显示或播放本地的图片和视频文件。
https://www.cnblogs.com/MeteorSeed/p/17851304.html
Visual Studio 2022 17.8 版本带来了性能提升,包括异步文件打开、改进 Razor/Blazor 响应性、加速 F5、优化 C++虚幻引擎智能感知和加快非 SDK 风格.NET 项目构建。这些更新提高了编码效率,特别是在处理大文件和复杂项目时。用户可通过设置特定属性来启用非 SDK 项目的构建加速。微软鼓励用户反馈,以进一步优化 Visual Studio 体验。
https://www.cnblogs.com/czwy/p/17862702.html
本文介绍了.NET 中的六种定时器,分为 UI 定时器和 UI 无关定时器。UI 定时器包括 WinForm、WPF 和 WebForm 的定时器,它们在 UI 线程上执行,简化了线程安全问题。WinForm 定时器简单易用,但精度不高;WPF 定时器基于 Dispatcher,精度不准确,可能延迟;WebForm 定时器通过 Javascript 和服务端回调实现,保证单一异步回调。UI 无关定时器适用于后台任务,不涉及 UI 操作,从.NET 6 开始有三种。每种定时器根据应用场景选择,以满足不同的精度和线程安全需求。
https://www.cnblogs.com/hanbing81868164/p/17856515.html
本文介绍了 HtmlAgilityPack,这是一个.NET 平台的 HTML 解析库,能将 HTML 转换为 DOM 对象,支持 XPath 查询并提供 API 进行 HTML 操作。安装 HtmlAgilityPack 需通过 Visual Studio 的 NuGet 包管理器。使用时,先加载 HTML 到 HtmlDocument 对象,再通过 XPath 获取 DOM 节点,可进行节点修改,如改属性或内容。还能将 DOM 对象转换回 HTML 文本。文中举例说明了如何获取页面标题、所有图片和链接。
https://www.cnblogs.com/Can-daydayup/p/17860547.html
本文讲述了在 ASP.NET Core Web API 中设置 Json 响应格式的方法。介绍了两种 JSON 序列化库:内置的 System.Text.Json 和功能强大的 Newtonsoft.Json。文章指出,可以全局配置 Json 属性名称序列化方式和日期格式,以满足前端需求。通过示例展示了未配置前的 API 输出 Json 数据,并介绍了如何使用 System.Text.Json 进行全局配置,以自定义时间输出格式。
https://www.cnblogs.com/goodtimeggb/p/17862867.html
本文介绍了 Cron 表达式,这是一种在 Unix 系统中用于定时任务的字符串格式,包含六个字段,用空格分隔。通过数字和特殊字符定义执行时间,如"*"代表所有值,"-"定义范围。文中提供了 Cron 表达式的示例,并介绍了在.NET 中使用 NCrontab 和 Quartz 库来解析和执行 Cron 表达式的方法。NCrontab 不支持秒级,而 Quartz 支持,适合需要精确控制的任务。
https://www.cnblogs.com/pandefu/p/17860440.html
本文讲述了在 VS2022 中调试.Net 源码的方法。首先,需要在"工具"-"选项"-"文本编辑器"-"C#"-"高级"-"转到定义"中勾选所有选项以查看源码。其次,要启用源代码单步执行,包括取消选择"启用仅我的代码",选择"启用源链接支持",并在"符号"下选择"Microsoft 符号服务器"。配置后,首次启动应用时会有符号加载时间。通过这些设置,可以在"调用堆栈"窗口中下载和加载符号进行源码调试。文章还建议通过实践提升调试技巧,以便更好地理解框架工作原理和提高解决 BUG 的效率。
https://www.cnblogs.com/broadm/p/17862169.html
本文讲述了 C#中结构体的只读属性对代码行为的影响。通过示例展示了将结构体成员设为只读后,尝试修改其字段值时,编译器不报错但修改不成功,因为只读机制会导致字段值在堆栈上拷贝。这种隐蔽的行为可能引发 BUG,如自旋锁示例中的计数错误。文章建议在结构体或字段需要只读时,使用 readonly 关键字直接修饰,以避免潜在问题。
https://www.cnblogs.com/tansm/p/CSharp-Generic-Performance.html
本文探讨了 C#中泛型的编译行为,特别是结构和类作为泛型参数时对性能的不同影响。结构作为值类型,存储在栈上,泛型参数为结构时编译器生成特定实现,提升性能,减少装箱拆箱。类作为引用类型,存储在堆上,泛型参数为类时编译器生成通用实现,可能导致性能下降。性能测试显示结构类型泛型参数性能较高,类类型泛型参数性能略低。
https://www.cnblogs.com/tianqing/p/17864122.html
本文介绍了中间件 IIS 的监控指标和配置最佳实践。关键性能计数器包括 Web 服务的当前连接数、每秒请求数等,ASP.NET 的请求执行时间、请求排队数等,以及 CPU 和内存的使用情况。最佳实践建议定期回收应用程序池,合理设置工作进程数,启用输出和静态内容缓存,以及压缩以提升性能。监控和日志记录需适度,安全设置要定期更新。IIS 请求队列是处理前临时存放请求的地方,监控请求队列的性能计数器有助于优化队列设置,如增加工作进程数、优化代码和调整队列长度,以减少等待时间,确保请求快速处理。通过这些措施,可以优化 IIS 服务器性能。
https://www.cnblogs.com/WinterSir/p/17506255.html
本文介绍了解释器模式,这是一种用于构建语言解释器的设计模式,包含抽象表达式、终结符表达式、非终结符表达式和环境类四个角色。通过这些角色,可以解释和执行用户根据特定文法编写的代码。文中以 X 公司开发的字符界面格式化指令为例,展示了如何使用解释器模式处理指令并输出格式化内容。环境类存储指令,抽象节点类负责解释语句和执行命令。
https://www.cnblogs.com/mingupupu/p/17860491.html
本文介绍了使用 C#编写网页爬虫来获取网站上的气象信息。网站共有 67 页气象数据,手动复制粘贴效率低下。通过构建每一页的 URL 并发送 GET 请求,成功抓取并存储了 4 万多条数据到数据库。
https://qiita.com/advent-calendar/2023/csharplang
2023 年 C# 降临节日历目前正在进行中。
https://docs.nunit.org/articles/nunit/release-notes/framework.html#nunit-401---december-2-2023
NUnit 4.0.0/4.0.1 已发布。
它包括许多改进和修复,例如对 TestCaseSource 的异步支持、对 .NET 6 目标的支持和测试取消 (CancelAfter),以及删除 .NET Framework 3.5、4.0、4.5 和 .NET Core 2.1 等目标.ing.
https://devblogs.microsoft.com/dotnet/announcing-ml-net-3-0/
ML.NET 3.0 已发布。
此版本包括对象检测 API、问答 (QA) 和命名实体提取 (NER)、Intel oneDAL 硬件训练加速、AutoML 改进、DataFrame 更新、Tensor 原语集成等。
https://github.com/MessagePack-CSharp/MessagePack-CSharp/releases/tag/v2.5.140
MessagePack v2.5.140 已发布。
此版本修复了 Mono 运行时中的错误。
https://blog.jetbrains.com/dotnet/2023/11/30/the-developer-ecosystem-in-2023-key-trends-for-csharp/
JetBrains 的 C# 开发者生态系统趋势研究。
ASP.NET Core 使用的功能、C#版本、开发目标、IDE/编辑器、插件的使用等
https://blog.jetbrains.com/dotnet/2023/11/29/the-resharper-2023-3-rc/
ReSharper 2023.3 候选版本已发布。
AI 助手增强功能、C# 12 支持、实体框架探索和图表绘制、UI 改进、改进的 Razor 格式化引擎、用于单元测试的 AI 生成、新语法和拼写检查器等等。
https://blog.jetbrains.com/dotnet/2023/11/29/the-rider-2023-3-rc/
Rider 2023.3 候选版本已发布。
包括各种新功能,例如 AI Assistant 增强功能、对 .NET 8 SDK(包括 C# 12 和 F# 8)的支持、改进的多项目启动、类型依赖关系图、预测调试、单元测试的 AI 生成等等。
https://sixlabors.com/posts/announcing-imagesharp-310/
ImageSharp 3.1.0 已发布。
此版本包括对动画 WebP 和 PNG 的支持、对 Quite Ok (Qoi) 的支持、改进的解码器可靠性以及各种性能改进。
https://zenn.dev/tetr4lab/articles/1946ec08aec508
了解如何在 .NET 8 中的 Blazor Web App 中实现 Google OAuth 身份验证。
https://zenn.dev/nuits_jp/articles/2023-12-03-convert-bitmapsource-to-bitmap
介绍一个在 WPF 中从 BitmapSource 转换为 Bitmap 的好方法。
https://qiita.com/kami_teru/items/b2a6bd77f7c836ae3d1e
如何在实际设备(例如 iPhone)上从仅在 Windows 上的 Visual Studio 调试和执行 .NET MAUI iOS 应用程序。
https://zenn.dev/vigilanteyu/articles/d7a47dff63e8e2
如何在 .NET 8 中实现与 Blazor WebAssembly 的 ASP.NET Core Hosted 等效的配置,该配置一直存在于 .NET 7 中。
https://qiita.com/yaju/items/97c7d6ae94a303bdbb5b
今年 Visual Basic 主题的综述,包括 Visual Basic .NET。
https://dev.to/icebeam7/storing-local-data-in-a-net-maui-blazor-hybrid-app-using-indexeddb-part-1-3hn2
了解如何使用 IndexedDB 在 .NET MAUI Blazor 混合应用中存储本地数据。
https://zenn.dev/nuits_jp/articles/2023-12-01-imagemagic-imagesharp-benchmarks
图像处理库 Magick.NET (ImageMagick)、ImageSharp 和 System.Drawing 的性能比较。本文比较了 .NET Framework 和 .NET 8 之间的解码、裁剪和二值化处理。
https://endjin.com/blog/2023/11/how-dotnet-8-boosted-ais-dotnet-performance-by-27-percent-for-free
了解在 .NET 8 中运行 AIS.NET(一个用于分析 AIS 解码器(AIS 是船舶无线电消息)的库)时的显着性能改进。
https://devblogs.microsoft.com/visualstudio/my-favorite-features-in-visual-studio-17-8/
介绍 Mads Kristensen 推荐的 Visual Studio 2022 版本 17.8 的新功能。
本文重点介绍了保留大小写的搜索和替换以及丰富的拉取请求体验等功能。
https://andrewlock.net/behind-logproperties-and-the-new-telemetry-logging-source-generator/
.NET 8 提供的
Microsoft.Extensions.Telemetry.Abstractions 中包含的“LogProperties”属性的说明,该属性将属性值保留在日志中。
https://qiita.com/RyotaMurohoshi/items/bf45f4e7d52e6aad8ef7
C# 降临节日历 2023 年第 1 天文章。解释极端情况,例如在空数组上执行 LINQ All 的结果以及存在绑定元素时 OrderBy 的结果。
https://aquasoftware.net/blog/?p=1975
C# 2023 年降临节日历第 2 天文章。如何在 C# 代码格式设置中设置大括号之前和之后的开口。
https://platform.uno/blog/the-rise-of-c-markup-for-cross-platform-development/
C#标记介绍,是 Uno Platform 的 UI 描述方法在 C#中。
https://www.poppastring.com/blog/hot-reload-for-c-dev-kit
如何在 Visual Studio Code 的扩展 C# 开发工具包中启用实验性功能热重载。
https://qiita.com/lx-sasabo/items/4ceb7be5e2721e4e52f8
如何使用 OmniSharp-Vim 显示来自分析器等的代码分析结果。
https://zenn.dev/microsoft/articles/aspnetcore-blazor-dotnet8-jsinterop
了解如何在 .NET 8 中将静态服务器渲染 (SSR) 与 Blazor 结合使用时实现和运行自定义 JavaScript。
https://devadjust.exblog.jp/29756261/
解释可以在 HttpClient 上设置的超时实际上如何工作。
https://weblog.west-wind.com/posts/2023/Nov/27/Embed-a-minimal-ASPNET-Web-Server-into-a-Desktop-Application
如何在桌面应用程序中包含最小的 ASP.NET Core 服务器。
https://aneuf.hatenablog.com/entry/2023/11/27/210000
引入“FakeTimeProvider”,它是 .NET 8 中引入的“ITimeProvider”的伪造实现,以及“FakeLogger”,它是新引入的“ILogger”的伪造实现。
https://aneuf.hatenablog.com/entry/2023/11/24/210000
关于“
CollectionBuilderAttribute”,它用自己的类型实现 C# 12 集合表达式,以及如何使用它来实现它。
https://annulusgames.com/blog/dependency-injection/
关于依赖注入的说明。服务定位器及其问题、使用
Microsoft.Extensions.DependencyInjection 作为 DI 容器的各种示例、除 M.E.DI 之外的 .NET/Unity DI 容器的介绍等。
https://github.com/thomhurst/ModularPipelines
一个框架,它组合模块来创建用于某种处理/工作的管道。
https://github.com/nenoNaninu/AspNetCore.SignalR.OpenTelemetry
用于将 SignalR 指标流式传输到 OpenTelemtry 的库。
https://x.com/nenomake/status/1730229080455303389?s=12
https://marketplace.visualstudio.com/items?itemName=GrantDavies.NiahTextFilter2022
Visual Studio 扩展允许您历史记录和过滤调试输出。
故事是我能够使用 Avalonia XPF(Avalonia 的跨平台 WPF 兼容性套件)在浏览器中运行 PerfView。
https://twitter.com/AvaloniaUI/status/1729403695392059887
定义空类或接口时,使用“;”声明它而不使用主体会很方便。
https://x.com/sergiopedri/status/1730233715345826173?s=12
关于在分析时启动应用程序时暂停分析的功能。
https://x.com/vs_debugger/status/1730647909279166974?s=12
一个关于使用 Ghidra 脚本使本机 AOT 字符串搜索成为可能的故事。
https://x.com/washi_dev/status/1725270583011688726?s=12
PolySharp 现已提供适用于 C# 12 的新 polyfill。
https://x.com/sergiopedri/status/1729878697824698514?s=12
[InlineArray]
的最大值为 1MB
https://x.com/hypeartistmusic/status/1728123597968011688?s=12&t=ggvrrZ7oLogHyNoIGNgjbw
https://github.com/dotnet/extensions/issues/4766
提议引入一种名为 RCache 的新型内存高效内存缓存。
「由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.NET 周刊-国内文章》板块进行贡献,需要推广自己的文章或者框架、开源项目可以下方的项目地址提交 Issue 或者在我的微信公众号私信。」
格式如下:
https://github.com/InCerryGit/.NET-Weekly
相信大家在开发中经常会遇到一些性能问题,苦于没有有效的工具去发现性能瓶颈,或者是发现瓶颈以后不知道该如何优化。之前一直有读者朋友询问有没有技术交流群,但是由于各种原因一直都没创建,现在很高兴的在这里宣布,我创建了一个专门交流.NET 性能优化经验的群组,主题包括但不限于:
希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET 性能问题和宝贵的性能分析优化经验。「目前一群已满,现在开放二群。」
如果提示已经达到 200 人,可以加我微信,我拉你进群: 「ls1075」
另外也创建了「QQ 群」,群号: 687779078,欢迎大家加入。
使用 ModularPipelines 在 C# 中编写管道: https://medium.com/@
thomhurst/write-your-pipelines-in-c-using-modularpipelines-226de1a24bb7