3

.NET周报 【2月第2期 2023-02-11】 - InCerry

 1 year ago
source link: https://www.cnblogs.com/InCerry/p/dotnet_week_23_2_2.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周报 【2月第2期 2023-02-11】

SQLSERVER的truncate和delete有区别吗?

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

在面试中我相信有很多朋友会被问到 truncate 和 delete 有什么区别 ,这是一个很有意思的话题,本篇我就试着来回答一下,如果下次大家遇到这类问题,我的答案应该可以帮你成功度过吧。

一个用于访问 OpenAI GPT-3 API的 .NET SDK

https://mp.weixin.qq.com/s/91SBO2Z4ufnx0ry6X1uffQ

大家好,我是宝弟!今天给大家分享一个用于访问 OpenAI GPT-3 API的.NET SDK。此SDK包装了OpenAI原始的RestAPI。

一款使用Windows App SDK开发的小说阅读应用

https://mp.weixin.qq.com/s/Gv-Xc4sbD-4zS9JCjhVuMA

大家好,我是宝弟!今天给大家推荐一款使用Windows App SDK开发的小说阅读应用CleanReader(干净阅读),CleanReader是原生的Windows应用,支持Windows 11 系统。适合喜欢阅读网文,或者本地轻量阅读的用户。

.NET与大数据

https://mp.weixin.qq.com/s/32by2AB91JWKTeJclpKHZQ

当别人做大数据用Java、Python的时候,我使用.NET做大数据、数据挖掘,这确实是值得一说的事。写的并不全面,但都是实际工作中的内容。

.NET多播委托和事件看这篇文章就够了

https://mp.weixin.qq.com/s/4x7CN5p724X-1lmumomSdg

多播委托和事件在某种程度上是相似的,但是仍有一些重要的区别:定义:多播委托是一种特殊类型的委托,允许多个方法注册为对委托的响应者。而事件是一种通知机制,允许一个对象向外界发出通知,当特定事件发生时。

CA周记 - 用 .NET 启动你的 DJI Ryze Tello 无人机

https://mp.weixin.qq.com/s/9uUeA5-KP6X_OidLqrjpkw

大疆的 DJI Ryze Tello 是入门级的无人机,不仅在 STEM 教育中有非常广泛的应用,也可以作为编程入门的首选。通过 UDP 协议调用 DJI Ryze Tello SDK 可以让 DJI Ryze Tello 无人机执行起飞,降落,转向以及不同的花式动作。本文将会通过 .NET 创建应用控制 DJI Ryze Tello。

C#实现聊天消息渲染、图文混排(支持Windows、Linux)

https://www.cnblogs.com/zhuweisky/p/17095413.html

在实现聊天软件时,渲染文字表情图文混排是一项非常繁琐的工作,再加上还要支持GIF动图、引用消息、撤回消息、名片等不同样式的消息渲染时,就更加麻烦了。好在我们可以使用 ESFramework 提供的 IChatRender 组件,使用它我们就能轻松实现类似于微信聊天消息的渲染效果。IChatRender 支持 Windows、Linux(包括国产OS)。在Windows平台上提供了基于 WinForm 和基于 WPF 的实现,在Linux上则是基于.NET Core 实现的。

如何避免让线程摸鱼,请用异步技术 async await 拿捏他~

https://www.cnblogs.com/weixb/archive/2023/02/09/17104642.html

很多的Web框架,收到一个请求,就会创建一个线程来处理,如果片刻间内有100个用户请求这个方法,那么就得安排100个线程,
有没有方法让第1个线程在等待数据返回时,先去接待第N+1个用户(校验请求参数什么的)这样就能大大减少线程数量~

【.NET 8】ASP.NET Core计划 - 支持更完善的AOT发布

https://www.cnblogs.com/InCerry/archive/2023/02/08/Support-publishing-ASP-NET-Core-API-apps-with-Native-AOT.html

我们知道在.NET7.0中一个令人激动的特新就是支持了NativeAOT,我们可以通过NativeAOT生成本机程序,由于无需JIT编译,所以无需安装.NET Runtime,也进一步的提升了.程序的启动速度,降低了程序的体积,在客户端软件开发、ServerLess等场景会有不错的前景。

不用Blazor WebAssembly,开发在浏览器端编译和运行C#代码的网站

https://www.cnblogs.com/rupeng/archive/2023/02/10/17107662.html

本文中,我将会为大家分享一个如何用.NET技术开发“在浏览器端编译和运行C#代码的工具”,核心的技术就是用C#编写不依赖于Blazor框架的WebAssembly以及Roslyn技术。

.NET 团队 更新了 .NET 语言策略

2023年2月6日 ,.NET团队在官方博客上发布了.NET 语言策略的更新文章,具体参见 https://devblogs.microsoft.com/dotnet/update-to-the-dotnet-language-strategy/。微软在.NET平台上提供3种语言 - C#,F#和Visual Basic。新的 .NET 语言策略更新了这三者并把最新的文章更新在 Microsoft Learn 上发布 .NET 语言策略。

【英文】更新.NET语言策略 - .NET Blog

https://devblogs.microsoft.com/dotnet/update-to-the-dotnet-language-strategy/

关于微软对 .NET 中语言的战略更新。

目前 .NET 中主要的三种语言是 C#、F# 和 Visual Basic,有关微软对这三种语言的战略的文件已经更新。

【英文】Windows App SDK的实验发布1.3实验版 - Windows应用程序 | Microsoft Learn

https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/experimental-channel#version-13-experimental-130-experimental1

Windows App SDK 1.3 Experimental-1已经发布。

这个版本引入了几个新功能,包括XAML Backdrop API(例如,将Mica应用于窗口背景),以及用于访问应用程序窗口的Window.AppWindow API。

【中文】Rider EAP版本现在支持中文语言包 | .NET工具博客

https://blog.jetbrains.com/zh-hans/dotnet/2023/02/07/introducing-the-rider-localization-eap-for-chinese-japanese-and-korean/

日语、中文和韩语的本地化语言包现在可用于JetBrains Rider 2023.1 EAP3。

一些本地化工作目前正在进行中,并通过IDE和YouTrack接受反馈。 该公司还表示,未来的目标包括将ReSharper本地化。

【英文】ReSharper结束Visual Studio 2010和2012的开发工作 | .NET工具博客

https://blog.jetbrains.com/dotnet/2023/02/10/ending-development-for-vs-2010-2012/

宣布ReSharper 2023.1及以后版本将不再积极支持Visual Studio 2010和2012。

安装程序集成选项将被保留,并不会立即不可用,但功能将不那么有保障,支持将被优先考虑。

文章、幻灯片等

【日文】快速制作图像分类应用的过程 - Qiita

https://qiita.com/SoeAtsu/items/4d22493c5dc8367162db

一篇关于在WPF和ML.NET中构建一个识别和分类图像的应用程序的文章。

【英文】SpecFlow - Cucumber in C#

https://daniel-delimata.medium.com/specflow-cucumber-in-c-e642c63469b2

如何使用SpecFlow、Cucumber在.NET中测试你的Web应用程序。

【英文】生成RequestDelegate的响应书写表达式:最小化API的幕后花絮-第六部分

https://andrewlock.net/behind-the-scenes-of-minimal-apis-6-generating-the-response-writing-expression/

本文在《极简API的幕后》系列中介绍了RequestDelegate如何生成输出响应的表达式(Expression)。

【日文】我想把Blazor中的验证逻辑组件化

https://zenn.dev/microsoft/articles/viewside-validation

如何以组件的形式将Blazor中的自定义验证逻辑组件化。

【日文】我想缩小Blazor中ValidationSummary显示的错误信息,如asp-validation-summary

https://zenn.dev/microsoft/articles/blazor-validationsummary-tips

如何在ValidationSummary组件中只显示与特定模型相关的错误,而不是所有属性。

【英文】.NET注释月刊|2023年2月|.NET工具博客

https://blog.jetbrains.com/dotnet/2023/02/08/net-annotated-monthly-february-2023/

JetBrains的2023年2月相关总结文章。

【日文】如何在C#服务器上取得配置文件 - Qiita

https://qiita.com/Shaula/items/177e8c16ec9b8b102c7a

如何使用dotnet-trace获得在服务器(如容器)上运行的.NET应用程序的跟踪。

【日文】用.NET探查IBM i数据库 - Qiita

https://qiita.com/tom_m_m/items/9481e8b619463ab9c20f

关于在IBM i(ppc64le架构)上从.NET应用程序访问Db2数据库的文章。

【英文】C# 提示:不要使用 nameof 来给常量一个值 - Code4IT

https://www.code4it.dev/csharptips/do-not-use-nameof-for-constants

观点:不建议在nameof中使用常量的名称,然后将其作为表名等使用,因为如果不慎改变,会破坏代码。

【英文】用Bogus生成样本数据

https://wildermuth.com/2023/01/29/generating-sample-data-with-bogus/

如何用Bogus生成假数据。

【英文】异步无效 - 如何驯服异步的噩梦 - Dev Leader

https://www.devleader.ca/2023/01/27/async-void-how-to-tame-the-asynchronous-nightmare/

关于async void的问题,以及如何在使用它作为事件处理程序时也能设法捕获异常等等。

【英文】必须遵守C规则,没有例外

https://ericsink.com/native_aot/no_exceptions.html

关于NativeAOT本地调用的方法不得抛出异常。

【英文】使用Visual Studio开发隧道来处理Twilio Webhooks

https://dev.to/twilio/use-visual-studio-dev-tunnels-to-handle-twilio-webhooks-58dc

如何使用Visual Studio开发隧道来处理Twilio webhooks。

【英文】计时的成本

https://ayende.com/blog/198977-B/the-cost-of-timing-out

关于在有大量并发执行的环境中,调用CancellationToken.CancelAfter进行超时处理会导致大量的Timer集。

RavenDB有一种方法,就是有周期性的定时器,并分批处理,以减少成本。

【英文】在没有Blazor WebAssembly的情况下,开发一个网站,在浏览器上编译和运行C#代码

https://yangzhongke8.medium.com/without-blazor-webassembly-develop-a-web-site-that-compiles-and-runs-c-code-on-browser-c381873f6d03

如何从JavaScript调用用WebAssembly构建的C#代码,而不使用Blazor WebAssembly的Blazor部分。

【英文】同步-异步场景下的性能测试

https://wapplegate.com/performance-testing/

所谓Sync-over-Async的性能,即异步方法的同步等待。

它总结了几个代码场景和结果,如延迟和RPS,取决于并行请求的数量。

开源库、存储库、工具等

drasticactions/MauiFeed: 跨平台 .NET Feed 阅读器。

https://github.com/drasticactions/MauiFeed

.NET MAUI 实现的 Feed 阅读器。

可以从 Microsoft Store 安装针对 Windows 的构建。

ForNeVeR/xaml-math: 一组 .NET 库,用于使用 LaTeX 排版风格渲染数学公式,适用于基于 WPF 和 Avalonia XAML 的框架。

https://github.com/ForNeVeR/xaml-math

用于在 WPF 和 Avalonia 中使用 LaTeX 风格渲染数学公式的库。

https://twitter.com/fvnever/status/1622750145958887424?s=12

LEGO/AsyncAPI.NET: AsyncAPI.NET SDK 包含了 .NET 中 AsyncAPI 文档的有用对象模型。

https://github.com/LEGO/AsyncAPI.NET/

用于读取 AsyncAPI(基于 OpenAPI 的事件驱动 API 版本)文档的库。

https://twitter.com/legoengineering/status/1623255496030388227?s=12

[WIP] .NET 8 的 ASP.NET Core 路线图 · Issue #44984 · dotnet/aspnetcore

https://github.com/dotnet/aspnetcore/issues/44984

.NET 8 的 ASP.NET Core 路线图相关的问题。

HttpContent.ReadAsByteArrayAsync 中的过多分配 · Issue #81628 · dotnet/runtime

https://github.com/dotnet/runtime/issues/81628

HttpContent.ReadAsByteArrayAsync()相比HttpClient.GetByteArrayAsync()存在 4 倍的分配,是否过多。

实际上,HttpContent.ReadAsByteArrayAsync() 会因为可以多次读取而缓存或复制,因此如果要避免当前情况,最好使用 Stream 进行读取等。

https://twitter.com/badamczewski01/status/1623788674558091265

什么是 .NET 中的 PGO(我很快就会再次谈论编译器,但它是为一家公司准备的,所以没有视频:/)

可以看到一开始生成的汇编代码比较低效,而且很长。经过PGO优化以后,代码变得非常高效。

image-20230213212924368

https://twitter.com/Dave_DotNet/status/1623600088231874562

.NET 8 中即将推出的NativeAOT 大小改进(预览版 1) ... Linux 比原来小50%

image-20230213213516979

https://twitter.com/okyrylchuk/status/1623079620307296260

EF 7 改进了字符串的转换。索引方法。 可以在下面比较 EF Core 6 和 EF 7 的 SQL 输出。

image-20230213214134353

由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.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,欢迎大家加入。


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK