国内文章

【ASP.NET Core】按用户等级授权

https://www.cnblogs.com/tcjiaan/p/17024363.html

本文介绍了ASP.NET Core如何按照用户等级进行授权。

在 C# 9 中使用 foreach 扩展

https://www.cnblogs.com/newbe36524/archive/2023/01/06/17018770.html

在 C# 9 中,foreach 循环可以使用扩展方法。在本文中,我们将通过例子回顾 C# 9 中如何扩展 foreach 循环。

MassTransit 知多少 | 基于StateMachine实现Saga编排式分布式事务

https://www.cnblogs.com/sheng-jie/archive/2023/01/02/17019926.html

本文介绍了如何通过MassTransit实现saga编排式分布事务。

『 再看.NET7』让json序列化体现多态

https://mp.weixin.qq.com/s/L3-vkd2e3mLPcopjUTEzfg

从System.Text.Json诞生,就在努力增加功能和提升性能,在.NET7中,又带来了多态的适配。

『 再看.NET7』新的访问修饰符——file

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

NET7到来时,C#11中添加了file访问修饰符。对,就是文件的意思,file是只能用来定义类型的访问修饰符,不能定义类型中的类成员,即使嵌套类也不可以。file是用来定义使用范围最小的类型访问修饰符,只限于在当前文件中,其他类型的成员内访问。

使用 .NET 标记游戏地图关键坐标点

https://mp.weixin.qq.com/s/-aUlTsI2IzbMNrq94OHVgQ

本文以天涯明月刀 OL 游戏的云上之城探索玩法为例,介绍如何使用 .NET 在游戏地图中标记大量关键坐标点。

.NET性能优化-使用RecyclableMemoryStream替代MemoryStream

https://mp.weixin.qq.com/s/fnWo-TcxgC_jepkC2ZQUPQ

今天给大家带来的这个优化技巧其实就是池化MemoryStream的版本RecyclableMemoryStream,它通过池化MemoryStream底层buffer来降低内存占用率、GC暂停时间和GC次数达到提升性能目的。

SqlServer 的主键索引真的是物理有序吗?

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

最近在看 SQL SERVER 2008 查询性能优化,书中说当一个表创建了聚集索引,那么表中的行会按照主键索引的顺序物理排列,这里有一个关键词叫:物理排列,如果不了解底层原理,真的会被忽悠过去,其实仔细想一想不可能实现严格的 物理排列 ,那对性能是非常大的损害,本篇我们就从底层出发聊一聊到底是怎么回事。

SQLSERVER 居然也能调 C# 代码 ?

https://mp.weixin.qq.com/s/g-AmmPIeMsW7ja9pO-yzEg

前些天看到一个奇怪的 Function 函数,调用的是 C# 链接库中的一个 UserLogin 方法,这就让我产生了很大的兴趣,众所周知 SQLSERVER 是 C++ 写的,那这里的 C++ 怎么和 C# 打通呢?而且 C# 是一门托管语言,需要 JIT 将其 native 化,这个 JIT 又在哪里呢?带着这些疑问一起研究下吧。

主题

【英文】paint.net 5.0 正式发布!

https://forums.getpaint.net/topic/121643-paintnet-50-is-now-available/

Paint.NET 5.0已经发布。

这个版本包括对压力检测的支持,基于GPU的渲染和图像处理,一个新的效果插件系统和各种性能的提升和改进。

它现在也使用.NET 7构建,传统的C++/CLI代码已被TerraFX.Interop.Windows取代。 .

【英文】ReSharper 2023.1 路线图 | .NET工具博客

https://blog.jetbrains.com/dotnet/2023/01/10/resharper-2023-1-roadmap/

ReSharper 2023.1 路线图。

  • 快捷方式方式修复
  • 过渡到进程外模型
  • 语法检查
    • 从内置拼写检查器迁移到JetBrains Grazie
  • 单元测试自动化
  • 本地化
    • 简体中文、日文、韩文
  • UX/UI重新设计
  • 其他
    • 网络开发
    • 更新对话

【英文】Rider 2023.1 路线图 | .NET工具博客

https://blog.jetbrains.com/dotnet/2023/01/10/rider-2023-1-roadmap/

Rider 2023.1的路线图。

  • 配置同步插件
  • 改进对Docker的支持
  • 数据库模式比较
  • 游戏开发
    • Unity

      • DOTS支持
    • 虚幻引擎
  • 语法检查
    • 从内置拼写检查器迁移到JetBrains Grazie
  • 杂项
    • UI
    • 新的用户界面调整
    • 本地化
      • 简体中文、日文、韩文

【英文】domaindrivendev/Swashbuckle.AspNetCore 发布v6.5.0版本

https://github.com/domaindrivendev/Swashbuckle.AspNetCore/releases/tag/v6.5.0

Swashbuckle.AspNetCore 6.5.0已经发布。

在这个版本中,.NET 7已经被添加到目标框架中,并且Swagger用户界面已经被更新。

【英文】grpc/grpc 发布v1.46.6版本

https://github.com/grpc/grpc/releases/tag/v1.46.6

gRPC 1.46.6(C-Core)已经发布。

该版本解决了zlib中的一个漏洞,并修复了几个bug。

【英文】fluentassertions/fluentassertions 发布v6.9.0版本

https://github.com/fluentassertions/fluentassertions/releases/tag/6.9.0

FluentAssertions 6.9.0已经发布。

增加了与TimeOnly相关的断言方法和对类型、方法等。

文章、幻灯片等。

【日文】[C#] 在DateTime中显示日本日历 - Qiita

https://qiita.com/ikuzak/items/b0fa005d267041890ed6

如何像R(2021)那样用日文字母格式化DateTime。

【日文】C#中的真正异步IO

https://zenn.dev/k_taro56/articles/csharp-true-async-io

关于是否使用FileStream的异步I/O,默认的useAsync设置为false,所以它不是异步I/O。

【英文】Entity Framework Core 7中的继承策略

https://medium.com/abp-community/inheritance-strategies-in-entity-framework-core-7-e0cfd42877a5

简要介绍一下EF 7中支持的TPC(Tables per Concrete Type),作为Entity Framework Core中存储继承模型的一种方式,以及EF 7之前支持的TPH和TPT。

【英文】SQLitePCLRaw和开源的可持续性

https://ericsink.com/entries/sqlitepclraw_sustainability.html

维护SQLitePCLRaw(SQLite的本地绑定)的现状、担忧和好处。

【英文】用C#和Pidgin解析模板语言| Zach on Code

https://zachoncode.dev/blog/parsing-template-language-with-csharp-and-pidgin/

描述了如何使用解析器库Pidgin实现模板语言。

【日文】ReactiveProperty v9.0.0的预发布版本出来了!

https://zenn.dev/okazuki/articles/reactiveproperty-v9-0-0-pre1

描述了ReactiveProperty v9.0.0预发布中的改进、重组和新类。

【英文】进程外ReSharper之路:异步类型化 | .NET工具博客

https://blog.jetbrains.com/dotnet/2023/01/05/resharper-out-of-process/

解释了我们在将ReSharper移至与Visual Studio分开的进程中(进程外)运行时遇到的障碍和正在做的事情。

【日文】[点播] .NET大会2022年回顾活动东京~微软日本社区活动之旅系列

https://info.microsoft.com/JA-ModApps-VDEO-FY23-12Dec-23-MKTO-FY23-dotnetconf-2022-Recap-Tokyo-Gated-video-SRGCM8691_LP01-

.NET大会2022年回顾活动东京会议的会议视频,可按需观看。

【日文】确定你是否不需要管理员权限就能在C#中写入文件夹 - Qiita

https://qiita.com/Alone-and-Slow/items/a2332bcb500051e19fbc

如何在Windows环境下检查你是否有对一个文件夹的写入权限。

【英文】测试 ASP.NET Core FastEndpoints | Khalid Abuhakmeh

https://khalidabuhakmeh.com/testing-aspnet-core-fastendpoints

对使用FastEndpoints(一个建立在ASP.NET Core上的框架)时的单元测试的解释。

【英文】在.NET 7中实现一个自定义配置提供者

https://medium.com/@gokerakce/implement-a-custom-configuration-provider-in-net-7-c0a195dcd05f

描述了如何在.NET 7中为Microsoft.Extensions.Configuration实现一个自定义配置提供者。

这篇文章实现了一个可以从SQL Server读取和重读数值的提供者。

【英文】如何为你的测试运行一次性数据库。 用Testcontainers提高你的集成测试准确性

https://blog.genezini.com/p/how-to-run-disposable-databases-for-your-tests.-improve-your-integration-tests-accuracy-with-testcontainers/

描述了如何使用Testcontainers为你的单元和集成测试运行一次性的数据库。

【英文】提高生产力的五个快捷键 - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/the-visual-studio-editor-can-do-that/

Visual Studio 提高生产力的五个快捷键

  • Ctrl+D: 复制一行
  • Ctrl+Shift+L: 删除整个行
  • Shift+Alt+.: 选择下一个相同的词
  • Alt+选择:方框(矩形)选择
  • Alt+Ctrl+鼠标点击:插入多个光标

【英文】令人困惑的.NET调试器:代理对象

https://washi.dev/blog/posts/debugger-proxy-objects/

描述了一种通过插入代理对象来欺骗反编译器和相关调试器的技术。

【日文】[C# 12候选] lambda表达式的默认参数和params参数 | UFCPP博客

https://ufcpp.net/blog/2023/1/lambda-default/

关于在lambda表达式中允许默认参数和params参数的改进,这是C#12的一个候选功能。

【英文】Rider 2022.3中的语言注入改进|The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/01/12/language-injection-improvements-in-rider-2022-3/

对Rider 2022.3的语言注入改进的介绍。

支持原始字符串字面,支持字符串连接中的完成字符串,支持LanguageInjection属性,支持.NET 7中的StringSyntax属性,等等。

【英文】调试编码文本 - Visual Studio博客

https://devblogs.microsoft.com/visualstudio/debugging-encoded-text/

对最新的Visual Studio预览版中的调试器文本可视化器的介绍。

预览中的文本可视化器可以显示编码和解码Base64和URL的结果,以及解码JWT的结果。

【英文】从最小的API处理程序中提取元数据:最小的API的幕后 - 第二部分

https://andrewlock.net/behind-the-scenes-of-minimal-apis-2-extracting-metadata-from-a-minimal-api-handler/

解释了如何从作为处理程序传递给Minimal API端点的Delegate中提取元数据,以及如何创建RequestDelegate。

开源库、资料库、工具等

【英文】jellyfin/jellyfin: 自由软件媒体系统

https://github.com/jellyfin/jellyfin

一个建立在.NET上的媒体服务器,如Emby或Plex。

【英文】JonPSmith/Net.LocalizeMessagesAndErrors: 这个库提供了额外的代码,使其更容易在你的.NET系统中支持不同的语言。掌握了这些信息后,我们就可以为客户提供服务了。

https://github.com/JonPSmith/Net.LocalizeMessagesAndErrors

属于.NET应用程序。

【英文】LINQ Me Up

https://linqmeup.com/

使用AI将SQL SELECT语句转换为LINQ的工具。

网站,文件,等等

推文


故事是这样的:C#有这么多的上下文关键字,你可以用看似保留字的标识符来定义东西,写出奇怪的代码。

https://twitter.com/jaredpar/status/1613615815231934468?s=12


在一些情况下,具有相同完全合格名称的同一个程序集在同一过程中被识别为不同的类型。 (例如,当AssemblyLoadContext不同时)。 这对大多数用户来说不是问题,但在Analyzer或Source Generator等情况下可能是个问题。

https://twitter.com/jaredpar/status/1613211080918192133?s=12

深入研究

【英文】重写Matrix3x2和Matrix4x4的实现方式 tannergooding - Pull Request #80091 - dotnet/runtime

https://github.com/dotnet/runtime/pull/80091

版权声明

由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.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周报【1月第2期 2023-01-13】的更多相关文章

  1. .NET周报【10月第3期 2022-10-25】

    国内文章 聊一聊被 .NET程序员 遗忘的 COM 组件 https://www.cnblogs.com/huangxincheng/p/16799234.html 将Windows编程中经典的COM ...

  2. .NET周报【11月第1期 2022-11-07】

    国内文章 开源·安全·赋能 - .NET Conf China 2022 https://mp.weixin.qq.com/s/_tYpfPeQgyEGsnR4vVLzHg .NET Conf Chi ...

  3. .NET周报【10月第1期 2022-10-11】

    本周精选 继C#实现await/async无栈协程几年后,davidwrighton实现了.NET绿色线程(有栈协程)的原型 https://github.com/dotnet/runtimelab/ ...

  4. .NET周报【10月第2期 2022-10-17】

    主题 宣布 .NET 7 发布候选版本 2 - .NET Blog https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-rc-2/ .N ...

  5. 七牛云 GO 语言周报【七月第 2 期】

    全世界有多少 Gopher? 上周的周报中,我们介绍了 Go 语言的排名已经进入到前十.那么世界上到底有多少 Gopher 呢? 作者列出了以下计算公式: Gopher 数量 = 全世界的开发者数量 ...

  6. F#周报2019年第11期

    新闻 Bolero:WebAssembly中的F# 尝试WebAssembly里的F# JetBrains的fsharp-support 2019.1 ML.NET 0.11发布 Outreachy内 ...

  7. F#周报2019年第16期

    新闻 Ionide试验版本 FSharp路线图介绍 Blazor官方预览 .NET Framework 4.8发布 .NET Core 3 Preview 4发布 需要来自FSharp.Data.Sq ...

  8. F#周报2019年第7期

    新闻 Visual Studio 2019预览版3,F#性能修复 Bolero 0.3发布,HTML模版热加载 Fantomas在线升级至Fantomas 2.9.2 使用F#开发的随机访问Excel ...

  9. F#周报2019年第17期

    新闻 .NET版本的Apache Spark Apache Spark预览版介绍 F# Apache Spark示例 微软Build 2019大会(5月6日至8日) Rider用于F#的解决方案内的重 ...

  10. F#周报2018年第51期

    新闻 有经验的开发者选择F# 2018年10佳技术讲话 试用F#开发WebAssembly Fable.Remoting: 刷新访问令牌 F#开发WebAssembly现在可以使用代码补全 Rider ...

随机推荐

  1. 知识图谱顶会论文(KDD-2022) kgTransformer:复杂逻辑查询的预训练知识图谱Transformer

    论文标题:Mask and Reason: Pre-Training Knowledge Graph Transformers for Complex Logical Queries 论文地址: ht ...

  2. vscode删除卸载残余

    1.删除安装插件C:/User/XXX/.vscode2.删除用户信息和缓存信息C:/User/XXX/AppData/Roaming/CodeC:/User/XXX/AppData/Roaming/ ...

  3. 题解 P6745 『MdOI R3』Number

    前言 不知道是不是正解但是觉得挺好理解. 科学计数法 将一个数表示为\(a\times 10^x\) 的形式.其中\(a\leq10\),\(x\) 为整数. \(\sf Solution\) 其实这 ...

  4. k8s集群正常kubectl用不了

    今天有个客户反馈k8s集群服务正常,业务也正常.kubectl get no敲入这个命令就有夯住了 仔细去检查配置发现少了一个config 最后在master-2上的config文件cp拷一份过来问题 ...

  5. rocky二进制安装mysql8.0

    (ubuntu的有点问题) 点击查看代码 #!/bin/bash Version=`cat /etc/os-release |awk -F'"| ' '/^NAME/{print $2}'` ...

  6. .NET 7 AOT 的使用以及 .NET 与 Go 互相调用

    目录 背景 C# 部分 环境要求 创建一个控制台项目 体验 AOT 编译 C# 调用库函数 减少体积 C# 导出函数 C# 调用 C# 生成的 AOT Golang 部分 安装 GCC Golang ...

  7. 设计模式学习(二十四):Spring 中使用到的设计模式

    设计模式学习(二十四):Spring 中使用到的设计模式 作者:Grey 原文地址: 博客园:设计模式学习(二十四):Spring 中使用到的设计模式 CSDN:设计模式学习(二十四):Spring ...

  8. mybatis的映射

    //一对一 <resultMap id="给resultMap取的id名" type="类名"> <result property=" ...

  9. YC-Framework版本更新:V1.0.10

    分布式微服务框架:YC-Framework版本更新V1.0.10!!! 本文主要内容: 1.V1.0.10版本更新主要内容2.YC-Framework相关系列文章分享 一.V1.0.10版本更新主要内 ...

  10. C++初阶(命名空间+缺省参数+const总结+引用总结+内联函数+auto关键字)

    命名空间 概述 在C/C++中,变量.函数和后面要学到的类都是大量存在的,这些变量.函数和类的名称将都存在于全局作用域中,可能会导致很多冲突.使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲 ...