.NET周刊【9月第2期 2024-09-08】

欢乐狗  金牌会员 | 昨天 21:21 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 545|帖子 545|积分 1635

国内文章

WPF 从裸 Win 32 的 WM_Pointer 消息获取触摸点绘制笔迹

https://www.cnblogs.com/lindexi/p/18390983
本文将告诉各人如何在 WPF 里面,吸取裸 Win 32 的 WM_Pointer 消息,从消息里面获取触摸点信息,利用触摸点信息绘制简单的笔迹。
dotnet 读 WPF 源代码笔记 从 WM_POINTER 消息到 Touch 事件

https://www.cnblogs.com/lindexi/p/18403860
本文记载我读 WPF 源代码的笔记,在 WPF 底层是如何从 Win32 的消息循环获取到的 WM_POINTER 消息处理转换作为 Touch 事件的参数。
利用分布式锁在ASP.NET Core中实现防抖

https://www.cnblogs.com/wucy/p/18394437/aspnetcore-distributed-lock-debounce
本文先容了防抖技术在ASP.NET Core中的应用,包括分布式锁和当地锁的实现方法。通过定义IDistributedLock接口,实现了Redis分布式锁,利用SETNX指令确保唯一性,并提供了LUA脚本以支持过期设置。文章还讨论了在单机情况中利用ConcurrentDictionary实现当地锁的可能性,夸大了在差别应用场景中选择合适锁机制的重要性。
C#设计模式入门实战教程

https://www.cnblogs.com/Can-daydayup/p/18395421
设计模式是面向对象设计中反复出现题目的解决方案,旨在提高代码的可重用性、可读性和体系可维护性。设计模式分类为创建型、结构型和行为型模式。创建型模式关注对象创建过程,包括单例模式、工厂方法等。结构型模式关注类或对象的组合,如适配器、装饰器等。行为型模式着重对象间通讯,如策略模式、观察者模式等。详细实现和示例代码拜见C#版本设计模式,推荐阅读《设计模式之禅》。项目源码和优秀项目收录见GitHub和Gitee链接。
.NET 8.0 文档管理体系网盘功能的实现

https://www.cnblogs.com/1312mn/p/18392313
Dorisoy.Pan 是一个基于 .NET 8 和 WebAPI 的文档管理体系,集成多种技术如 Autofac、MediatR 和 EF Core,支持 MySQL 和 SQL Server 数据库。它能在多平台上运行,提供全异步方法和安全认证机制,开放源码且易于定制。前端利用 Node.js 和 Angular,后端支持跨平台部署。项目提供完整的文档管理流程和30余项焦点功能,是学习 .NET 8 的理想资源。
C#/.NET/.NET Core技术前沿周刊 | 第 3 期(2024年8.26-8.31)

https://www.cnblogs.com/Can-daydayup/p/18393370
文章先容了最新的C#/.NET/.NET Core技术,包括.NET Aspire 8.2的发布、BinaryFormatter从.NET 9中移除、Pinecone .NET SDK的先容、.NET Community Toolkit 8.3的发布以及C#开辟工具包的更新等内容。​此外,还提到了一些特定应用场景下的技术实现,如在.NET Core中灵活利用反射、利用asp.net core 8和vue3实现高效音视频通话、摄像头数据采集方案和利用Visual Studio分析.NET Dump等。
.NET 8.0 前后分离快速开辟框架

https://www.cnblogs.com/1312mn/p/18387692
本文先容了一个基于.NET 8.0 和 Vue 的前后端分离框架YuebonCore,适用于多种管理软件开辟。框架提供组织机构管理、脚色用户管理、权限分配等多种焦点功能,接纳主流技术栈如ASP.NET Core MVC、SqlSugar、Swagger和Vue.js。这使得开辟过程高效便捷,适用于中小规模项目标快速启动与迭代。框架带有代码生成器、日志管理、定时任务和多应用管理等实用工具,并支持租户模式和用户定义主题风格。
C#自定义控件—指示灯

