.NET周报 【5月第3期 2023-05-21】

国内文章

C# 实现 Linux 视频会议(源码,支持信创环境,银河麒麟,统信UOS)

https://www.cnblogs.com/shawshank/p/17390248.html

信创是现阶段国家发展的重要战略之一,面对这一趋势,所有的软件应用只有支持信创国产化的基础软硬件设施,在未来才不会被淘汰。那么,如何可以使用C#来实现支持信创环境的视频会议系统吗?答案是肯定的。

本文讲述如何使用C#来实现视频会议系统的Linux服务端与Linux客户端,并让其支持国产操作系统(如银河麒麟,统信UOS)和国产CPU(如鲲鹏、龙芯、海光、兆芯、飞腾等)。

[MAUI】在.NET MAUI中复刻苹果Cover Flow

https://www.cnblogs.com/jevonsflash/p/17419483.html

这篇文章介绍了Cover Flow,它是iTunes和Finder中的一个视图选项,允许用户使用水平滚动的图像查看他们的音乐库或文件。文章详细介绍了Cover Flow的交互设计和实现原理,以及如何使用.NET MAUI实现跨平台支持。Cover Flow的核心算法是对专辑图片进行3D变换(3DTransform),在Skia中,3D变换是通过矩阵乘法实现的。文章还介绍了视图元素的3D变换(3DTransform)中,以视图元素的Y或X轴作为旋转中心做旋转,称之为3D旋转。最后,文章提到了Skia 本身是一个开源图形库,它提供适用于各种语言和硬件平台的通用 API,根据本博文提到的算法,你可以用Skia尝试在你擅长的平台上实现相同的效果。

在Winform中一分钟入门使用好看性能还好的Blazor Hybrid

https://www.cnblogs.com/hejiale010426/p/17419290.html

这篇文章介绍了如何使用Masa Blazor组件库,通过创建 ServiceCollection ,用于注册服务,在和BlazorWebView进行绑定,将指定的html和BlazorWebView绑定以后在对于html内的id为 app 的元素进行Blazor组件的绑定绑定到Blazor组件的 App 组件中。文章详细介绍了Masa Blazor组件库的使用方法,包括如何在Winform的MainFrom的文件中创建 ServiceCollection ,用于注册服务,在和BlazorWebView进行绑定,将指定的html和BlazorWebView绑定以后在对于html内的id为 app 的元素进行Blazor组件的绑定绑定到Blazor组件的 App 组件中;以及如何在 MApp 中使用 Masa Blazor 的组件,所有 Masa Blazor 的组件都必须在 MApp 中使用。

【源码解读】asp.net core源码启动流程精细解读

https://www.cnblogs.com/1996-Chinese-Chen/p/17417300.html

自从ASP.NET Core发布至今已7年,我接触了4年并一直关注源码。尽管主要使用Winform,但始终积极参与QQ群讨论。几年前曾计划解读ASP.NET Core源码,但因篇幅有限,未能详述。上月底决定以直播形式讲解源码,于5月18日在微信直播和哔哩哔哩录制。由于不熟悉直播及源码众多,节奏欠佳,导致观众较少,为此道歉。之后总结直播内容并补充原计划未说之话,包括直播总结、开发者提升认知与逻辑思维能力的建议。现已完成整理ASP.NET Core源码解读文档,希望对大家有所帮助。

C#中BitConverter.ToUInt16、BitConverter.ToUInt32原理与用法详解

https://www.cnblogs.com/event/p/17414103.html

如题,该文章讨论了C#中BitConverter.ToUInt16、BitConverter.ToUInt32原理与用法详解。

一个.Net开发的功能强大、易于使用的流媒体服务器和管理系统

https://www.cnblogs.com/chingho/p/17393098.html

这是基于.Net Core开发的,跨平台的开源项目;支持多种音视频格式,如MP3、MP4、AVI、WMV、FLV等;支持本地管理与远程管理,让管理员可以轻松的管理视频资源。

而且该项目还提供多平台的客户端,支持Web、桌面、Liunx、安卓、苹果等平台的客户端,让用户可以随时随地观看视频。

记一次 Visual Studio 2022 卡死分析

https://www.cnblogs.com/huangxincheng/p/17412584.html

最近不知道咋了,各种程序有问题都寻上我了,你说 .NET 程序有问题找我能理解,Windows 崩溃找我,我也可以试试看,毕竟对 Windows 内核也知道一丢丢,那 Visual Studio 有问题找我就说不过去了,但又不好拒绝,就让朋友发下卡死的 dump 我看一看。

原来.NET写的Linux桌面这么好看?

https://www.cnblogs.com/hejiale010426/p/17410664.html

本文将讲解如何使用Blazor运行跨平台应用,应用到的技术有以下几点

  • Blazor

  • Masa Blazor

  • Photino.Blazor

  • Ubuntu

用于验证跨平台性,并且是否提高开发效率,Blazor和Photino一块使用的技术称为Blazor Hybrid

.NET通过源码深究依赖注入原理

https://www.cnblogs.com/Z7TS/p/17402544.html

依赖注入 (DI) 是.NET中一个非常重要的软件设计模式,它可以帮助我们更好地管理和组织组件,提高代码的可读性,扩展性和可测试性。在日常工作中,我们一定遇见过这些问题或者疑惑。

  1. Singleton服务为什么不能依赖Scoped服务?

  2. 多个构造函数的选择机制?

  3. 源码是如何识别循环依赖的?

虽然我们可能已经知道了答案,但本文将通过阅读CLR源码的方式来学习DI实现机制,同时也更加深入地理解上述问题。如果您不想阅读源码,可以直接跳至文末的解决方案。

C# 中的“智能枚举”:如何在枚举中增加行为

https://www.cnblogs.com/liqingwen/p/17407424.html

  • 枚举的基本用法回顾

  • 枚举常见的设计模式运用

    • 介绍

  • 智能枚举

    • 代码示例

    • 业务应用

  • 小结

记一次 .NET 某医院门诊软件 卡死分析

https://www.cnblogs.com/huangxincheng/p/17401330.html

前几天有位朋友找到我,说他们的软件在客户那边卡死了,让我帮忙看下是怎么回事?我就让朋友在程序卡死的时候通过 任务管理器 抓一个 dump 下来,虽然默认抓的是 wow64 ,不过用 soswow64.dll 转还是可以的.

常用设计模式之.Net示例代码合集

https://www.cnblogs.com/chingho/p/17237462.html

每一次初学者粉丝朋友,在后台向我咨询编程问题,我除了给他们指导学习路线,我都会建议他们学完基础知识后,一定要要注重编程规范,学习设计模式,修炼内功。

虽然说很多程序员,他们日常主要工作是CRUD,但是学习设计模式也是有助于学习公司的框架,另外设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性,所以学习设计模式对提升编程能力还是很有帮助的。

所以,今天给大家分享一个采用C#编写的,常用设计模式源码合集。

主题

【英文】Visual Studio 2022 - 17.6 现已可用 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/visual-studio-2022-17-6-now-available/

Visual Studio 2022 版本 17.6 已经发布。

  • 提高生产力

    • 改进的合并对话框

    • Git 行取消暂存

    • 链接到 GitHub 问题

    • 断点组

    • .NET远程调试

    • Visual Studio 探查器

    • Visual Studio Profiler 中的检测

    • 粘性卷轴

    • 多合一搜索

    • 括号对着色

    • 拼写检查器

    • 提高打开和关闭解决方案的速度

    • 改进了性能分析器收集停止速度

    • 改进的性能

    • 增强编辑器

    • 调试和诊断功能

    • Git 协作工具

  • 构建现代 .NET 和云原生应用程序

    • Android 清单编辑器

    • JavaScript/TypeScript 中的 CodeLens

    • JavaScript/TypeScript 语法高亮显示

    • ASP.NET Core Web API 开发

  • 高效的游戏开发

    • 虚幻引擎日志查看器

    • Tim Jones 的 HLSL 工具扩展

  • 引入 C++ 跨平台代码库

    • CMake调试器

    • z/用于 Unix 的远程文件资源管理器

    • 导入STM32CubeIDE工程

    • Vcpkg

  • 企业管理

    • 在组织的 Intranet 网站上托管和部署 Visual Studio 布局

    • 支持存储库中任何位置的多个 .vsconfig

【英文】宣布 .NET 8 预览版 4 - .NET 博客

https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-4/

  • MSBuild:新的现代终端构建输出

  • MSBuild:新的现代终端构建输出

  • SDK:更新输出路径简化

    • 人工制品

  • 模板引擎:来自 Nuget.org 的包的安全体验

  • NuGet:在 Linux 上验证签名包

  • NuGet:审计安全漏洞的包依赖

  • 库:改进的 UTF-8 支持

    • IUtf8SpanFormattable

  • 引入时间抽象

    • TimeProvider

  • System.Runtime.Intrinsics.Vector512 和 AVX-512

  • 改进的原生 AOT

  • Linux发行版支持

  • System.Text.Json:收集只读成员

  • 改进的 System.Text.Json

    • JsonSerializer.IsReflectionEnabledByDefault

    • JsonSerializerOptions.TypeInfoResolverChain

    • JsonSerializerOptions.TryGetTypeInfo

  • 代码生成

    • 连续寄存器分配

    • 优化 ThreadStatic 字段访问

    • Arm64

    • 矢量化代码

【英文】EF Core 8 预览版 4:原始集合和改进的包含 - .NET 博客

https://devblogs.microsoft.com/dotnet/announcing-ef8-preview-4/

Entity Framework Core 8 Preview 4 已经发布。

此版本包括支持在 LINQ 中转换 Contains、支持 OPENJSON、指定目标 SQL Server 的兼容级别、对原始集合的列支持等。

【英文】.NET 8 Preview 4 中的 ASP.NET Core 更新 - .NET 博客

https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-4/

.NET 8 Preview 4 中对 ASP.NET Core 的更新。

-Blazor - Blazor 组件的流式渲染 - 处理 Blazor SSR 表单提交 - 路由到 Blazor 中的命名元素 - 用于 Blazor WebAssembly 应用程序的 Webcli 打包

  • API创作

    • 扩展了对最小 API 中表单绑定的支持

    • 带有 .http 文件的 API 项目模板

    • 原生AOT

    • 使用编译时生成的最小 API 进行日志记录和异常处理

    • 修剪 ASP.NET Core 顶级 API 中的警告注释

    • 通过可配置的 HTTPS 支持减少应用程序大小

    • 更新工人服务模板

    • 添加在 slim builder 中配置的默认服务

    • 更改 API 模板 JSON 配置

    • 对编译器生成的 IAsyncEnumerable 特殊类型的 JSON 序列化支持- 身份验证和授权

    • 身份 API 端点

    • 更好地支持 IAuthorizationRequirementData 中的自定义授权策略

  • ASP.NET 核心指标

【英文】Rx.NET v6.0 现已可用

https://endjin.com/blog/2023/05/rx-dotnet-v6-released

Rx.NET v6.0 已经发布。

此版本包括 .NET 6/7 支持、修整支持、使用 snupkg 提供符号以及其他改进。

本文包括对 Async Rx.NET alpha 的介绍、v6.0 中的更新以及未来的发展。

【英文】Visual Studio 2022 17.7 预览版 1 已发布!- Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/visual-studio-2022-17-7-preview-1-is-here/

Visual Studio 2022 版本 17.7 Preview 1 已经发布。

  • 生产力

    • 比较文件

    • 改进的多分支图和 Git 存储库

    • 复制文本并删除缩进

    • 增强的多合一搜索

  • .NET 和云开发

    • 对 .NET 6 和 .NET Standard 的 IntelliTest 支持

    • 将 Blazor WebAssembly 发布到 Azure 静态 Web 应用

  • C++ 和游戏开发

    • 虚幻引擎 C++ 宏格式

    • 虚幻引擎 C++ 命名约定检查器

【英文】Hot Reload 支持修改泛型!- .NET 博客

https://devblogs.microsoft.com/dotnet/hot-reload-generics/

在更改泛型代码时讨论 .NET 8 对热重载的支持。

现在在以下场景中支持热重载:

  • 向(非)泛型类型添加新的(静态、实例)方法

  • 向(非)泛型类型添加新的(静态、实例)泛型方法

  • 编辑(非)通用类型的现有(静态,实例)方法

  • 编辑(非)通用类型的现有(静态,实例)通用方法

【英文】使用 System.ServiceModel 6.0 调用 WCF/CoreWCF 的客户端支持就在这里!- .NET 博客

https://devblogs.microsoft.com/dotnet/wcf-client-60-has-been-released/

发布 System.ServiceModel 6.0,这是一个调用 WCF/CoreWCF 的 WCF 客户端。

System.ServiceModel 是 Microsoft 支持的 WCF 客户端库。

此版本包括添加 NetNamedPipe 支持、删除 .NET Standard 和 .NET Framework 支持以及弃用 System.ServiceModel.Duplex 和安全性的更新。

【英文】ReSharper 和 Rider 2023.1.2 – 发布了更多错误修复 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/05/17/rsrp-and-rider-2023-1-2-bug-fixes/

ReSharper 和 Rider 2023.1.2 发布。

此版本修复了各种错误。

【英文】Xamarin.Forms 和 Essentials 现在以 Android 13(预览版)为目标 - Xamarin 博客

https://devblogs.microsoft.com/xamarin/xamarin-forms-essentials-target-android13-preview/

Xamarin.Forms 和 Essentials 现在可以面向 Android 13(预览版)。

.NET 和 .NET MAUI 已经支持 Android 13。

【英文】在 Build 2023 上为 Visual Studio 做好准备:加入数以万计的在线人群!- Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/get-ready-for-visual-studio-at-build-2023-join-tens-of-thousands-online/

在 5 月 23 日至 25 日的 Microsoft Build 2023 上介绍与 Visual Studio 相关的会议。

文章、幻灯片等

【英文】ML.NET 模型生成器中的对象检测 - .NET 博客

https://devblogs.microsoft.com/dotnet/object-detection-ml-dotnet-model-builder/

使用 ML.NET 模型生成器进行对象检测的介绍。

【英文】.NET 中的 ChatGPT 入门 - .NET 博客

https://devblogs.microsoft.com/dotnet/get-started-chatgpt-azure-dotnet/

使用 .NET 中的 OpenAI API 的系列。ChatGPT(聊天和提示)的描述。

【英文】Sticky Scroll:保持在正确的上下文中 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/sticky-scroll-stay-in-the-right-context/

介绍 Visual Studio 2022 17.6 中添加的粘性滚动功能。

【英文】在 .NET MAUI 上从零开始的日历控件

https://dev.to/serhii_korol_ab7776c50dba/calendar-control-from-scratch-on-net-maui-5dh6

一篇关于使用 .NET MAUI 从头开始创建日历控件的文章。

【英文】使用 Octokit.GraphQL 与 GitHub 讨论 API 交互

https://andrewlock.net/using-octokit-graphql-to-interact-with-the-github-discussions-api/

如何使用 Octokit.GraphQL NuGet 包的 GitHub 讨论中的 API。

本文介绍了如何获取和创建讨论、速率限制等。

【英文】AWS 无服务器解决方案的集成测试

https://dev.to/ohalay/integration-tests-for-aws-serverless-solution-12aj

如何在 AWS 无服务器配置中集成测试您的应用程序。

它介绍了如何通过使用 LocalStack 运行本地容器来运行单元测试。

【英文】如何从外部应用程序控制 Visual Studio - Gérald Barré

https://www.meziantou.net/control-visual-studio-from-an-external-application.htm

如何通过 COM 获取和操作 Visual Studio 实例。

【英文】编译查询在 C# EF Core 上真的有效吗?

https://goatreview.com/are-compiled-queries-efficient-efcore/

关于 Entity Framework Core 的编译查询是否有效。

编译查询对某些模式有效,但有许多模式无效,因此我们建议在使用之前测试和检查查询本身。

【英文】.NET 8 中的并发托管服务启动和停止 - Steve Gordon - Code with Steve

https://www.stevejgordon.co.uk/concurrent-hosted-service-start-and-stop-in-dotnet-8

.NET 8 的 Microsoft.Extensions.Hosting 并行启动和停止主机。

本文解释了并行化启动和停止的影响以及如何禁用并行化。

【日文】从 .NET NuGet 包自动将全局使用添加到您的应用程序

https://zenn.dev/nuits_jp/articles/2023-05-15-global-usings

如何创建在安装时自动添加全局使用的 NuGet 包。

【英文】Microsoft Build | 云技能挑战

https://www.microsoft.com/en-US/cloudskillschallenge/build/officialrules/2022

活动与 Build 2023 保持一致。完成挑战后,您将有权参加一次免费的 Microsoft 认证考试。

库、存储库、工具等。

drasticactions/LLaMAMaui

https://github.com/drasticactions/llamamaui

llama.cpp 中 .NET MAUI 的绑定。

https://twitter.com/drasticactions/status/1658867229637898240?s=12

.NET周报 【5月第3期 2023-05-21】_第1张图片

站点、文档等

【英文】简介 - 面向 C#/.NET 开发人员的 Rust 文档

https://microsoft.github.io/rust-for-dotnet-devs/latest/

面向 C#/.NET 开发人员的 Rust 文档。

它解释了 .NET 中的事物如何在 Rust 中表示。

  • microsoft/rust-for-dotnet-devs:C#/.NET 开发人员的 Rust

推文

ClaimsPrincipal 调试器上的显示变得更好的故事。还支持其他 ASP.NET Core 类型。

  • ASP.NET Core ❤️ 调试问题 #48205 dotnet/aspnetcore

https://twitter.com/jamesnk/status/1659366431920898049?s=12

.NET周报 【5月第3期 2023-05-21】_第2张图片

AWS FOSS 基金赞助了 Avalonia UI。

https://twitter.com/dotnetaws/status/1658578068762394625?s=12

.NET周报 【5月第3期 2023-05-21】_第3张图片

这个repo由一组规范的多种语言的Hello World静态编译(AOT)的程序和一个GitHub操作组成,该操作对它们进行编译并汇总大小信息。

https://twitter.com/MStrehovsky/status/1660256662975029248

.NET周报 【5月第3期 2023-05-21】_第4张图片 .NET周报 【5月第3期 2023-05-21】_第5张图片

https://twitter.com/KarenPayneMVP/status/1659904138858360832

.NET周报 【5月第3期 2023-05-21】_第6张图片

https://twitter.com/EgorBo/status/1659555222677585922

.NET周报 【5月第3期 2023-05-21】_第7张图片 .NET周报 【5月第3期 2023-05-21】_第8张图片

https://twitter.com/DamianEdwards/status/1659963802400731141

.NET周报 【5月第3期 2023-05-21】_第9张图片

深入探索

.NET 8.0 Preview 3 和 .NET 8 Preview 4 之间的 API 差异 by carlossanlop Pull Request #8469 dotnet/core

https://github.com/dotnet/core/pull/8469 .NET 8 Preview 3 到 4 API的区别

版权声明

  • 国内板块由 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人,可以加我微信,我拉你进群: lishi-wk

另外也创建了QQ群,群号: 264167610,欢迎大家加入。

你可能感兴趣的:(.net)