https://www.cnblogs.com/shanyou/archive/2022/11/09/16871945.html
在 2020 年规划的.NET 5功能终于在.NET 7 完成了,为微软和社区一起为多年来将不同的开发产品统一起来的努力加冕,未来只有一个.NET, 回顾.NET 20年,从.NET Framework –> .NET Core –>.NET 一个产品命名可以反映出.NET的发展脉络,从封闭走向开放,犹如历史中的各种拨乱反正的演进......
https://www.cnblogs.com/whuanle/p/16875679.html
本文主要介绍如何在 .NET 和 Go 语言中如何生成系统(Windows)动态链接库,又如何从代码中引用这些库中的函数。在 .NET 部分,介绍如何使用 AOT、减少二进制文件大小、使用最新的 [LibraryImport]
导入库函数;在 Go 语言部分,介绍如何使用 GCC 编译 Go 代码、如何通过 syscall
导入库函数。在文章中会演示 .NET 和 Go 相互调用各自生成的动态链接库,以及对比两者之间的差异。
https://www.cnblogs.com/InCerry/p/Dotnet-Perf-Opt-Serialization-Protocol.html
本文主要介绍了序列化协议对.NET程序性能的影响,以及对主流的.NET序列化框架进行序列化、反序列化速度、内存分配、序列化后大小的评测,找出如果我们不用JSON,那应该使用什么序列化协议的思考。
https://www.cnblogs.com/huangxincheng/p/16868486.html
这篇文章起源于昨天的一位朋友发给我的dump文件,说它的程序出现了卡死,看了下程序的主线程栈,居然又碰到了 OnUserPreferenceChanged
导致的挂死问题,真的是经典中的经典,线程栈如下.......
https://www.cnblogs.com/Dotnet9-com/p/16868009.html
大家好,我是沙漠尽头的狼。.NET是免费,跨平台,开源,用于构建所有应用的开发人员平台。本文演示如何在WPF[1]中使用Blazor[2]开发漂亮的UI,为客户端开发注入新活力。
https://www.cnblogs.com/wucy/p/16857160.html
提到WebSocket
相信大家都听说过,它的初衷是为了解决客户端浏览器与服务端进行双向通信,是在单个TCP
连接上进行全双工通讯的协议。本篇文章就来和大家分享一下基于ASP.NET Core原生WebSocket的方式实现集群的实现思路。
https://www.cnblogs.com/xiaofangcode/p/16871193.html
笔者是一个专科院校的一名普通学生,目前就职于某三线城市的WEB方面.Net开发实习生,在找实习期间和就业期间的一些看法,发表此文,纯个人想法,欢迎讨论,指正!哈哈轻点喷......
https://www.cnblogs.com/SavionZhang/archive/2022/11/09/16872493.html
2022-11-8 .NET 7.0 作为微软的开源跨平台开发平台正式发布。微软在公告中表示.NET 7为您的应用程序带来了C# 11 / F# 7,.NET MAUI,ASP.NET Core/Blazor,Web API,WinForms,WPF等的性能和新功能,。借助 .NET 7,您还可以轻松容器化 .NET 7 项目,在 GitHub 操作中设置 CI/CD 工作流,并实现云原生可观测性。
https://mp.weixin.qq.com/s/obervizSYjeCumzNNUIrNg
最近.NET7.0和C#11相继发布,笔者也是第一时间就用上了C#11,其中C#11的有一个更新能解决困扰我多年的问题,也就是文章的标题原始字符串。在使用C#11的原始字符串时,发现的一些有意思的东西,超出了我原本对它的期待,话不多说,我们一起来看看。
https://mp.weixin.qq.com/s/y_vGEnzCDCbfdOJjD6bdEA
微软在2018 SIGMOD Transactions and Indexing Session 中发表了一篇名为《FASTER: A Concurrent Key-Value Store with In-Place Updates》的paper,文章提出了一种在更新密集,访问模式多表现出时间局部性,允许工作集大于内存,访问操作多为点读,Blind Update以及Read Modify Write场景下的表现极佳的KV引擎,号称单机QPS可以达到1.6亿。
https://mp.weixin.qq.com/s/kc5djLlEXikUwLEpou89bA
实现一个可以动态加载,动态更新服务的插件需求。插件的好处是什么?我们可以编写代码来动态去替换或者增加现有服务接口等,使用得当的情况下风险小、操作方便。
https://mp.weixin.qq.com/s/hBmdz8L2h3pjP0fqvo-fmA
gRPC JSON 转码允许浏览器应用调用 gRPC 服务,就像它们是使用 JSON 的 RESTful API 一样。
浏览器应用不需要生成 gRPC 客户端或了解 gRPC 的任何信息。
通过使用 HTTP 元数据注释 .proto 文件,可从 gRPC 服务自动创建 RESTful API。
使应用可以同时支持 gRPC 和 JSON Web API,而无需重复为两者生成单独的服务。
https://mp.weixin.qq.com/s/iXx_NXXt8p7YUUs2F7lJBw
本文介绍了在元素很少的时候进行Contains操作应该使用数组还是HashSet,以及在不同元素数量时HashSet和数组的性能比较。
https://mp.weixin.qq.com/s/rYQm154Zykbmi0ZP-ACndw
本文介绍了WASM/WASI的原理,然后尝试将.NET程序编译为WASM,并在Windows和Docker最新的wasm runtime上运行。
https://mp.weixin.qq.com/s/IZBZR8FrTWs5WCussiY8Sg
还在手画C#依赖关系图吗?快来试试这个工具吧!笔者最近见到了一个不错的工具,可以让大家在看代码的时候一键生成C#依赖的类图。非常适合编写文档、查看和学习开源项目设计时使用,比如下方就是笔者通过这个工具生成的Microsoft.Extensions.ObjectPool
依赖图,可以非常清晰明了的告诉我们类与类之间的关系。
https://mp.weixin.qq.com/s/sxHFuvelnJCpN8j9msX2Fw
随着今年6月份的 HTTP/3 协议的正式发布,它背后的网络传输协议 QUIC,凭借其高效的传输效率和多路并发的能力,也大概率会取代我们熟悉的使用了几十年的 TCP,成为互联网的下一代标准传输协议。在最新的 .NET 7 中,.NET 团队公开了 Quic API,它是基于 MSQuic 库来实现的 , 提供了开箱即用的支持,命名空间为 System.Net.Quic。
https://devblogs.microsoft.com/dotnet/announcing-dotnet-7/
.NET 7已经发布。这篇文章重申了对.NET 7中各种新功能和变化的总结。
融合。
支持64位的IBM Power平台
一个BCL(一个基础类库)
新TFM
本机支持ARM64
在Linux上增强对.NET的支持
现代
持续的性能改进
开发效率的提高,如容器优先的工作流程
从同一代码库中构建移动和桌面应用程序
云原生应用程序的.NET
Azure支持
内置容器支持
Orleans 7
可观测性
更容易构建和部署分布式云原生应用
简洁性
通用数学
原始字符串
.NET库
在C#11中编写更简单、更少的代码
为云原生应用程序改进HTTP/3和Minimal API
业绩
栈上替换
配置引导优化(PGO)
Native AOT
大量的性能改进
由于有了标准期限支持,.NET 7将在发布后的18个月内得到支持。
https://devblogs.microsoft.com/dotnet/announcing-asp-net-core-in-dotnet-7/
在.NET 7中宣布ASP.NET核心的文章。
这篇文章提供了以前关于新功能和变化的文章的链接集合。
https://devblogs.microsoft.com/dotnet/winforms-enhancements-in-dotnet-7/
关于.NET 7中Windows Forms的新功能和变化的文章。
可访问性的改进和修复
高DPI和缩放的改进
数据绑定的改进
COM包装器和Native AOT
其他变化。
https://devblogs.microsoft.com/dotnet/dotnet-maui-dotnet-7/
适用于.NET 7的.NET MAUI已被发布。
在.NET 7中,包括地图控件,改进了移动端的渲染性能,并在桌面上进行了各种改进。
https://devblogs.microsoft.com/dotnet/wpf-on-dotnet-7/
关于.NET 7中WPF的新功能和变化的文章。
性能。
装箱/拆箱
分配
杂项
无障碍设施
修复缺陷
升级基础设施
https://devblogs.microsoft.com/dotnet/announcing-ef7/
Entity Framework Core 7(EF7)已经发布。
这篇文章重申了Entity Framework Core 7的新功能和变化。
JSON列
使用LINQ进行JSON查询
使用SaveChanges更新JSON
其他JSON列
批量更新和删除
单行更新和删除
快速保存更改
删除不需要的事务
插入多行
每个具体类型的表(TPC)的继承映射
自定义数据库优先的模板
生成的实体类型的定制
自定义模型构建规则
删除规则
添加规则
用于添加、更新和删除的存储程序的映射
新的或改进的拦截器和事件
物质化拦截
延迟初始化的连接字符串
各种小的改进
Entity Framework Core 7以.NET 6为目标,可在.NET 6(LTS)或.NET 7中使用。
https://devblogs.microsoft.com/dotnet/announcing-fsharp-7/
关于F# 7的公告,现在可用于.NET 7。该文章介绍了以下特点。
支持接口的静态抽象成员
更容易使用SRTP
强制性财产检查
init范围和仅有的init属性
参考装配支持
F#独立的部署和Native AOT
https://devblogs.microsoft.com/dotnet/welcome-to-csharp-11/
关于C# 11的公告,它现在可以在.NET 7中使用。该文章介绍了以下特点。
UTF-8字符串
原始字符串
对静态成员的抽象化
列表模式
必要成员
https://devblogs.microsoft.com/nuget/announcing-nuget-6-4-signed-central-delivered/
NuGet 6.4已经发布。
NuGet 6.4包含在Visual Studio 2022和.NET 7中,也可以作为一个独立的可执行文件下载。
这篇文章介绍了该版本所包括的以下方面
中央软件包管理现在可供操作使用。
用GlobalPackageReference在任何地方使用一个PackageReference
通过定义一个GlobalPackageReference将包添加到所有项目中
提高了Visual Studio所有标签中加载软件包的性能
NuGet签名包的验证
改进Visual Studio中的认证
NuGet.exe的本地化
https://devblogs.microsoft.com/visualstudio/visual-studio-2022-17-4/
Visual Studio 2022的17.4版现在已经推出。
.NET 7
C++
Arm64
回滚
企业支持
LTSC支持
来自Windows Updaet for Business的安全更新
通过Visual Studio管理模板的管理政策
删除不支持的组件
协作和团队
Arm64扩展和VisualStudio.Extensibility扩展模型
Git工具
发布多库支持
微软团队工具包
生态系统
生产力
选择匹配突出显示
音频提示
数据表可视化器
呼叫堆栈窗口中的异常堆栈框架
在测试资源管理器中清除和过滤测试结果
业绩
测试搜索的平行化
测试执行的有效并行化
优化Visual Studio和测试运行器进程之间的通信
Git分支切换
改进了文件保存响应
C++索引
在文件中搜索和替换
语言服务设置切换优化
单元测试性能改进
关于Arm64支持和Windows Update for Business的更新以及Visual Studio回滚的更多信息,请参见以下详细文章。
Arm64 Visual Studio正式来了! 博客[3]
将Visual Studio更新部署到注册在Windows Update for Business中的设备上 - Visual Studio 博客[4]
介绍Visual Studio Rollback! 博客[5]
最后,它还通知说,下一个版本的预览版,即Visual Studio 2022 17.5 Preview 1,现在也可以使用。
支持Azure容器注册中心和Azure容器应用程序
支持SQL Server 2022
对Markdown更深入的支持
用正则表达式设置标签颜色
新的快速添加项目体验
集成终端作为网络项目中的F5目标
与Windows认证代理集成,以改进登录方式
对SDK风格项目的过程中VSIX支持
https://devblogs.microsoft.com/visualstudio/visual-studio-17-4-is-now-available/
Visual Studio 2022 for Mac v17.4已经发布。
该版本包括停靠窗口、用户界面改进,如字体和行距设置、调试器用户界面改进、MAUI以及对.NET 7和C# 11的支持。
Visual Studio 2022 for Mac v17.5 Preview 1也已推出,并被吹捧为在运行时更新到.NET 7和改进字体支持。
https://devblogs.microsoft.com/dotnet/announcing-ml-net-2-0/
ML.NET 2.0和新版本的Model Builder已经发布。
模型生成器中的文本分类情景
句子相似性API
代码器支持
AutoML的改进
模型生成器的高级设置
https://devblogs.microsoft.com/dotnet/whats-new-in-orleans-7/
Orleans 7.0已经发布。
Orleans 团队成为.NET团队的一部分,并与.NET 7合作,将性能提高了150%以上。文章讨论了性能的改进、开发经验的改善、简化识别Grain和Stream的方法等。
https://www.youtube.com/playlist?list=PLdo4fOcmZ0oVlqu_V8EXUDDnPsYwemxjn
.NET Conf 2022的会议视频播放列表,包括.NET 7的发布公告。
https://github.com/advisories/GHSA-8g2p-5pqh-5jmc
在1.1.3和2.0.0至2.1.1版本的Microsoft.Data.SqlClient以及4.8.4版本的System.Data.SqlClient中发现信息泄露漏洞。
在高负荷下发生超时时,该漏洞可能会对异步执行的查询返回不正确的结果。
在Microsoft.Data.SqlClient的1.1.4或2.1.2和System.Data.SqlClient的4.8.5中已经修复,如果你使用此类软件包,需要进行更新。
https://devblogs.microsoft.com/dotnet/dotnet-framework-november-2022-security-and-quality-rollup-updates/
.NET框架的2022年11月安全和质量累积更新已经发布。
该版本修复了一个与Microsoft.Data.SqlClient有关的漏洞(如上图)以及几个与WPF和运行时有关的缺陷。
https://devblogs.microsoft.com/dotnet/november-2022-updates/
.NET 6.0.11和.NET Core 3.1.31已经发布。
它包括几个错误和改进。这篇文章还重申了更新到.NET 6的建议,因为.NET Core 3.1将在今年12月13日停止支持(EOL)。
https://github.com/mysql-net/MySqlConnector/releases/tag/2.2.0
Async MySqlConnector 2.2.0已经发布。
这个版本包括对.NET 7的支持,取消了对.NET 4.5的支持以及其他一些改进。
https://cakebuildnet.medium.com/cake-v3-0-0-released-b5555129a0f5
Cake v3.0.0已经发布。
该版本支持.NET 7和C# 11、TaskOf
、多目标支持、构建提供者的改进、对插件所依赖的Cake.Core版本的3.0建议,以及其他一些改进和修复。
https://blog.jetbrains.com/dotnet/2022/11/07/nuget-central-package-management-comes-to-jetbrains-rider/
宣布在Rider中支持NuGet的中央包管理。
你现在可以用Rider 2022.3 EAP和支持NuGet 6.2或更高版本的SDK来试试。这篇文章展示了如何设置它以及中央包管理的一些提示。
https://devblogs.microsoft.com/ifdef-windows/windows-community-toolkit-labs-experiments-are-here/
关于Windows社区工具包实验室的文章。
Windows Community Toolkit Labs是一个实验性实现的图书馆,然后才被纳入Windows Community Toolkit。文章介绍了诸如Rive播放器、配置卡和配置扩展器等控件,以及如何使用WCT实验室。
https://github.com/npgsql/npgsql/releases/tag/v7.0.0
Npgsql 7.0.0已经发布。
NpgsqlDataSource,它实现了DbDataSource。
通过Microsoft.Extensions.Logging改进了日志记录。
支持逻辑复制协议版本3
一些破坏性的变化。
https://azure.microsoft.com/en-us/updates/generally-available-azure-static-web-apps-now-fully-supports-net-7/
现在Azure静态网络应用程序支持.NET 7。
我们可以使用.NET 7 Blazor WebAssembly应用程序并使用.NET 7 Blazor构建Azure函数。
https://techcommunity.microsoft.com/t5/apps-on-azure-blog/announcing-the-net-7-for-azure-functions-isolated-worker-process/ba-p/3671398
现在,Azure Functions孤立的工作程序中已经支持.NET 7。
https://azure.github.io/AppService/2022/11/08/dotnet7_ga.html
现在Azure App Service上支持.NET 7。
https://blog.jetbrains.com/dotnet/2022/11/10/dotnet-days-gamedev-day-online-2022-recordings/
10月下旬JetBrains的.NET和游戏开发在线活动的会议记录现在可以获得。
JetBrains .NET Days Online 2022 - YouTube[6]
[JetBrains GameDev Day Online 2022 - YouTube](
https://qiita.com/advent-calendar/2022/csharplang
齐塔公司2022年的C#活动日历。
https://tech.guitarrapc.com/entry/2022/11/10/004625
关于更新Visual Studio时如何处理.NET SDK的文章。
https://tech.guitarrapc.com/entry/2022/11/11/031555
关于在Linux环境下用.NET 7 SDK构建WPF应用程序的文章。
https://zenn.dev/mayuki/articles/c4728ae9cdef8e
Visual Studio 2022 17.4及以上版本中Microsoft.CodeAnalysis.Analyzers警告的原因和解决方法。
https://betterprogramming.pub/create-a-text-to-image-generator-using-dall-e-api-in-c-net-7df58d940e79
一篇关于从.NET中调用DALL-E的API来生成图像的文章。
https://dev.to/microsoft365/build-a-stock-update-notification-bot-for-microsoft-teams-using-c-and-teams-toolkit-for-visual-studio-mfl
关于如何使用Visual Studio的Teams Toolkit在C#中实现股票更新通知机器人的文章。
https://medium.com/@marius.munteann/redis-as-a-database-with-redis-om-2601a48b5c04
关于如何使用Redis OM将Redis当作数据库的文章。
redis/redis-om-dotnet: Redis和.NET的对象映射,以及更多[7]
https://qiita.com/gushwell/items/663538393baef926c4c4
关于如何使用Microsoft.AspNetCore.Mvc.Versioning进行API版本管理(如/v1/api,/v2/api等)的文章。
https://qiita.com/kaz-matsubara/items/7c3284dd6b38fe4489fb
文章介绍了我们在将AWS Lambda的.NET Core 3.1应用程序迁移到.NET 6时的做法。
https://auth0.com/blog/whats-new-in-dotnet-7-for-authentication-and-authorization/
文章总结了.NET 7中认证和授权的变化和新功能。
https://weblog.west-wind.com/posts/2022/Nov/07/Avoid-WebDeploy-Locking-Errors-to-IIS-with-Shadow-Copy-for-ASPNET-Core-Apps
关于使用WebDeploy部署在IIS中运行的ASP.NET Core应用程序时如何避免文件锁定错误的文章。
这篇文章解释了如何启用影子复制(从.NET 6开始就可以实验性地使用),以及如何进行WebDeploy。
https://github.com/mk3008/SqModel
解析、处理和以其他方式重构SQL语句的库。
https://zenn.dev/mkmonaka/articles/2e70c3c2354b45
ASP.NET Core 对绿色线程(虚拟线程/Goroutine)的实验性支持
https://twitter.com/davidfowl/status/1589859605508943873?s=20&t=hoFWdpO1noqmq9W_g80r3Q
David Fowler大佬正在让.NET绿色线程(虚拟线程/Goroutine)试验与Kestrel一起运行。这个东西很难展示,但这个调用堆栈让他非常高兴。
如下图所示,方法栈的入口已经变为了GreenThreadStartFunc
。
.NET 官方网站重新设计的故事
https://twitter.com/davidpine7/status/1589819551977701377?s=12
image-20221116191443869尽管在WinForms中出现了一些nullable注解的编译错误,但从.NET v5.0到.NET 7的编译在五分钟内就完成了
https://twitter.com/rickbrewpdn/status/1590059027945631744?s=12
image-20221116191635292ASP.NET核心框架堆栈图
https://twitter.com/davidfowl/status/1590165613506613248?s=12
image-20221116191823885Akka.NET的故事在.NET 7(启用PGO)的基准测试中更快。
https://twitter.com/aaronontheweb/status/1591474543339634691?s=12
image-20221116191939928 image-20221116192052652 image-20221116192025251什么是用特定的分隔符拼接字符串的最快方法,请看.NET 7
https://twitter.com/DaveCallanIE/status/1591799079306203136
image-20221116192207509国内板块由 InCerry 进行整理 : https://github.com/InCerryGit/WeekRef.NET/blob/master/input_zh-CN/2022/2022-11-15.md
其余内容来自 Myuki WeekRef,由InCerry翻译(已获得授权) : https://github.com/mayuki/WeekRef.NET/blob/master/input/2022/2022-11-15.md
由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.NET周报-国内文章》板块进行贡献,需要推广自己的文章或者框架、开源项目可以下方的项目地址提交Issue或者在我的微信公众号私信。
格式如下:
10~50字左右的标题
对应文章或项目网址访问链接
200字以内的简介,如果太长会影响阅读体验
https://github.com/InCerryGit/.NET-Weekly
[1]
WPF: https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/overview/?view=netdesktop-6.0
[2]Blazor: https://learn.microsoft.com/zh-cn/aspnet/core/blazor/?view=aspnetcore-7.0
[3]Arm64 Visual Studio正式来了! 博客: https://devblogs.microsoft.com/visualstudio/arm64-visual-studio-is-officially-here/
[4]将Visual Studio更新部署到注册在Windows Update for Business中的设备上 - Visual Studio 博客: https://devblogs.microsoft.com/visualstudio/deploy-visual-studio-updates-to-devices-enrolled-in-windows-update-for-business/
[5]介绍Visual Studio Rollback! 博客: https://devblogs.microsoft.com/visualstudio/introducing-visual-studio-rollback/
[6]JetBrains .NET Days Online 2022 - YouTube: https://www.youtube.com/playlist?list=PLQ176FUIyIUbSS1HBVrqEyNHpfSh166KW
[7]redis/redis-om-dotnet: Redis和.NET的对象映射,以及更多: https://github.com/redis/redis-om-dotnet