https://www.cnblogs.com/guoenshuo/p/18397557
本文先容了如何在C#中利用GDI绘制指示灯控件。利用Pen绘制外环,SolidBrush填充内圆。定义了颜色、间隙、外环宽度等属性,通过设置颜色列表来获取当前颜色。通过两种方法实现控件闪烁效果,其中一种利用定时器控制内圆透明色,另一种通过改变控件的Visible属性来实现整体闪烁。定时器的Interval属性可以调整闪烁频率。代码中详细描述了可能的颜色选项和属性设置,提供了一种可视化状态指示的实用方法。
如何排查线上w3wp.exe CPU高的题目,利用到了WinDbg、Visual studio来分析IIS历程池的.dmp文件

https://www.cnblogs.com/Jerseyblog/p/18396090
最近发现一个基于.NET 4.8的旧网站在IIS上运行时CPU过高。初步尝试利用windbg分析历程池的转储文件,但因利用不匹配的任务管理器创建.dmp文件导致结果不准确。作者总结了如何正确创建转储文件的履历:利用与历程池位数一致的任务管理器。文章也先容了用Visual Studio分析.dmp文件的方法,夸大匹配工具和版本的重要性,并发起在实际题目出现时尽快找到题目原因。
图穷匕见-所有反DDD模式都是垃圾

https://www.cnblogs.com/xiaoweiyu/p/18395637
本文探讨领域驱动设计(DDD)的重要性和应用原则。作者夸大DDD夸大界限明白、降低复杂度、减少技术复杂度,以控制软件本钱。通过明白元素关系和熟悉业务复杂度,DDD支持软件工程本钱控制原则。反DDD模式被视为不符合软件工程本钱长处。文章指出,违背DDD原则可能导致体系复杂度失控,夸大实践DDD以提拔体系维护性和长期性能。总结认为,DDD是掌控软件复杂度的有用方法,得当长期迭代和业务导向的软件体系。
.NET 8 + WPF 企业级工作流体系

https://www.cnblogs.com/1312mn/p/18395595
AIStudio.Wpf.AClient 6.0 是一个基于.NET 8的企业级工作流体系框架,利用WPF、Prism.DryIoc和MVVM设计模式。此框架集成了ASP.NET Core后端与Blazor共同利用,并提供了AOP与模子关联映射等高级功能。功能模块包括主动更新、日志记载、代码生成器、工作流策略及拖拽编程等。其快速预览方式支持当地SQLite数据操作,无需服务器。此项目适用于代码生成与大屏界面设计,支持多窗口和多屏模式。用户可以在GitHub和相同的MySQL数据库。这个框架还引入了AOP和MAP等特性,提拔了扩展性。功能包括主动更新、AOP日志记载、代码生成器、当地服务和通用CRUD配置等。客户端可在无服务器条件下通过SQLite运行。提供了GitHub和Gitee项目地址以供访问和下载。
C#自定义控件—流动管道

https://www.cnblogs.com/guoenshuo/p/18391637
这篇文章先容了如何在C#中绘制一个动态流动管道,包括管道的渐变色矩形和半圆的绘制,以及流动条的绘制方法。文章通过关键的绘图方法步骤详细解说了如何利用Graphics、Brush、Pen等工具举行绘制,并先容了实现虚线效果的技术。
肉夹馍(Rougamo)4.0.1 异步方法变量调试修复与IoC系列扩展

https://www.cnblogs.com/nigture/p/18390997
肉夹馍是一款编译时AOP组件,不需初始化或繁琐配置,支持各种方法类型。4.0.1修复了调试时检察方法内变量值的题目。新增IoC/DI扩展包,支持Microsoft.Extensions.DependencyInjection和Autofac。版本号遵循相应IoC组件的NuGet主版本号。提供了利用扩展包的代码示例。
.NET 多版本兼容的精美 WinForm UI控件库

https://www.cnblogs.com/1312mn/p/18389654
本文先容了ReaLTaiizor,一款适用于WinForms开辟的开源UI控件库,支持从.NET Framework 4.8到.NET 8的多个版本。它具备美观的界面和丰富的控件选择,方便用户个性化和自定义项目,使应用程序更专业。通过添加ReaLTaiizor引用并安装其包,可快速利用。文章提供了源码和演示效果图,方便读者了解控件库的实现和利用效果。此外,还先容了实际应用的案例和多样化的主题选项,以提拔应用程序的视觉效果。
C#自定义控件—仪表盘

https://www.cnblogs.com/guoenshuo/p/18395549
文章先容了如何在C#中利用GDI绘图技术创建仪表盘用户控件。内容详细描述了仪表盘的属性定义、外环和刻度绘制,以及中心点和指针的实现方法。通过设置各种属性,如颜色、半径、字体等,实现差别的监控值显示效果。
.NET WebSocket高并发通讯壅闭题目

https://www.cnblogs.com/kybs0/p/18395504
项目中利用WebSocket举行通讯时,遇到了因大文件解压频繁导致的超时题目。主要分析了基于kaistseo/UnitySocketIO-WebSocketSharp的历程间通讯机制。发送和吸取消息利用TCP举行毗连,在数据量大时,利用ManualResetEvent导致延迟。进一步分析了WebSocketSharp的同步锁机制,指出在高并发场景下存在通讯壅闭风险。解决过程中利用了锁机制来限制并发操作,夸大了在高并发情况中同步措施的重要性。
利用 Dependify 工具探索 .NET 应用程序依赖项

https://www.cnblogs.com/shanyou/p/18397601
大型项目中,依赖项管理因复杂性、依赖链和缺乏文档而具挑战性。Dependify 是一个工具,帮助在 .NET 应用中可视化依赖关系,支持 CLI 和 NuGet 包,可在 Visual Studio 中利用。它提供任务依赖管理和生成式 AI 集成,便于项目依赖管理、进度可视化及主动化。Dependify 适用于差别开辟场景,帮助识别题目和瓶颈。
.NET 最好用的验证组件 FluentValidation

https://www.cnblogs.com/1312mn/p/18393208
文章先容了FluentValidation,一个功能强大的.NET验证框架,支持链式操作和多平台。详细说明了安装方法和在Program.cs和Startup.cs中的利用步骤,以及它支持的验证器和版本兼容性。
一个开源、跨平台的.NET UI框架 - Avalonia UI

https://www.cnblogs.com/Can-daydayup/p/18397253
本文先容了Avalonia UI,这是一个开源的.NET跨平台UI框架,利用自己的渲染引擎支持Windows、macOS、Linux、Android、iOS和WebAssembly等平台,实现统一外观和行为。文中提供了操作指南和示例项目供开辟者快速入门,还列出项目源码和文档的访问链接,并夸大了其在C#/.NET/.NET Core优秀项目中的职位。
C#自定义控件—旋转按钮

https://www.cnblogs.com/guoenshuo/p/18401032
本文先容C#用户控件中旋转按钮的实现方法。主要涉及控件中心坐标获取、背景和内圆绘制、矩形和圆点的填充,以及文本和鼠标点击事件的创建。通过指定中心坐标举行图形旋转,实现按钮的主动和手动旋转。还先容了通过鼠标事件触发展示确认对话框以更改开关状态。
.NET 压缩/解压文件

https://www.cnblogs.com/kybs0/p/18398891
.NET技术中,解压和压缩ZIP文件固然不复杂,但性能和进度处理很重要。本文先容了System.IO.Compression、SharpZipLib及DotNetZip的利用和性能测试。System.IO.Compression适用于简单压缩任务,API简洁,但缺乏高级功能。测试显示解压847M文件耗时8484ms,得当简单场景。SharpZipLib支持多种格式和高级功能,如加密和分卷,API设计良好,组件稳定。利用示例展示了解压和获取文件大小的实现。文章为技术选型提供参考。
利用.NET源生成器(SG)生成项目标版本号信息

https://www.cnblogs.com/vipwan/p/18395495
本文先容如何利用AnalyzerConfigOptionsProvider获取引用项目标文件夹和命名空间,并通过剖析*.csproj文件生成版本信息。代码演示了用正则表达式读取项目文件并提取版本号,展示了项目文件夹和顶级命名空间的利用方法。
C#自定义控件—文本显示、文本设值

https://www.cnblogs.com/guoenshuo/p/18393718
文章先容了如何绘制方便的文本显示和设定组件(TextShow, TextSet),以简化标签显示及文本颜色自定义。主要内容包含纯定义属性及其相关代码,包括字体、文本颜色、变量名称、变量值、单位和控件刻度,并提供了文本设定的入口、离开及按键事件的方法。
利用 Roslyn 分析器和修复器对.cs源代码添加头部解释

https://www.cnblogs.com/vipwan/p/18401835
本文先容如何利用Roslyn的CodeFixProvider和DiagnosticAnalyzer来实现C#文件头部解释功能。通过创建FileHeaderAnalyzer分析器,检测缺少头部解释的文件,并生成对应的分析提醒。分析器查抄文件的第一个SyntaxToken是否为解释行,如果不是,则报告诊断。随后,通过AddFileHeaderCodeFixProvider修复器主动为文件添加头部解释,设置默认的解释模板,实现对文件的主动修复。该方法可提高代码的规范性和可维护性。
事件发件箱模式在 .NET 云原生开辟中的应用(基于Aspire)

https://www.cnblogs.com/savorboard/p/18401708/aspire-cap
这篇文章先容了在.NET云原生开辟中利用Aspire、DotNetCore.CAP等构建发件箱模式的应用。发件箱模式在分布式体系中确保可靠消息传递,解决事件提交和消息发送差别步、消息丢失、重复以及顺序题目。文章详细描述实现步骤,包括创建发件箱表、修改应用代码和实现发件箱发布器。DotNetCore.CAP库简化了这一过程,支持幂等消耗者,确保数据一致性。示例代码展示了在ASP.NET Core中利用CAP举行事件发布和处理,体现其在分布式情况中保证消息传递可靠性的功能。
Git Extensions:一个.NET开源的 Git 图形用户界面(GUI)工具

https://www.cnblogs.com/Can-daydayup/p/18402906
本文先容了Git Extensions,一个用于管理Git存储库的.NET开源GUI工具。该工具与Windows资源管理器和Visual Studio集成,支持提交、推送、拉取等常见Git操作,并提供图形化的提交历史记载检察功能。它内置差别和合并工具,支持子模块和多语言界面,且可通过脚本和插件举行扩展。此外,提供详细的安装说明和项目源码链接。该项目已被收录到C#/.NET优秀项目和框架精选中。
WPF 保姆级教程怎么实现一个树形菜单

https://www.cnblogs.com/lvpp13/p/18400310
本文先容了如何通过修改TreeView的模板和样式来实现动态菜单的效果。首先创建一个基本的TreeView,然后修改其模板,通过去掉默认背景致并添加新的border元素,改变视觉效果。接着,通过设置trigger调整选中状态下border的可见性和颜色。在所有TreeViewItem中应用相同的样式,以避免重复劳动。终极,通过设置TreeView的ItemContainerStyle来统一效果。
多线程、任务、异步的区别

https://www.cnblogs.com/ggtc/p/18392358
Task和Thread的区别在于Task通过TaskScheduler举行调度,TaskScheduler决定任务在哪个线程上执行。本文通过两个示例详细解释了TaskScheduler的实现,一个示例是每个任务创建一个新线程,另一个是利用线程池。每个示例包括创建任务调度器、将任务交给调度器,以及任务的调度和执行。
主题

Windows App SDK 1.6 中的新增功能

https://blogs.windows.com/windowsdeveloper/2024/09/04/whats-new-in-windows-app-sdk-1-6/
Windows App SDK 1.6 已发布。
此版本包括对本机 AOT 的支持、将 WebView2 版本迁移到 NuGet 引用、新的包部署 API、对 TabView 选项卡分离的改进以及其他一些控件改进和 API 添加。
2.8.12 版 · StackExchange/StackExchange.Redis

https://github.com/StackExchange/StackExchange.Redis/releases/tag/2.8.12
StackExchange.Redis 2.8.12 已发布。
此版本添加了对哈希字段过期命令的支持,添加了对“HSCAN NOVALUES”的支持,并修复了多个错误。
在“Azure 开辟者 - .NET Aspire Day 2024”中增强您的云开辟技能 - .NET 博客

https://devblogs.microsoft.com/dotnet/enhance-your-cloud-development-skills-at-azure-developers-dotnet-aspire-day-2024/
在线运动 Azure 开辟者 - .NET Aspire Day 2024 将于 9 月 18 日(日本时间 9 月 19 日凌晨 1:00)举行。
文章先容了运动中将分发的内容。
文章、幻灯片等

C# 中更快的字典 - NDepend 博客

https://blog.ndepend.com/faster-dictionary-in-c/
它先容了一些本领,比方 TryAdd 和 CollectionMarshal 辅助方法来快速处理 Dictionary。
轻松停靠和浮动工具窗口 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/easily-dock-and-float-tool-windows/
关于通过按住 Ctrl 键并双击 Visual Studio 中停靠窗口的标题来取消停靠/重新停靠到原始位置的功能。
【网络公式】尝试反编译传播-Qiita

https://qiita.com/abetakahiro123/items/f3bcb4e1351d62c7b0dd
我尝试反编译,看看聚集表达式传播(..)在编译时是如何扩展的。
dotInsights | 2024 年 9 月

https://blog.jetbrains.com/dotnet/2024/09/03/dotinsights-september-2024/
JetBrains 2024 年 9 月的 .NET 相关信息择要。
在 2024 年拉斯维加斯 DEVintersection 上探索 .NET - .NET 博客

https://devblogs.microsoft.com/dotnet/discover-dotnet-at-dev-intersection-las-vegas-2024/
DEVintersection 将于 9 月 9 日在拉斯维加斯举行,先容与 .NET 相关的会议。
将 GitHub Copilot 纳入您的一样平常流程 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/incorporate-github-copilot-into-your-daily-flow/
引入了一些功能,可帮助您在 Visual Studio 2022 17.11 中利用 GitHub Copilot 简化工作流程。

  • 通过内嵌谈天调整输入发起
  • 将内联谈天移至谈天窗口以获取更多上下文
  • 直接从编辑器明白符号
  • 利用 GitHub Copilot 修改代码
Dev Proxy v0.20 改进了模拟 API 错误和用于构建集成的新 API - Microsoft 365 开辟人员博客

https://devblogs.microsoft.com/microsoft365dev/dev-proxy-v0-20-with-improved-simulate-api-errors-and-a-new-api-for-building-integrations/
在 Dev Proxy v0.20 中引入了增强的 API 错误模拟和长途控制等新功能。
Entity Framework Core 和 SqlClient 的毗连弹性

https://blog.codeinside.eu/2024/09/02/connection-resiliency-for-ef-core-and-sql-data/利用 Entity Framework Core 和 SqlClient 时如何确保毗连弹性。
增强您的 Visual Studio 身份验证体验 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/enhancing-your-visual-studio-authentication-experience/
Visaul Studio 2022 17.11 中改进的身份验证体验(在 Visual Studio 本身中)的说明。
本文先容了切换到 Web Access Manager 的好处。
实现可以利用.Net8中添加的聚集表达式举行初始化的一流聚集

https://zenn.dev/coppla/articles/b2124d70a1bb5a
如何实现可以用聚集表达式表达(初始化)的您自己的类型。
加入 JetBrains .NET Days Online 2024 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2024/09/02/dotnet-days-online-2024/
有关 JetBrains .NET Days Online 2024 的信息,这是 JetBrains 举办的在线 .NET 运动。
该运动将从9月25日开始举办,为期两天,将分发与.NET相关的各种会议。
在 .NET 8 中利用 tar 文件

https://andrewlock.net/working-with-tar-files-in-dotnet/
关于利用 .NET 8 标准库处理 tar 格式文件。
本文解释了归档操作,比方创建、提取和查抄 tar.gz 归档文件的内容,以及该库的功能限制和题目。
【TorchSharp】C#机器学习①手写字符识别应用的实现-Qiita

https://qiita.com/kkaneko1090/items/5773edca77f042393966
了解如何利用 TorchSharp 实现机器学习手写识别应用。
库、存储库、工具等。

迷你软件/MiniExcel:快速、低内存、简单的 Excel .NET 帮助程序,用于导入/导出/模板电子表格(支持 Linux、Mac)

https://github.com/mini-software/MiniExcel
用于快速且节省内存的 Excel 文件操作的库。
AnnulusGames/RandomExtensions:为 .NET 和 Unity 提供更好的随机数实用程序和加权聚集。

https://github.com/AnnulusGames/RandomExtensions
提供随机抽象和多种算法快速实现的库。除了 System.Numerics 和 Unity 的扩展之外,它还支持加权随机数的处理。
版权声明

由于笔者没有那么多时间对国内的一些文章举行整理,欢迎各人为《.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,欢迎各人加入。

本文由博客一文多发平台 OpenWrite 发布!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

欢乐狗

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表