.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发布
我们知道在.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
Windows App SDK 1.3 Experimental-1已经发布。
这个版本引入了几个新功能,包括XAML Backdrop API(例如,将Mica应用于窗口背景),以及用于访问应用程序窗口的Window.AppWindow API。
【中文】Rider EAP版本现在支持中文语言包 | .NET工具博客
日语、中文和韩语的本地化语言包现在可用于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的幕后花絮-第六部分
本文在《极简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#代码
如何从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优化以后,代码变得非常高效。
https://twitter.com/Dave_DotNet/status/1623600088231874562
.NET 8 中即将推出的NativeAOT 大小改进(预览版 1) ... Linux 比原来小50%
https://twitter.com/okyrylchuk/status/1623079620307296260
EF 7 改进了字符串的转换。索引方法。 可以在下面比较 EF Core 6 和 EF 7 的 SQL 输出。
版权声明
- 国内板块由 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,欢迎大家加入。
.NET周报 【2月第2期 2023-02-11】的更多相关文章
- .NET周报 【2月第1期 2023-02-04】
国内文章 .NET 入门到高级路线 https://www.cnblogs.com/hejiale010426/archive/2023/02/01/17083913.html 笔者介绍了.NET入门 ...
- .NET周报【1月第1期 2023-01-06】
国内文章 [开源]基于.net6+gtksharp实现的Linux下的图形界面串口调试工具 https://www.cnblogs.com/flykai/p/17007554.html 由于公司的上位 ...
- .NET周报【1月第3期 2023-01-20】
这应该是2023年农历新年前的最后一篇.NET周报,再次预祝大家新年快乐! 国内文章 看我是如何用C#编写一个小于8KB的贪吃蛇游戏的 https://www.cnblogs.com/InCerry/ ...
- .NET周报【10月第3期 2022-10-25】
国内文章 聊一聊被 .NET程序员 遗忘的 COM 组件 https://www.cnblogs.com/huangxincheng/p/16799234.html 将Windows编程中经典的COM ...
- .NET周报【11月第1期 2022-11-07】
国内文章 开源·安全·赋能 - .NET Conf China 2022 https://mp.weixin.qq.com/s/_tYpfPeQgyEGsnR4vVLzHg .NET Conf Chi ...
- .NET周报【11月第2期 2022-11-15】
国内文章 统一的开发平台.NET 7正式发布 https://www.cnblogs.com/shanyou/archive/2022/11/09/16871945.html 在 2020 年规划的. ...
- .NET周报【11月第3期 2022-11-22】
国内文章 .NET Conf China 2022 第一批讲师阵容大揭秘!整个期待了! https://mp.weixin.qq.com/s/4p89hhBPw6qv-0OB_T_TOg 目光看过来 ...
- .NET周报【11月第4期 2022-11-30】
国内文章 .NET 7 的 AOT 到底能不能扛反编译? https://www.cnblogs.com/huangxincheng/p/16917197.html 在B站,公众号上发了一篇 AOT ...
- .NET周报【12月第1期 2022-12-08】
国内文章 CAP 7.0 版本发布通告 - 支持延迟消息,性能炸了? https://www.cnblogs.com/savorboard/p/cap-7-0.html) 今天,我们很高兴宣布 CAP ...
- .NET周报【12月第2期 2022-12-15】
国内文章 九哥聊Kestrel网络编程第一章:开发一个Redis服务器 https://mp.weixin.qq.com/s/HJYnBE-7wbvkAYHxQaq3eQ 我和拥有多个.NET 千星开 ...
随机推荐
- Perl printf 函数
转载 Perl printf 函数
- UBOOT编译--- include/config/auto.conf、 include/config/auto.conf.cmd、 include/generated/autoconf.h (二)
1. 前言 UBOOT版本:uboot2018.03,开发板myimx8mmek240. 2. 背景 在编译构建目标时(如 make xxx),顶层 Makefile 的 dot-config 变量值 ...
- X活手环的表盘自定义修改
文章用到的所有工具及软件成品 前言 前几天我在某宝买了一个智能手环,无奈软件中的表盘太少,所有我想着修改一下app中的资源文件. 反编译APK 这里反编译APK用apktool工具就可以. apkto ...
- 6. PyQt5 中的多线程的使用(上)
专栏地址 ʅ(‾◡◝)ʃ 这一节引入了多线程这个非常重要概念, 在我认为多线程的重要性是紧紧次于信号与槽函数的, 因为在平时经常使用 1. 为什么要用多线程 先看下面这一个示例代码 6.1 from ...
- linux系统安装nginx中的subs-filter模块
debain系 nginx源里面一般都包含 nginx的第三方模块 所以对应已经安装了nginx 的系统可以直接安装第三方模块 sudo apt install libnginx-mod-http-s ...
- HSSFSheet XSSFWorkbook SXSSF Java读取Excel数据
HSSF是POI工程对Excel 97(-2007)文件操作的纯Java实现 XSSF是POI工程对Excel 2007 OOXML (.xlsx)文件操作的纯Java实现 SXSSF通过一个滑动窗口 ...
- 【ASP.NET Core】MVC控制器的各种自定义:特性化的路由规则
MVC的路由规则配置方式比较多,咱们用得最多的是两种: A.全局规则.就是我们熟悉的"{controller}/{action}". app.MapControllerRoute( ...
- python多线程批量操作交换机
import time import socket import threading def device_info(): ip_list = [] name_list = [] user_list ...
- django框架(部分讲解)
ORM执行SQL语句 有时候ORM的操作效率可能偏低 我们是可以自己编写SQL的 方式1: raw()方法执行原生sql语句 models.User.objects.raw('select * fro ...
- 单例模式及pickle序列化模块
内容回顾 目录 内容回顾 单列模式实现的多种方式 pickle序列化模块 根据类名或对象名如何获取到类的字符串名 选课系统需求分析 功能提炼 选课系统架构设计 选课系统目录搭建 单列模式实现的多种方式 ...