5

.NET周报【12月第3期 2022-12-23】 - InCerry

 1 year ago
source link: https://www.cnblogs.com/InCerry/p/dotnet_week_22_12_3.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

.NET周报【12月第3期 2022-12-23】

由于众所周知的原因,大佬们纷纷加入羊群,笔者也未能幸免,体验下来这绝对不是普通感冒的症状,身体不适,熬了几天,所以本周更新比较晚;另外精力有限,对于国际板块只有链接没有简介,十分抱歉!

在这个艰难时刻,大家照顾好自己和家人,做好防护,祝没羊的永远"郭襄",祝已羊的早日康复,没有一个冬天不可逾越,没有一个春天不会来临!

从位图到布隆过滤器,C#实现

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

本文将以 C# 语言来实现一个简单的布隆过滤器,为简化说明,设计得很简单,仅供学习使用。

图解B树及C#实现(1)

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

本系列将用三篇文章讲解B树的设计理念及如何用 C# 实现一个内存版本的B树:

  1. B树的定义及数据的插入(本文)
  2. 数据的读取及遍历
  3. 数据的删除

图解B树及C#实现(2)数据的读取及遍历

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

前一篇文章为大家介绍了 B树 的基本概念及其插入算法。本文将基于前一篇的内容,为大家介绍插入到 B树 中的数据该怎么读取及遍历,

本文的代码基于前一篇文章的代码,已经实现的功能可能会被省略,只介绍新增的功能。

推荐一款 在线+离线数据 同步框架 Dotmim.Sync

https://www.cnblogs.com/shanyou/p/DotmimSync.html

微软高级软件工程师 Sébastien Pertus 在 GitHub 网站开源了一种跨平台的关系数据库同步框架 Dotmim.Sync:https://github.com/Mimetis/Dotmim.Sync,该框架基于.NET Standard 2.0 研发,支持在 IOT、 Xamarin、.NET、MAUI 等环境中使用。

我做了第一个ChatGPT .net api聊天库

https://www.cnblogs.com/qwqwQAQ/p/16981579.html

最近这个ChatGPT很火啊,看了B站上很多视频,自己非常手痒,高低自己得整一个啊,但是让我很难受的是,翻遍了github前十页,竟然没有一个C#的ChatGPT项目,我好难受啊!那能怎么办?自己搞一个吧。

Mqttnet内存与性能改进录

https://www.cnblogs.com/kewei/p/16988461.html

MQTTnet是一个高性能的 .NET MQTT库,它提供MQTT客户端和MQTT服务器的功能,支持到最新MQTT5协议版本,支持.Net Framework4.5.2版本或以上。本文讲述了笔者阅读源码,发现性能问题和解决性能的过程。

WinUI(WASDK)使用MediaPipe检查手部关键点并通过ML.NET进行手势分类

https://mp.weixin.qq.com/s/_vRH-u1v3Ebn9ZOSKKtUKw

之所以会搞这个手势识别分类,其实是为了满足之前群友提的需求,就是针对稚晖君的ElectronBot机器人的上位机软件的功能丰富,因为本来擅长的技术栈都是.NET。也刚好试试全能的.NET是不是真的全能就想着做下试试了,MediaPipe作为谷歌开源的机器视觉库,功能很丰富了,而且也支持c++,翻遍社区果然找到了一个基于MediaPipe包装的C#版本,叫MediaPipe.NET,于是就开始整活了。

.NET网站国际化策略

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

我所在的公司是做SAAS软件,用户群体是面向全球的,因此对应业务系统国际化就是顺理成章的事情。其实国际化重点在于多语言支持,本文就从这方面入手和大家介绍。

为什么 Random.Shared 是线程安全的

https://mp.weixin.qq.com/s/-4mlXU-3KDFaEr8E2S4rAQ

在多线程环境中使用 Random 类来生成伪随机数时,很容易出现线程安全问题。例如,当多个线程同时调用 Next 方法时,可能会出现种子被意外修改的情况,导致生成的伪随机数不符合预期。本文介绍了为什么Random.Shared 是线程安全的。

通过 CancellationToken 提高 Web 性能

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

在 Web 开发中,经常会遇到这样的场景:用户发起一个请求,Web 服务器执行一些计算密集型的操作,等待结果返回给用户。这种情况下,如果用户在等待结果的过程中取消了请求,那么服务器端依然会继续执行计算,这样就会造成资源浪费。

九哥聊Kestrel网络编程第二章:开发一个Fiddler

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

本文讲解基于 kestrel 开发类似 Fiddler 应用的过程,让读者了解 kestrel 网络编程里面的 kestrel 中间件和 http 应用中间件。由于最终目的不是输出完整功能的产品,所以这里只实现 Fiddler 最核心的 http 请求和响应内容查看的功能。本文章是KestrelApp 项目[2]里面的一个 demo 的讲解,希望对您有用。

使用WPF或AspNetCore创建简易版ChatGPT客户端,搭建属于你自己的私人AI助理

https://mp.weixin.qq.com/s/lsOJ-7op9YoiQdA7LlwaPg

前一天写的一个ChatGPT服务端,貌似大家用起来还不是那么方便,所以我顺便用WPF和AspNetCore的webapi程序做个客户端吧,通过客户端来快速访问chatgpt模型生成对话。

记一次 .NET 某工控MES程序 崩溃分析

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

前几天有位朋友找到我,说他的程序出现了偶发性崩溃,已经抓到了dump文件,Windows事件日志显示的崩溃点在 clr.dll 中,让我帮忙看下是怎么回事,那到底怎么回事呢? 上 WinDbg 说话。

.Net MAUI iOS使用腾讯开放平台TencentOpenAPI

https://mp.weixin.qq.com/s/6ee7rwUHz2t_ZSUVogD_vQ

本文介绍了如何在.Net MAUI iOS使用腾讯开放平台TencentOpenAPI。

《ASP.NET Core 6框架揭秘》实例演示[34]:缓存整个响应内容

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

我们利用ASP.NET开发的大部分API都是为了对外提供资源,对于不易变化的资源内容,针对某个维度对其实施缓存可以很好地提供应用的性能。《内存缓存与分布式缓存的使用》介绍的两种缓存框架(本地内存缓存和分布式缓存)为我们提供了简单易用的缓存读写编程模式,本篇介绍的则是针对针对HTTP响应内容实施缓存,ResponseCachingMiddleware中间件赋予我们的能力[本文节选《ASP.NET Core 6框架揭秘》第22章]。

发布 Oracle Entity Framework Core 7

https://medium.com/oracledevs/announcing-oracle-entity-framework-core-7-d89a2495b7db

ReSharper 和 Rider 2022.3.1 Bug 修复内容

https://blog.jetbrains.com/dotnet/2022/12/21/resharper-and-rider-2022-3-1-bug-fixes/

不脱离Visual Studio就能写markdown - Visual Studio博客

https://devblogs.microsoft.com/visualstudio/write-markdown-without-leaving-visual-studio/

Visual Studio 粘性滚动现在预览中 - Visual Studio博客

https://devblogs.microsoft.com/visualstudio/sticky-scroll-now-in-preview/

KB5022083 对基于WPF的应用程序渲染XPS文档方式的改变 - Microsoft 支持

https://support.microsoft.com/ja-jp/topic/kb5022083-wpf-ベースのアプリケーションが-xps-ドキュメントをレンダリングする方法の変更-a4ae4fa4-bc58-4c37-acdd-5eebc4e34556

文章、幻灯片等。

击败不安全类(函数指针)| UFCPP的博客

https://ufcpp.net/blog/2022/12/unsafer-unsafe/

.NET 7中的新内容 @bind:after可立即处理输入信息(并再次失败) - Qiita

https://qiita.com/jsakamoto/items/0a265288cacea70634b4

使用应用程序服务认证(Easy Auth)和ASP.NET表单认证同时并存 - Shibayan杂记

https://blog.shibayan.jp/entry/20221218/1671348695

