码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • .NET周报 【3月第3期 2023-03-19】


    国内文章#

    记一次 .NET某汽车零件采集系统 卡死分析#

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

    前段时间有位朋友在微信上找到我,说他的程序会出现一些偶发卡死的情况,让我帮忙看下是怎么回事,刚好朋友也抓到了dump,就让朋友把 dump 丢给我,接下来用 windbg 探究下到底咋回事。

    .NET中委托性能的演变#

    https://www.cnblogs.com/InCerry/archive/2023/03/14/the-evolution-of-delegate-performance-in-net-c8f23572b8b1.html

    .NET中的委托是一项重要功能,可以实现间接方法调用和函数式编程。本文介绍委托在以前的.NET中存在性能问题和.NET7.0 .NET8.0版本如何将这一问题彻底解决。

    NET 8 预览版 2 亮点是Blazor#

    https://www.cnblogs.com/shanyou/archive/2023/03/15/17220483.html

    .NET 团队在2023年3月14日发布了.NET 8预览版2,博客文章地址:https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-2/, 亮点是了对Blazor的一些改进。

    为什么 C# 可能是最好的第一编程语言#

    https://www.cnblogs.com/shanyou/archive/2023/03/16/17221052.html

    纵观神州大地,漫游中华互联网,我看到很多人关注为什么你应该开始学习JavaScript做前端,而对blazor这样的面向未来的框架有种莫名的瞧不起,或者为什么你应该学习Python作为你的第一门编程语言,恕不知有多少公司业务是用Python开发的,Python更多是粘合剂,作为胶水语言来使用。
    我用C# 工作了 20多年,我也一直把它当作第一编程语言,几乎尝试了任何东西:桌面、物联网、移动、Web、云原生- 以及 C# 和 .NET 完美契合的所有地方,特别是当下Chatgpt 还有AI的辅助编程时代,你应该考虑从它开始你的开发人员之路。

    学习 .NET高级调试 个人推荐的10本书#

    https://mp.weixin.qq.com/s/xdZLmceF6vVfaE1s8wm_tQ

    昨天训练营有朋友让我推荐学习 .NET高级调试 的参考书,这里整理了我个人推荐的 10 本书:这篇文章推荐了10本学习.NET高级调试的书籍,分别是:这篇文章推荐了10本学习.NET高级调试的书籍,分别是:

    1. .NET高级调试
    2. Windows 编程调试技术内幕
    3. 软件调试 - 第二卷 (上下册)
    4. Windows 高级调试
    5. 深入解析 Windows 操作系统
    6. .NET 和 Windows 应用程序调试
    7. C++ 反汇编与逆向分析技术揭秘
    8. .NET 内存管理宝典
    9. .NET Core 底层入门
    10. 格蠹汇编

    async 与 Thread 的错误结合#

    https://mp.weixin.qq.com/s/AnfR5877KomGzjWgljdXIg

    在 TAP 出现之前,我们可以通过 Thread 来完成一些线程操作,从而实现多线程和异步操作。在 TAP 出现之后,有时候为了更高精度的控制线程,我们还是会使用到 Thread 。文本讲介绍一种错误的使用方式,作为读者的一个参考。

    .NET Core 使用 ImageSharp 生成图片#

    https://mp.weixin.qq.com/s/gufs53wW128EMyS02Q4B3g

    ImageSharp是对.NET Core平台扩展的一个图像处理方案,以往网上的案例多以生成文字及画出简单图形、验证码等方式进行探讨和实践。分享一下所在公司项目的实际应用案例,导出微信二维码图片,圆形头像等等。

    Blazor 在 IoT 领域的前端实践 @.NET开发者日#

    https://mp.weixin.qq.com/s/axiaEz2wGXq40gTDMPb14Q

    这篇文章是关于Blazor在IoT领域的前端实践的主题分享。文章分为两个部分,第一部分介绍了为什么要在IoT项目中使用Blazor技术,Blazor给IoT带来了什么。第二部分以一个IoT项目举例,使用Blazor和MAUI技术的落地具体内容,最后还有在开发和调试过程中的经验分享。

    入门MasaFramework 系列教程#

    https://mp.weixin.qq.com/s/3zn_64o-bLfEkJOByzu2VA

    这篇文章是一篇关于MasaFramework的入门教程,主要介绍了MasaFramework的基本概念和项目结构。文章首先介绍了MasaFramework是一个基于.Net6.0的后端框架,可以被用于开发Web应用程序、WPF项目、控制台项目。接着,文章介绍了MasaFramework提供了很多功能的包,很强大,对于Dapr的支持非常好。然后,文章介绍了如何使用MasaFramework,包括安装MasaFramework项目模板和创建项目。最后,文章介绍了MasaFramework的项目结构,包括src/ApiGateways,src/Contracts,src/Services,src/Web四层,以及mfDemo.Shared,mfDemo.Server,mfDemo.WebAssembly三层项目架构。总的来说,这篇文章是一篇非常详细的MasaFramework入门教程,适合初学者。

    .NET Task 揭秘(3)async 与 AsyncMethodBuilder#

    https://mp.weixin.qq.com/s/1AiEHVuk_FZF15_pth-FJQ

    本文是 .NET Task 揭秘 系列博客的第三篇,主要介绍了 async 与 AsyncMethodBuilder。上文我们学习了 await 这个语法糖背后的实现,了解了 await 这个关键词是如何去等待 Task 的完成并获取 Task 执行结果。并且我们还实现了一个简单的 awaitable 类型,它可以让我们自定义 await 的行为。

    AsyncMethodBuilder 是状态机的重要组成部分。如果在一个方法中使用了 await,那么这个方法就必须添加 async 修饰符。并且这个方法的返回类型通常是 Task 或者 其它 runtime 里定义的 awaitable 类型。

    ASP.NET Core Web API 接口限流#

    https://mp.weixin.qq.com/s/jlpdeKNKfXwe2nGk9Ljkbg

    这篇文章是一篇技术文章,主要讲述了如何在ASP.NET Core Web API中实现接口限流的功能。文章中提到了实现接口限流的需求,如何实现接口限流,以及如何使用jMeter进行压力测试。文章中提供了相关的代码和截图,可以帮助读者更好地理解文章的内容。

    主题#

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

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

    .NET 8 Preview 2 已经发布。

    此版本添加了扩展 System.ComponentModel.DataAnnotations 的属性,并支持反射中的函数指针。

    【英文】EF Core 8 预览版 2:精简且熟悉 - .NET 博客#

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

    Entity Framework Core 8 Preview 2 已经发布。

    本文介绍了 SQLite 中的 JSON 列支持和此版本中提供的 SQL Server/Azure SQL 数据库中的 HierarchyId 支持。

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

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

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

    • 对 Blazor 的 QuickGrid 支持
    • 改进了 Blazor WebAssembly 中 JIT (Jiterpreter) 的性能
    • 检测多个 [FromBody] 的分析器
    • 用于更有弹性集成的 ProblemDetails 的新 API
    • ObjectPool 上的IResettable 接口
    • 改进的命名管道性能

    【英文】Visual Studio 2022 v17.6 Preview 2 现已推出 - Visual Studio 博客#

    https://devblogs.microsoft.com/visualstudio/visual-studio-2022-v17-6-preview-2-is-now-available/

    Visual Studio 2022 版本 17.6 Preview 2 已经发布。

    • 提高你的生产力
      • Git 阶段并在构建期间提交
      • 改进的合并对话框
      • 断点组
      • C++ 仪器分析
      • WSL 上 .NET 的 Profiler Live Graphs
      • 创建 C++ 成员函数
    • 简化的游戏开发
      • 虚幻引擎代码分析
      • Tim Jones 的 HLSL 工具扩展
    • .NET 移动开发
      • 安卓清单编辑器
    • 企业管理
      • 从您的 Intranet 托管和部署 Visual Studio 布局
      • 安装程序中可用产品的有限曝光

    【英文】你好,语义内核!#

    https://devblogs.microsoft.com/semantic-kernel/hello-world/

    语义内核发布。

    语义内核是一个轻量级 SDK,用于将来自大型语言模型 (LLM)(例如 OpenAI 和 Azure OpenAI 服务)的 AI 提示整合到您的应用程序中。 现在支持 C#,Python 处于预览支持状态。

    • microsoft/semantic-kernel:将尖端的 LLM 技术快速轻松地集成到您的应用程序中

    【英文】发布 v2.5.108 neuecc/MessagePack-CSharp#

    https://github.com/neuecc/MessagePack-CSharp/releases/tag/v2.5.108

    MessagePack-CSharp v2.5.108 已经发布。

    自 v2.4.59 以来的更改包括添加可为 null 的注释、放弃对 .NET 5 的支持、前滚生成器以及各种其他修复和改进。

    • 发布 v2.5.94 neuecc/MessagePack-CSharp GitHub
    • 发布 v2.5.103 neuecc/MessagePack-CSharp GitHub

    【英文】Async/Await 在 C# 中的真正工作原理 - .NET 博客#

    https://devblogs.microsoft.com/dotnet/how-async-await-really-works/

    一篇解释 C# 中 async/await 工作原理的文章。

    它描述了从 APM 和基于事件的异步模式到基于任务、任务和 ValueTask 的流程,C# 中的编译时代码扩展,并详细解释了它的工作原理。

    【英文】Release 发布v2.52.0 grpc/grpc-dotnet#

    https://github.com/grpc/grpc-dotnet/releases/tag/v2.52.0

    grpc-dotnet (Grpc.Net) v2.52 已经发布。

    此版本现在针对 .NET 6 的 dotnet-grpc 工具,并包括各种小错误修复和改进。

    • 发布版本 v2.52.0-pre1 grpc/grpc-dotnet

    【英文】发布 v1.2.5 microsoft/WindowsAppSDK#

    https://github.com/microsoft/WindowsAppSDK/releases/tag/v1.2.5

    Windows App SDK 1.2.5 (1.2.230313.1) 发布。

    此版本修复了 Composition 关闭期间的崩溃、动画即使在屏幕关闭时仍继续播放的问题,以及 WebView2 中鼠标和触摸输入失败的修复。

    【英文】.NET 2023 年 3 月更新 – .NET 7.0.4、.NET 6.0.15 - .NET 博客#

    https://devblogs.microsoft.com/dotnet/march-2023-updates/

    .NET 7.0.4 和.NET 6.0.15 已经发布。

    此版本包含几个小错误修复和改进。

    【英文】宣布 Polyglot Notebooks!Visual Studio Code 中的多语言笔记本 - .NET 博客#

    https://devblogs.microsoft.com/dotnet/announcing-polyglot-notebooks-harness-the-power-of-multilanguage-notebooks-in-visual-studio-code/

    Polyglot Notebooks(以前称为 .NET Interactive Notebooks)现在作为 Visual Studio Code 的扩展在 Marketplace 上普遍可用。

    文章、幻灯片等#

    【日文】关于.NET 8 Preview 2 中添加的输入值验证#

    https://zenn.dev/tomokusaba/articles/bb5cb32470ca8a

    它介绍了 .NET 8 Preview 2 中添加的 System.ComponentModel.DataAnnotations 验证属性的功能。

    【日文】关于 Blazor WebAssembly 中的输入值验证#

    https://zenn.dev/tomokusaba/articles/9fd92c1716ca30

    如何在 Blazor WebAssembly 中实现输入验证。

    【英文】WeAreDotnet 社区#

    https://medium.com/@tim.cadenbach/wearedotnet-d8ec96685c33

    名为#WeAreDotnet 的社区门户。

    • WeAreDotnet(测试版)

    【英文】EventStoreDb 入门(C#)#

    https://medium.com/@no1.melman10/getting-started-with-eventstoredb-c-13411ec08713

    说明如何使用事件溯源数据库 EventStoreDB。

    EventStoreDB 本身也在 .NET (C#) 中实现。

    • EventStore/EventStore:为事件溯源优化的流数据库

    【英文】扩展 Visual Studio CodeLens 功能 - 第二部分#

    https://codingwithcalvin.net/extending-visual-studio-codelens-functionality-part-ii/

    关于如何在 Visual Studio 中扩展 CodeLens 的系列教程。 本文介绍如何实现 CodeLens 回调。

    【日文】经常被遗忘的文化相关问题 | UFCPP#

    https://ufcpp.net/blog/2023/3/string-order/

    启用全球化不变模式时,处理字符串比较中的不变性和序数以及顺序中的性能等。

    【日文】创建一个可以用XCopy部署的WinUI3最小工程#

    https://zenn.dev/nin_neko/articles/ecb16042f04c01

    关于如何为 XCopy 部署创建一个最小的 WinUI 3 应用程序项目(一种通过复制文件而不安装来工作的形式)。

    【日文】从 CESU-8 到 UTF-16 的转换 - Qiita#

    https://qiita.com/7shi/items/8eae6d909e1b82b35215

    如何将 CESU-8(UTF-8 的变体)转换为 UTF-16。

    【英文】Rider 2023.1 中的 Unity DOTS 支持 | .NET 工具博客#

    https://blog.jetbrains.com/dotnet/2023/03/16/unity-dots-support-in-rider-2023-1/

    引入 Rider 2023.1 中添加的 Unity DOTS 支持。

    支持 DOTS 的模板和代码生成。

    【英文】帮助我们研究 Visual Studio 17.6 预览版 2 中的新欢迎体验 - Visual Studio 博客#

    https://devblogs.microsoft.com/visualstudio/welcome-experience/

    关于 Visual Studio 17.6 Preview 2 中引入的新欢迎页面。

    引入欢迎页面,它取代了旧的启动窗口(您可以在其中选择现有解决方案、创建新项目等)并征求反馈。

    【英文】C# - 使用 Novell Directory Ldap Nuget 包通过 ObjectSid 搜索 AD 条目#

    https://dev.to/hbolajraf/c-search-ad-entry-by-objectsid-using-novell-directory-ldap-nuget-package-28il

    如何使用 Novell.Directory.Ldap.NETStandard 包根据 ObjectSid 搜索 Active Directory。

    【英文】[ASP.NET Core] 尝试服务器发送的事件#

    https://dev.to/masanori_msl/aspnet-core-try-server-sent-events-5db2

    如何在 ASP.NET Core 中实现服务器发送的事件。

    【英文】使用 WPF 和 Dyte 构建视频通话应用程序#

    https://dyte.io/blog/building-video-calling-app-using-wpf-dyte/

    如何实现使用 Dyte 进行视频通话的 WPF 应用程序,Dyte 是一种处理实时视频和视频会议的服务。

    【日文】关于 .NET 中的控制台缓冲区和窗口 - Qiita#

    https://qiita.com/rougemeilland/items/10f4d94c9343fd8eb708

    关于在 .NET 中处理控制台缓冲区和窗口。 它还涉及 Console.Clear 的行为。

    【英文】实现可访问、可检查的 WPF 树视图 - Engineering@Microsoft#

    https://devblogs.microsoft.com/engineering-at-microsoft/implementing-an-accessible-checkable-wpf-tree-view/

    对于由 Accessibility Insights 团队修改的 WPF 中带有复选框的树视图实现。

    【英文】在 JetBrains Rider 中使用 Git#

    https://andrewlock.net/working-with-git-in-jetbrains-rider/

    JetBrains Rider中Git的各种操作介绍。

    【英文】静态接口成员、通用属性、自动默认结构 - 在 Rider 和 ReSharper 中使用 C# 11 | .NET 工具博客#

    https://blog.jetbrains.com/dotnet/2023/03/14/static-interface-members-generic-attributes-auto-default-structs-using-csharp-11-in-rider-and-resharper/

    在 JetBrains Rider 和 ReSharper 中引入了支持新功能的功能,例如接口中的静态抽象成员、通用属性和 C# 11 中结构的自动默认值。

    【英文】改进拼写检查器 - Visual Studio 博客#

    https://devblogs.microsoft.com/visualstudio/improving-the-spell-checker/

    在 Visual Studio 2022 17.6 Preview 2 中引入拼写检查改进。

    它引入了改进的特定于编程语言的字典和排除字典的编码、更好的特殊情况检测以及拼写检查器的自定义。

    【日文】获取特定文件夹下项目引用的库列表(.NET)-Qiita#

    https://qiita.com/karuakun/items/a6149a40d9c775a6665d

    关于如何使用 PowerShell 获取从特定文件夹下的 .csproj 引用的库列表。

    【日文】尝试从C#-Qiita操作Google Spreadsheet#

    https://qiita.com/tat_tt/items/b9757cc940338c7deeab

    从 C# 使用 Google 表格的说明和读取数据的示例。

    【日文】Azure Functions v3 到 v4 (.NET 7.0)#

    https://zenn.dev/tessecraft_r/articles/1d3f83025e0830

    一篇文章解释了我如何将 Azure Functions 的 .NET 实现从 v3 迁移到 v4。

    【日文】发布了 ReactiveProperty v9.1#

    https://zenn.dev/okazuki/articles/release-reactiveproperty-v9_1_0

    ReactiveProperty v9.1 新特性介绍。 它解释了命令的扩展方法和对“ReactivePropertiesValidator”的改进等要点。

    【日文】C# 11-常量字符串范围内的模式匹配#

    https://www.c-sharpcorner.com/blogs/c-sharp-11-pattern-matching-on-span-for-constant-string

    关于 ReadOnlySpan 可以使用列表模式匹配。

    库、存储库、工具#

    dfederm/ReferenceTrimmer:轻松识别可以从 .NET 项目中删除哪些依赖项#

    https://github.com/dfederm/ReferenceTrimmer

    MSBuild 任务和 Roslyn Analyzer 可以轻松找到未使用的依赖项。

    • 使用 ReferenceTrimmer 删除未使用的依赖项

    Azure/data-api-builder:Azure 数据库的数据 API 构建器为您的 Azure 数据库提供现代 REST 和 GraphQL 端点。#

    https://github.com/Azure/data-api-builder

    REST/GraphQL 网关服务器到 Azure 数据库(CosmosDB、MySQL、PostgreSQL、SQL 数据库)。

    主要用于从 Azure Static Web Apps 访问数据库。

    • 宣布使用数据 API 构建器为 Azure 静态 Web 应用程序建立数据库连接
    • Azure 上的 GraphQL:第 12 部分 - GraphQL 即服务

    wilder-minds/MinimalApiDiscovery:一个 .NET Core 库,用于支持以理智的方式注册最小 API#

    https://github.com/wilder-minds/MinimalApiDiscovery

    允许您细分(分组)Minimal API 并自动注册它们的库。

    • 用于大型 API 的最小 API 发现工具

    jsakamoto/BlazingStory:Blazor 的“Storybook”克隆版,Blazor 是一个用于单独构建 UI 组件和页面的前端工作室。#

    https://github.com/jsakamoto/BlazingStory/

    UI 组件目录 Blazor Storybook 的克隆。

    https://twitter.com/jsakamoto/status/1635746624759795713

    image-20230320201805969

    Damian Edwards/RazorSlices:基于轻量级 Razor 的 ASP.NET Core 模板,无需 MVC、Razor Pages 或 Blazor。#

    https://github.com/DamianEdwards/RazorSlices

    在没有 ASP.NET Core MVC 或 Razor Pages 的情况下使用基于 Razor 的模板的库。

    它主要用于 Minimal API 等用例。 (不使用 ASP.NET Core MVC 但依赖于 ASP.NET Core 框架)

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

    image-20230320201912965

    推文#

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

    image-20230320202004988

    版权声明#

    • 国内板块由 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,欢迎大家加入。

  • 相关阅读:
    python使用np函数报错
    uniapp 转微信小程序遇到的坑
    ES6必会重点汇总
    商超智能守护:AI监控技术在零售安全中的应用
    java中的泛型
    三次握手和四次挥手小结
    艾美捷胆固醇肉豆蔻酸酯说明书和相关研究
    ICRA2022 SLAM进展---激光SLAM
    解决Hadoop集群hdfs无法启动DataNode的问题
    uni-app使用canvas适配手机宽高进行渲染
  • 原文地址:https://www.cnblogs.com/InCerry/p/dotnet_week_23_3_3.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号