https://mp.weixin.qq.com/s/HJYnBE-7wbvkAYHxQaq3eQ
我和拥有多个.NET 千星开源项目作者九哥一拍即合,为了让更多的人了解 Kestrel,计划写一系列的文章来介绍它;本文是九哥发布的第一篇,通过 Kestrel 实现一个 Redis 的伪服务器,带大家了解 Kestrel 除了承载 HTTP 协议,还有其它更多的可能性,DotNetty 能做到的,Kestrel 同样也可以。
https://www.cnblogs.com/artech/p/16950268.html
在《用最少的代码模拟gRPC四种消息交换模式》中,我使用很简单的代码模拟了gRPC四种消息交换模式(Unary、Client Streaming、Server Streaming和Duplex Streaming),现在我们更近一步,试着使用极简的方式打造一个gRPC框架(github地址)。这个gRPC是对ASP.NET Core gRPC实现原理的模拟,并不是想重新造一个轮子。
https://www.cnblogs.com/huangxincheng/p/16965632.html
.NET 高级调试要想玩的好,看懂汇编是基本功,但看懂汇编和能写点汇编又完全是两回事,所以有时候看的多,总手痒痒想写一点,在 Windows 平台上搭建汇编环境不是那么容易,大多还是用微软的 MASM + DosBox
搭一个 8086 的环境,这玩意距今快 50 年了,今天为大家介绍介绍。
https://www.cnblogs.com/kewei/p/16955086.html
网络框架千千万万,在dotnet平台,我们可以直接手撸Socket,也可以基于dotnetty来开发,或者选择某些第三方类似于dotnetty的网络库,为何我要推荐Kestrel呢?
https://www.cnblogs.com/rupeng/p/16961982.html
前几天,一位网友跟我说他编写的一段很简单的代码遇到了奇怪的Bug,他要达到的效果是从一个List中随机取出来一条数据,代码很简单但是有BUG,带大家一起了解下。
https://www.cnblogs.com/InCerry/p/use-arraypool-with-naver-clear-array.html
大佬您好,之前读了您的文章受益匪浅,我们有一个项目经常占用 7-8GB 的内存,使用了您推荐的ArrayPool
以后降低到 4GB 左右,我还想着能不能继续优化,于是 dump 看了一下,发现是ArrayPool
对应的一个数组有几万个对象,这个类有 100 多个属性。我想问有没有方法能复用这些对象?感谢!
https://mp.weixin.qq.com/s/_3LWLTa2Oyn0jwdIuJ1zsw
Jellyfin 是一个使用.NET6编写的免费的媒体系统,它可以让您更好的管理媒体,包括电影,音乐,图书,照片等,它是 Emby 和 Plex 的替代方案,在 Github 开源并拥有18.6k 的 Star。
https://mp.weixin.qq.com/s/Agk3i-YLqNQfcjG4Vc-cIQ
dotnet-exec
是一个可以执行 C# 程序而不需要项目文件的命令行工具,并且你可以指定自定义的入口方法不仅仅是Main
方法。
https://mp.weixin.qq.com/s/Ga-jBE8iih7KtQVjefwlnw
我们很高兴地宣布 C# 11 已经发布!与往常一样,C# 开辟了一些全新的领域,同时推进了过去版本中一直在运行的几个主题。我们的文档页面上的 C# 11 的新增功能下有许多功能和详细信息,这些内容都得到了很好的介绍。
https://mp.weixin.qq.com/s/E-7y8hV006dhx7TBMrM5Gg
本文是“.NET Conf China 2022”上我的一个分享,这里更细化的分享出来。分享分为四个部分:1. 制定目标、2.设计应用、3. 正确测试、4.性能优化。
https://mp.weixin.qq.com/s/TqltBB4E-Z6w48z1K-Y6tw
在.NET下常用OpenCV进行图像处理工作,常用的.NET下的OpenCV库有Emgu CV和OpenCVSharp。今天我们就来和大家介绍一些OpenCvSharp。
https://mp.weixin.qq.com/s/J58yfxbtT7gspZSCEEMK_w
这里针对GPS接收的WGS84椭球的经纬度转换为地方坐标系的问题,利用C#,对工程坐标转换方法和步骤做出详细的解答。不基于任何类库和函数库,也未使用矩阵库,可以便利的将代码移植到任何语言。
https://devblogs.microsoft.com/dotnet/dotnet-7-networking-improvements/
介绍.NET 7中与网络有关的改进的文章。该文章详细介绍了以下项目:
https://devblogs.microsoft.com/visualstudio/try-out-visual-studio-2022-17-5-preview-2/
Visual Studio 2022版17.5预览版已经发布。
https://devblogs.microsoft.com/dotnet/december-2022-updates/
.NET 7.0.1、.NET 6.0.12和.NET Core 3.1.32已被发布。
该版本包含一个安全补丁,它修复了一个远程代码执行漏洞,该漏洞允许通过打开精心制作的XPS文件来执行代码。
这也是.NET Core 3.1的最后一个版本,它将在2022年12月13日不被支持。
2022年12月发布的.NET框架安全和累积滚动更新。
该版本包含一个安全补丁,并修复了一个远程代码执行漏洞,该漏洞允许通过打开精心制作的XPS文件执行代码。
https://github.com/IronLanguages/ironpython3/releases/tag/v3.4.0
IronPython 3.4.0已经发布。
该版本支持Python 3.4语法和标准库。 它还支持一些较新版本的语法,等等。
运行时目标是.NET框架4.6.2、.NET Core 3.1和.NET 6。
它也以.NET工具的形式发布,可以通过dotnet tool install -g IronPython.Console
来安装和运行。
-IronPython 3.4.0终于正式发布了- 与.NET集成的Python语言的开源实现/从'Python 2'过渡到'Python 3' - Windows森林
https://devblogs.microsoft.com/dotnet/polyglot-notebooks-december-2022-release/
2022年12月发布的Polyglot Notebooks(以前的.NET Interactive)。
https://github.com/mysql-net/MySqlConnector/releases/tag/2.2.2
Async MySqlConnector 2.2.2已经发布。
该版本修复了TLS连接初始化和连接异常时对象销毁过程中的内存泄漏。
https://code.visualstudio.com/updates/v1_74
Visual Studio Code 1.74(1.74.1)已经发布。
console.profile
收集此外,在1.74版发布后,1.74.1版也已发布,并对各种错误进行了修复。
https://devblogs.microsoft.com/dotnet/migrating-from-asp-net-to-asp-net-core-part-5/
一系列关于从ASP.NET迁移到ASP.NET Core的文章,其中System.Web.Adapter 1.0现已发布。
这篇文章介绍了迁移的Visual Studio扩展和System.Web.Adapter的更新。
https://devblogs.microsoft.com/visualstudio/dev-tunnels-in-visual-studio-for-asp-net-core-projects/
一篇关于Dev tunnels(开发隧道)的介绍性文章,这是Visual Studio中ASP.NET Core项目可用的预览功能。
Dev tunnels是一种端口转发功能,允许从外部来源(如ngrok)访问本地环境。
文章介绍了最新的更新和如何使用该功能,持久性和临时性隧道的区别,工具窗口和环境变量支持。
https://ufcpp.net/blog/2022/12/unused-generic-type-parameter/
关于运行时行为问题的文章,涉及结构体的泛型和包含它们的结构。
如果struct A<T> {}
被定义为struct B { A<B> Value; }
,我们谈论的是防御性地抛出一个异常,尽管它不是递归。
https://dev.classmethod.jp/articles/net-lambda-native-aot/
文章中对AWS Lambda支持的.NET应用的Native AOT进行了实际测试。
在文章中,除了使其发挥作用的程序外,还测量并提到了实际的启动时间。 (本地AOT较慢,等等。)
https://zenn.dev/tomori_k/articles/966f34daea405a
关于在.NET MAUI中实现一个备忘录应用程序的文章。
https://blog.shibayan.jp/entry/20221211/1670748155
关于在NuGet 6.4中使用中央包管理来集中管理项目的包版本的文章。
文章还提到了转换器的存在和关于Dependabot的说明。
https://qiita.com/jsakamoto/items/91c86a0f34de6e6d77b9
关于如何通过在Blazor WebAssembly中进行汇编修剪来减少文件大小的文章。
https://qiita.com/jsakamoto/items/3d749a9ba4f8523b5291
关于用Playwright测试Blazor服务器时的一个问题,即在事件处理程序连接到预渲染的内容之前,Playwright以读完的方式运行。
https://devblogs.microsoft.com/visualstudio/whats-new-in-visual-studio-productivity/
关于Visual Studio生产力的新功能的文章。
https://ufcpp.net/blog/2022/12/extension-resolution/
一篇解释扩展方法不能用于隐式类型转换的文章。
https://andrewlock.net/5-new-mvc-features-in-dotnet-7/
文章介绍了.NET 7中ASP.NET Core MVC的5个新特性。
IParseable
, TryParse
.[FromServices]
为依赖注入IResult
关于如何使用Keycloak作为Blazor WebAssembly的IdP的文章。
https://qiita.com/seuharuka/items/6f77983a179042b48e59
一篇介绍和使用Dev tunnels功能的文章,这是Visual Studio 2022的一个预览功能。
https://qiita.com/skitoy4321/items/77aff330a4ce63dd977c
文章总结了.NET 7中支持的C# 11功能在.NET 6和.NET Framework 4.8中可以使用(但不一定支持)的程度。
https://zenn.dev/proudust/articles/2022-12-06-build-maui-on-gh-actions
关于GitHub Actions上支持状态和构建.NET MAUI应用程序步骤的文章。
https://zenn.dev/okazuki/articles/dynamic-items-form-in-blazor
一篇关于如何使用Blazor动态地增加和减少表单中的项目数量,以及进行验证的文章。
关于如何在Android和iOS上使用CommunityToolkit.Maui.MediaElement(预览版)进行后台流媒体音频的文章。
https://qiita.com/lx-sasabo/items/557ff31eee36429d229e
关于调查在用MSBuild构建后运行dotnet测试可能导致构建再次被执行的情况的文章。
该文章指出,结果因是否使用Microsoft.NET.Build.Extensions而发生变化。
https://code-maze.com/schedule-jobs-with-quartz-net/
关于如何用Quartz.NET调度Job并在后台处理的文章。
介绍使用Wolverine(一种调解器/消息总线)进行的服务器开发。
https://qiita.com/nobu17/items/824c39493f7b12e94f7b
一篇关于将Blazor WebAssembly部署到fly.io并在服务器端用EF Core连接PostgreSQL等的文章。
https://qiita.com/MAUIHighSchool/items/232e1bb3d65080f2c548
从Figma的设计到创建一个UI组件,都需要使用.NET MAUI代码。
关于如何通过在ASP.NET Core Identity中定制2FA的令牌提供者,尝试从6位数改为4位数的文章。
https://qiita.com/kk-river/items/d974b02f6c4010433a9e
CommunityToolkit.Mvvm 8.0.0的一篇介绍性文章。
它介绍了属性、命令代码生成、信使等。
https://steven-giesel.com/blogPost/f4bc6fcc-5691-4f72-b9bb-75aeeb59230a
文章介绍了正在考虑在.NET 8中加入ArgumentException
和ArgumentOutOfRangeException
的辅助方法。
https://maoni0.medium.com/is-the-regression-in-gc-or-something-else-38f10018dd21
关于GC中的倒退的文章。
它解释说,有些性能退步看起来像GC性能退步,但其实不是,例如当你升级.NET版本时,你可以通过使用旧的GC来检查它是否确实存在性能退步。
https://medium.com/accessibleai/text-classification-in-c-with-ml-net-2-0-bc979dfd8ca9
关于如何使用ML.NET 2.0进行文本分类的文章。
https://qiita.com/MAUIHighSchool/items/393ba93e2eade7f8c9b9
关于如何通过在.NET MAUI中嵌入Stripe SDK在您的应用程序中实现信用卡支付的文章。
https://qiita.com/sh1ch/items/0b6add41584b5ba7f698
用代码介绍C# 11的新特性的文章。
https://medium.com/@saeedeldah/managing-multiple-versions-of-your-api-with-net and-swagger-47b4143e8bf5
关于如何使用API Explorer将ASP.NET Core Web API版本管理与Swagger结合起来的文章。
https://qiita.com/Gaku_Ishii/items/ad4abb1e0073519877d7
文章展示了如何用Native AOT将.NET代码构建为一个本地库,并从PHP和Go中调用它。
https://github.com/ugai/narabemi
一个用于并排视频比较的工具。
https://github.com/hadashiA/VYaml
一个高性能、节省内存的YAML库,针对.NET Standard 2.1的过渡。
https://github.com/davidfowl/SmartLoadBalancer/
为类似SignalR的东西实验性地实现了没有粘性的会话。它的工作原理是反复尝试转发请求,直到一个成功的SignalR服务器被YARP拉到。
Newtonsoft.Json 13.0.1有一个小的退步,没有影响到大多数人,这被误认为是不能使用的(就像对13.0.2一样,因为它打了补丁但不能使用),并被标记为脆弱版本。
https://twitter.com/jamesnk/status/1600844999783903233?s=12
https://github.com/microsoft/Microsoft.IO.RecyclableMemoryStream/issues/258
RecyclableMemoryStream 3.0版本的规划
由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.NET周报-国内文章》板块进行贡献,需要推广自己的文章或者框架、开源项目可以下方的项目地址提交Issue或者在我的微信公众号私信。
格式如下:
https://github.com/InCerryGit/.NET-Weekly
相信大家在开发中经常会遇到一些性能问题,苦于没有有效的工具去发现性能瓶颈,或者是发现瓶颈以后不知道该如何优化。之前一直有读者朋友询问有没有技术交流群,但是由于各种原因一直都没创建,现在很高兴的在这里宣布,我创建了一个专门交流.NET性能优化经验的群组,主题包括但不限于:
希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET性能问题和宝贵的性能分析优化经验。由于已经达到200人,可以加我微信,我拉你进群: ls1075