在(C#)接口中具有静态虚拟成员的通用构造器 - 钟声响起的猫

https://ikorin2.hatenablog.jp/entry/2022/12/17/212228

2022年的C#(Incremental)源生成器开发方法 - neue.cc

https://neue.cc/2022/12/16_IncrementalSourceGenerator.html

LibraryImportAttribute是在.NET 7中添加的,我碰了一下它 - Programming Lineage Memandum Blog

https://tan.hatenadiary.jp/entry/2022/12/16/002739

我决心摆脱邪恶和暴虐的T4 |UFCPP的博客

https://ufcpp.net/blog/2022/12/no-more-t4/

用.NET和WebAssembly做实验-在AKS的WASI节点池上运行基于.NET的应用程序

https://www.tpeczek.com/2022/12/experimenting-with-net-webassembly.html

使用我最喜欢的静态分析工具(Code Quality & SAST)也在GitLab上使用

https://zenn.dev/masakura/articles/ff74864c9af28d

利用Blazor和DataFactory轻松实现EL应用 - Qiita

https://qiita.com/bitflyer/items/3b4ef34a9bdf5991b8f6

添加新文件的速度变快了很多 - Visual Studio博客

https://devblogs.microsoft.com/visualstudio/adding-new-files-just-got-a-lot-faster/

.NET on IBM Power #1 - Qiita

https://qiita.com/Nakaji1106/items/f0761c4d1dce58c0b8d5

C#11允许使用列表模式。

(https://zenn.dev/yuchiki/articles/csharp-list-pattern)

[C#] INumberT实现概述(含小数类型的实现示例) - Qiita

https://qiita.com/YuHima03/items/20b59013d42d294b9839

用.NET 7、Blazor和.NET MAUI构建你自己的播客应用程序 - .NET博客

https://devblogs.microsoft.com/dotnet/build-your-own-podcast-app-with-dotnet-blazor-and-dotnet-maui/

MQTT与nanoFramework的Node-RED通信

https://zenn.dev/matsuataru/articles/0237a66beb73db

如何将Xamarin.Android迁移到.NET 6 - Qiita

https://qiita.com/secile/items/10266c6b6bd5b179dc23

当pulumi遇到nuke:一个.NET的爱情故事

https://dev.to/techwatching/when-pulumi-met-nuke-a-net-love-story-4omd

用C#检测Windows屏幕锁 - Qiita

https://qiita.com/unasenohkoku/items/380e4fb4613b5abe96ea

处理.NET框架的NuGet包没有设置依赖关系(NU5218警告) - Qiita

https://qiita.com/mxProject/items/f031321ef0d229659f25

在.NET MAUI中用Azure AD B2C进行认证(先用MicrosoftAccount试试) - Qiita

https://qiita.com/MAUIHighSchool/items/b8faf3aba00082b023ac

不要把异步和同步混在一起,这很危险 - Qiita

https://qiita.com/superriver/items/1f1b83d2d2c6b70ba408

重新实现String.Format方法 - Qiita

https://qiita.com/t0r/items/f83f6ee4ddca1bcf27eb

从Unity 2021.2看新的C#类 - Qiita

https://qiita.com/Gaku_Ishii/items/23d85defb8339fe3e9c0

在Blazor中使用Handsontable,一个类似Excel的网格JS库 - Qiita

https://qiita.com/yaju/items/bcca337af393f15a6795

Rider 2022.3增加了从JSON创建C#类和Record的能力 - Qiita

https://qiita.com/RyotaMurohoshi/items/0c6730d0988b022378e6

Rider 2022.3和ReSharper 2022.3的IL浏览器现在可以将IL反编译为C# - Qiita

https://qiita.com/RyotaMurohoshi/items/1f8244f0af50ad30583e

C# 如何编写源码生成器 第1/5部分:规划

https://kafkawannafly.medium.com/c-how-to-write-a-source-generator-part-1-5-planning-6b4ab6ea5f63

使用Blazor WASM登录后,Azure AD安全组中的授权问题

https://zenn.dev/okazuki/articles/auth-securitygroup-blazorwasm

Mark2,一个用Blazor WebAssembly构建的分数表系统,现在已经开放源代码 - Qiita

https://qiita.com/kaorumori/items/5b7255e3244159b082d3

在.NET中使用代码优先的gRPC(gRPC-Web) - Qiita

https://qiita.com/michi_wkwk/items/194276f0014df74cac41

.NET 7: 源代码中可疑的地方和错误

https://dev.to/sergvasiliev/net-7-suspicious-places-and-errors-in-the-source-code-cgd

用Cardboard做一个游戏,作为你今年的圣诞礼物 - Qiita

https://qiita.com/secile/items/69928aa1e52152034489

Blazor 一个关于用WebAssembly开发新业务系统的故事

https://zenn.dev/rkatsura/articles/4b0e0b3dbb9a59

让我们在Unity中也使用Index/Range! - Qiita

https://qiita.com/Euglenach/items/c433afe78d72fc1a18fc

SoundMaker,在C#中生成像老游戏的声音 - Qiita

https://qiita.com/DTB_AutumnSky/items/8d78520567211d9a8dd2

FrogNote,一款笔记、管理和思考软件 - Qiita

https://qiita.com/DTB_AutumnSky/items/1d691e2428ac7fa9330c

尝试在Unity中生成System.Text.Json源码 | Yucchiy的说明

https://blog.yucchiy.com/2022/12/csharp-advent-calendar-system-text-json-unity/

图书馆、资源库、工具等

nenoNaninu/TypedSignalR.Client.TypeScript。TypeScript源生成器,通过分析C#类型定义来提供强类型的SignalR客户端。

https://github.com/nenoNaninu/TypedSignalR.Client.TypeScript

mxProject/WindowsFormGenericHost: 这是一个用于Generic Host的扩展库。在Generic Host上运行一个Windows Forms应用程序。

https://github.com/mxProject/WindowsFormGenericHost

Introduction | Cadl

https://microsoft.github.io/cadl/

网站、文件等


https://twitter.com/timheuer/status/1603880562204495877?s=12

image-20221223221719444

https://twitter.com/ufcpp/status/1605378308882935809?s=12

image-20221223221944524

由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.NET周报-国内文章》板块进行贡献,需要推广自己的文章或者框架、开源项目可以下方的项目地址提交Issue或者在我的微信公众号私信。

格式如下:

  • 10~50字左右的标题
  • 对应文章或项目网址访问链接
  • 200字以内的简介,如果太长会影响阅读体验

https://github.com/InCerryGit/.NET-Weekly

.NET性能优化交流群

相信大家在开发中经常会遇到一些性能问题,苦于没有有效的工具去发现性能瓶颈,或者是发现瓶颈以后不知道该如何优化。之前一直有读者朋友询问有没有技术交流群,但是由于各种原因一直都没创建,现在很高兴的在这里宣布,我创建了一个专门交流.NET性能优化经验的群组,主题包括但不限于:

  • 如何找到.NET性能瓶颈,如使用APM、dotnet tools等工具
  • .NET框架底层原理的实现,如垃圾回收器、JIT等等
  • 如何编写高性能的.NET代码,哪些地方存在性能陷阱

希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET性能问题和宝贵的性能分析优化经验。由于已经达到200人,可以加我微信,我拉你进群: ls1075


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK