首页 > 其他分享 >.NET周报 【7月第1期 2023-07-02】

.NET周报 【7月第1期 2023-07-02】

时间:2023-07-04 09:55:31浏览次数:50  
标签:02 www cnblogs C# https 2023 NET com

国内文章

C# 实现 Linux 视频聊天、远程桌面(源码,支持信创国产化环境,银河麒麟,统信UOS)

https://www.cnblogs.com/shawshank/p/17420469.html

园子里的有朋友在下载并了解了《C# 实现 Linux 视频会议(源码,支持信创环境,银河麒麟,统信UOS)》中提供的源码后,留言给我说,这个视频会议有点复杂了,代码比较多,看得有些费劲。问我能不能整个简单点的Demo,只要有视频聊天和远程桌面的功能就可以。于是,我就又写了一个Demo来供大家参考,它可以在Windows和Linux(包括国产OS,如银河麒麟、统信UOS、深度Deepin等)上运行。

[MAUI]用纯C#代码写两个漂亮的时钟

https://www.cnblogs.com/jevonsflash/p/17519792.html

本文介绍了如何在.NET MAU中实现Material You风格的时钟小部件,包括锯齿表盘、时钟指针和文本路径的绘制方法。文中给出了详细的代码示例和效果图,以及相关的字体配置和Xaml文件。

Linux 上的 .NET 如何自主生成 Dump

https://www.cnblogs.com/huangxincheng/p/17516112.html

本文介绍了如何在Windows和Linux平台上自主生成dump文件,以便于诊断.NET程序的异常情况。文中分别介绍了使用Win32 API的MiniDumpWriteDump方法和使用Microsoft.Diagnostics.NETCore.Client库的WriteDump方法的代码示例和运行结果。

使用C#编写.NET分析器-第二部分

https://www.cnblogs.com/InCerry/p/writing-a-net-profiler-in-c-sharp-part-2.html

这篇文章介绍了Kevin Gosse大佬使用C#编写.NET分析器的系列文章之一。.NET分析器常被用于APM(应用性能诊断)、IDE、诊断工具中,比如Datadog的APM,Visual Studio的分析器以及Rider和Reshaper等等。本文主要讲述了如何将COM对象映射到.NET中的一个实际对象实例,以及如何使用GCHandle来获取与该句柄关联的固定地址,并使用GCHandle.FromIntPtr从该地址检索句柄。

以管道的方式来完成复杂的流程处理

https://www.cnblogs.com/artech/p/17469614.html

之前参与一个机票价格计算的项目,为他们设计了基本的处理流程,但是由于整个计算流程相当复杂,而且变化非常频繁,导致日常的修改、维护和升级也变得越来越麻烦,当我后来再接手的时候已经看不懂计算逻辑了。为了解决这个问题,我借鉴了“工作流”的思路,试图将整个计算过程设计成一个工作流。但是我又不想引入一个独立的工作流引擎,于是写了一个名为Pipelines的框架。顾名思义,Pipelines通过构建Pipeline的方式完成所需的处理流程,整个处理逻辑被分解并实现在若干Pipe中,这些Pipe按照指定的顺序将完成的Pipeline构建出来。Pipeline本质上就是一个简单的顺序工作流,它仅仅按序执行注册的Pipe。这个简单的Pipelines框架被放在这里,这里我不会介绍它的设计实现,只是简单地介绍它的用法,有兴趣的可以查看源代码

【.NET源码解读】深入剖析中间件的设计与实现

https://www.cnblogs.com/Z7TS/p/17494203.html

.NET本身就是一个基于中间件(middleware)的框架,它通过一系列的中间件组件来处理HTTP请求和响应。在之前的文章《.NET源码解读kestrel服务器及创建HttpContext对象流程》中,已经通过源码介绍了如何将HTTP数据包转换为.NET的HttpContext对象。接下来,让我们深入了解一下.NET是如何设计中间件来处理HttpContext对象。

记一次 .NET 某埋线管理系统 崩溃分析

https://www.cnblogs.com/huangxincheng/p/17513935.html

经常有朋友跟我反馈,说看你的文章就像看天书一样,有没有一些简单入手的dump 让我们先找找感觉,哈哈,今天就给大家带来一篇入门级的案例,这里的入门是从 WinDbg 的角度来阐述的,这个问题如果你通过 记日志,分析代码 的方式,可能真的无法解决,不信的话继续往下看呗!

前段时间有位朋友微信上找到我,说他的程序崩溃了,也没找出是什么原因,然后就让朋友抓一个崩溃的dump让我看看。

老生常谈:值类型 V.S. 引用类型

https://www.cnblogs.com/artech/p/17509624.html

我在面试的时候经常会问一个问题:“谈谈值类型和引用的区别”。对于这个问题,绝大部分人都只会给我两个简洁的答案:“值类型分配在栈中,引用类型分配在堆中”,“在默认情况下,值类型参数传值(拷贝),引用类型参数传引用”。其实这个问题有很大的发挥空间,如果能够从内存布局、GC、互操作、跨AppDomain传递等方面展开,相信会加分不少。这篇文章独辟蹊径,从“变量”的角度讨论值类型和引用类型的区别。

.NET Core 允许跨域的两种方式实现(IIS 配置、C# 代码实现)

https://www.cnblogs.com/czzj/p/NETCoreCors.html

当把开发好的 WebApi 接口,部署到 Windows 服务器 IIS 后,postman 可以直接访问到接口并正确返回,这并不意味着任务完成,毕竟接口嘛是要有交互的,最常见的问题莫过于跨域了。若前端文件是在当前接口文件下的 wwwroot 文件夹下,那么接口的访问就没问题,因为是同协议(http、https)、同地址(域名)、同端口,不存在跨域问题。但是,若前端和接口不是部署在一起的,那么一般都会存在跨域问题,本文将通过两种方式介绍如何使接口允许跨域请求。

记一次 .NET 某企业采购平台 崩溃分析

https://www.cnblogs.com/huangxincheng/p/17508154.html

前段时间有个朋友找到我,说他们的程序有偶发崩溃的情况,让我帮忙看下怎么回事,针对这种 crash 的程序,用 AEDebug 的方式抓取一个便知,有了 dump 之后接下来就可以分析了。

Docker 中的 .NET 异常了怎么抓 Dump

https://www.cnblogs.com/huangxincheng/p/17505313.html

有很多朋友跟我说,在 Windows 上看过你文章知道了怎么抓 Crash, CPU爆高,内存暴涨 等各种Dump,为什么你没有写在 Docker 中如何抓的相关文章呢?瞧不上吗?哈哈,在DUMP的分析旅程中,跑在 Docker 中的 .NET 占比真的不多,大概10个dump有 1-2 个是 docker 中的,市场决定了我的研究方向,为了弥补这一块的空洞,决定写一篇文章来分享下这三大异常下的捕获吧。

主题

【英文】AI Assistant 来到 ReSharper | .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/06/26/resharper-ai-assistant/

ReSharper 2023.2 EAP 6 已发布。

此版本包含一个利用大型语言模型的人工智能助手。这将允许您通过 Visual Studio 中的聊天询问有关改进代码的问题。

更多 C# 支持、LINQ 嵌入提示、dotTrace Linux、macOS 源代码视图等。

【英文】Rider 推出 AI 助手! | .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/06/26/rider-ai-assistant/

Rider 2023.2 EAP 6 已发布。

此版本包含一个利用大型语言模型的人工智能助手。这提供了诸如聊天式帮助、提交消息生成和文件生成等功能。

其他更新的 C# 支持、新用户的新 UI 默认值、每个项目的自定义颜色、可访问性改进、添加的结构视图过滤器和排序、Roslyn(源生成器)改进和模板、远程调试器,例如 ARM32 支持

【英文】Cysharp/MagicPhysX:.NET PhysX 5 绑定到所有平台(win、osx、linux),用于 3D 引擎、深度学习、游戏专用服务器。

https://github.com/Cysharp/MagicPhysX

物理引擎 PhysX 5 的 .NET 绑定库已发布。

https://twitter.com/neuecc/status/1674688540339499010?s=12

文章、幻灯片等

【英文】从 .NET 8 SDK Preview 4 开始,AssemblyInformationalVersion 属性现在具有哈希值

https://devadjust.exblog.jp/29614447/?fbclid=IwAR0xwYcrAFtldsg6H1-jr9OHBo4zSBNIOA7sof4LTakIpqWyyzOpaVvdyco

关于使用.NET 8 Preview 4 SDK构建的程序集的AssemblyInformationVersion现在有源代码修订。

文章还介绍了防止修改的设置方法。

【英文】在 ASP.NET Core 6.0 上实现 WebSocket 客户端和服务器(C#)

https://medium.com/bina-nusantara-it-division/implementing-websocket-client-and-server-on-asp-net-core-6-0-c-4fbda11dbceb

如何在 ASP.NET Core 中实现 WebSocket 服务器并与客户端通信。

【日文】C# 中的语义内核:协调多个插件 - Qiita

https://qiita.com/fsdg-adachi_h/items/1fe094f4f1a0556045ae

如何使用语义内核链接多个插件。

【英文】使用 Qodana 提升 C# 代码质量:迈向完美之旅 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/06/29/elevating-csharp-code-quality-with-qodana-a-journey-towards-perfection/

隆重推出 Jetbrains Qodana,它可以分析和报告 C# 代码。

【英文】Visual Studio Marketplace 的开源替代品避免退役 -- Visual Studio 杂志

https://visualstudiomagazine.com/articles/2023/06/27/open-vsx-registry.aspx

关于 Open VSX 注册表,它是 Visual Studio Marketplace 的替代方案。

【英文】Microsoft Store 开源系列 — 应用服务库 - #ifdef Windows

https://devblogs.microsoft.com/ifdef-windows/microsoft-store-open-source-series-appservices-library/

它引入了一种名为 AppService 的机制,该机制与 Microsoft Store 应用程序和完全受信任的 Win32 应用程序中使用的 UWP 进行通信,以及一个利用它的库。

本文提到使用一种机制通过 Community Kit Lab 的 Source Generator 生成代理。

【英文】使用新的配置绑定程序源生成器:探索 .NET 8 预览 - 第 1 部分

https://andrewlock.net/exploring-the-dotnet-8-preview-using-the-new-configuration-binder-source-generator/

对 .NET 8 Preview 3 中引入的 Microsoft.Extensions.Configuration 的基于源生成器的绑定器的讨论。

本文涉及如何安装它、它的实际工作原理以及当前的问题/限制。

https://qiita.com/jun1s/items/903570264d1bfb62cf14

在配置为使用 cookie 身份验证和 JWT 的 ASP.NET Core 应用程序中,如果使用 AntiForgery 并发生 JWT 刷新,AntiForgery 令牌验证失败以及如何解决它。

【英文】如何使用 RuntimeHelpers.IsReferenceOrContainsReferences 来微优化集合 - Gérald Barré

https://www.meziantou.net/how-to-use-runtimehelpers-isreferenceorcontainsreferences-to-micro-optimize-coll.htm

关于使用 RuntimeHelpers.IsReferenceOrContainsReferences 进行集合微优化。

例如,对于引用类型,在 Pop 等情况下需要从内部数组中删除引用,但对于值类型来说,有减少索引而不删除元素等技巧,IsReferenceOrContainsReferences 就很有用那时。

【英文】使用 StringBuilder 替换值

https://khalidabuhakmeh.com/using-stringbuilder-to-replace-values

关于使用 StringBuilder 进行字符串替换。

与使用 String 的 Replace 替换相比,使用 StringBuilder 可以减少分配。

【日文】我对 System.Diagnostics.Process.GetProcessesByName 的分配感到绝望,决定到另一个世界报仇 - Qiita

https://qiita.com/gazf/items/085a93cabf10e745e227

尝试以较少分配的方式重新实现 Process.GetProcessesByName。

【日文】模块初始值设定项的调用顺序

https://ufcpp.net/blog/2023/6/init-order/

存在多个模块初始值设定项(“ModuleInitializer”)时执行顺序的描述。

【英文】用 C# 编写 .NET 分析器 - 第 4 部分

https://minidump.net/writing-a-net-profiler-in-c-part-4-c54df903b9ce

使用 C# (NativeAOT) 创建 .NET 分析器系列的第 4 部分。

【英文】处理 Swashbuckle.AspNetCore.Cli 中的 FileLoadException - xin9le.net

https://blog.xin9le.net/entry/2023/06/25/230203

针对Swashbuckle.AspNetCore.Cli不支持Top-level statements导致生成失败问题的对策。

它展示了如何实现创建专门称为 IHost 的方法。

推文

MessagePack-CSharp 从个人帐户移至组织(预发行版本支持源生成器)。

https://twitter.com/neuecc/status/1674179032349306884?s=12

image-20230703202925014


您可以通过设置 .csproj 中的 MapPath 属性来更改堆栈跟踪中显示的路径。

https://twitter.com/karenpaynemvp/status/1674152970668351488?s=12

image-20230703203018660

image-20230703203032770


C# 12 内联数组合并到 Visual Studio 2022 17.7 Preview 3 中。

https://twitter.com/jcouv/status/1673780113434091520?s=12

image-20230703203059707

版权声明

由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.NET周报-国内文章》板块进行贡献,需要推广自己的文章或者框架、开源项目可以下方的项目地址提交Issue或者在我的微信公众号私信。

格式如下:

  • 10~50字左右的标题
  • 对应文章或项目网址访问链接
  • 200字以内的简介,如果太长会影响阅读体验

https://github.com/InCerryGit/.NET-Weekly

.NET性能优化交流群

相信大家在开发中经常会遇到一些性能问题,苦于没有有效的工具去发现性能瓶颈,或者是发现瓶颈以后不知道该如何优化。之前一直有读者朋友询问有没有技术交流群,但是由于各种原因一直都没创建,现在很高兴的在这里宣布,我创建了一个专门交流.NET性能优化经验的群组,主题包括但不限于:

  • 如何找到.NET性能瓶颈,如使用APM、dotnet tools等工具
  • .NET框架底层原理的实现,如垃圾回收器、JIT等等
  • 如何编写高性能的.NET代码,哪些地方存在性能陷阱

希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET性能问题和宝贵的性能分析优化经验。目前一群已满,现在开放二群。

如果提示已经达到200人,可以加我微信,我拉你进群: lishi-wk

另外也创建了QQ群,群号: 687779078,欢迎大家加入。

抽奖送书活动预热!!!

感谢大家对我公众号的支持与陪伴!为庆祝公众号一周年,抽奖送出一些书籍,请大家关注公众号后续推文!

image-20230703203249615

标签:02,www,cnblogs,C#,https,2023,NET,com
From: https://www.cnblogs.com/InCerry/p/dotnet_week_23_7_1.html

相关文章

  • 2023ACM暑假训练day 8-9 线段树
    目录DAY8-9线段树训练情况简介题DAY8-9线段树训练地址:传送门训练情况简介题题意:思路:......
  • 2023/7/3学习日记
    1.温故了原码,反码,补码的概念2.lowbit函数,用来返回二进制数最低位的1:intlowbit(intx){ returnx&(-x);}3.返回二进制数含有多少1的函数:intcnt(intx){ res=0; while(x>0){ res++; x-=lowbit(x); } returnres;}4.算法学习——状态压缩dp,进阶搜索,双向广度......
  • OnlyOffice文件回调接口net core 版本
    publicclassOfficeFilesController:BaseController//Controller{///<summary>///保存OnlyOffice文件///</summary>[HttpPost]publicvoidSaveOnlyOfficeFile(){varfileDataJson=string.Em......
  • 2023/7/4常见WEB漏洞原理分析
    一、SQL注入漏洞SQL注入攻击(SQLInjection),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。在设计程序,忽略了对输入字符串中夹带的SQL指令的检查,被数据库误认为是正常的SQL指令而运行,从而使数据库受到攻击,可能导致数据被窃取、更改、......
  • IDEA: File and code Templates IntelliJ IDEA 2023.1
     https://www.jetbrains.com/help/idea/file-template-variables.html  /**encoding:utf-8*版权所有${YEAR}涂聚文有限公司*许可信息查看:*描述:#Author:geovindu,GeovinDu涂聚文.#IDE:IntelliJIDEA2023.1Java17#Datetime:${YEAR......
  • SSO2.0 19-20230703
         ......
  • ASP.NET Core 6框架揭秘实例演示[41]:跨域资源的共享(CORS)N种用法
    同源策略是所有浏览器都必须遵循的一项安全原则,它的存在决定了浏览器在默认情况下无法对跨域请求的资源做进一步处理。为了实现跨域资源的共享,W3C制定了CORS规范。ASP.NET利用CorsMiddleware中间件提供了针对CORS规范的实现。(本文提供的示例演示已经同步到《ASP.NETCore6框架揭......
  • .net core 自定义配置文件
    publicvoidConfigureServices(IServiceCollectionservices){varconfigBuilder=newConfigurationBuilder().SetBasePath(Path.Combine(Directory.GetCurrentDirectory(),"Config")).AddJsonFile(&q......
  • 每日总结2023年7月3日
    今日记录:早上6点半起床,8点到达石家庄站,9点30到16点在高铁上,17点到的家,走访了亲戚遇到的问题:因为没有学习所以没有问题。明天的计划:因为7月2日(昨天)把虚拟机给配置好了,现在蓝屏问题已经解决了(昨天忘记发博客了今天在【明日计划】下面做一下补充),所以明天把Centos调一下,准备搞一下集......
  • 2023.7.3打卡
    2023.7.3(1)、今天早上七点起床跑步,很久没锻炼了,跑了两公里有点跑不动了,上午来了县城,热死了,早知道就早点出发了,坐车的一小时我复习了200个高中英语词汇,到了之后发现没带毛巾,又出去买了根毛巾,顺便吃了个午饭,睡了会午觉,下午陪弟弟妹妹们打了会游戏,吃完晚饭五点半,出去打球打到十点才回......