https://www.cnblogs.com/czwy/p/18192720
文章介绍了利用WPF的Shape和动画功能,模仿CSS/SVG实现复杂的线条光效动画效果。首先,通过Polyline和StrokeDashArray实现了虚线动画,再通过StrokeDashOffset添加动画效果。然而,由于WPF不支持角向渐变,作者另寻两种方法来实现渐变效果,一种是基于多条线段的动画,最后提到可以使用Avalonia的ConicGradientBrush实现角向渐变。文章展示了实现代码和效果,但还涉及到多条线段拐角处颜色连贯等细节问题。
https://www.cnblogs.com/anding/p/18176056
从C#7开始支持的模式匹配可以灵活地对数据进行条件匹配和提取,已经包括多种匹配模式。这些模式包括类型和声明模式、常量模式、关系模式、逻辑模式、属性模式、列表模式和 var 模式,可以通过布尔逻辑词来组合使用。模式匹配增加编写代码的简便性,并提高代码清晰度。通过 https://sharplab.io/ 可以查看C#编译后的代码。文章详细介绍了各种模式的使用方法和示例,包括类型和声明模式、常量模式、关系模式、逻辑模式、属性模式、位置模式等。
https://www.cnblogs.com/vipwan/p/18194062/biwen-quickapi-scheduletask
文章介绍了如何从零开始制作一个简易的任务调度器。重点包括定义了任务执行的接口和抽象类、通过特性标注任务执行周期等信息的元数据、定义调度器接口用以判断任务是否可执行,以及实现了基于配置文件的任务元数据存储。技术栈主要涉及BackgroundService和NCrontab库。
https://www.cnblogs.com/gmmy/p/18193549
本文探讨了在C#中使用表达式树实现深克隆时遇到循环引用问题的解决方案。文章解释了循环引用的概念,并通过引入延迟策略和字典来跟踪对象引用,从而避免无限递归。核心思想是如果遇到先前已经创建的类型,则复用该对象,通过延迟赋值确保新对象能够正确复制原对象属性。
https://www.cnblogs.com/tianqing/p/18188562
动态管理视图(DMVs)可用于监控SQL Server中的查询执行计划和性能统计。主要的DMVs包括sys.dm_exec_query_stats用于查询统计信息,sys.dm_exec_sql_text用来获取SQL文本,sys.dm_exec_cached_plans提供执行计划统计,以及sys.dm_exec_query_plan用于获取执行计划。通过定期运行查询,对比统计数据,可以检测执行计划的变化,并据此优化性能。为了准确监测,建议将数据记录在持久化表中,并可能需要结合多个DMVs来进行综合分析。
https://www.cnblogs.com/kugar/p/18199022
服务器配置包括2c4g的CentOS作反代和8c16g的Windows 2019运行IIS、SQL Server、MongoDB和Redis。面临的问题是晚间MongoDB、SQL Server和WebAPI进程CPU使用率暴增,导致数据处理不及时。问题源于新迁移的站点前端代码错误,创建多个定时获取数据的实例,造成自我DDoS。通过业务流程优化、MongoDB客户端设置调整、WebAPI缓存、NGINX限流和日志关闭等措施解决,效果明显,减少了CPU占用和数据处理时间。相关技术包括ASP.NET Core 8, EasyCaching, FreeSql和Redis。
https://www.cnblogs.com/Can-daydayup/p/18197033
在ASP.NET Core Web中,AutoMapper库可以自动完成对象之间的映射,减少手动编写代码。这样做可以提高开发效率、减少错误和bug,并简化代码结构。AutoMapper是一个.NET对象映射库,它的安装方法是通过NuGet包。你需要创建源对象和目标对象,并在映射配置文件中定义它们之间的映射规则。最终,在程序中通过依赖注入的方式使用IMapper接口来进行对象映射操作。
https://www.cnblogs.com/shanyou/p/18197134
Dapr是一套帮助简化分布式系统开发的构建块集合,涵盖服务通信、缓存、工作流等领域。与.NET Aspire结合使用可以优化本地开发体验,简化故障排除和调试过程,并且无需繁复的YAML配置。文章中以构建三个服务的示例来展示Dapr与.NET Aspire的整合,并概述了利用.NET Aspire进行Dapr实验的过程。文中提到的服务包括:Alice(ASP.NET Core服务)、Bob(ASP.NET Core服务)和Carol(Node.js Express Web应用程序)。这样的组合让开发者能够关注功能开发,减少设定环境的时间,并通过OpenTelemetry简化本地多应用交互的故障排除。
https://www.cnblogs.com/weskynet/p/18198774
文章介绍了一个用于快速实现多款扫码器通用扫码功能的方法,无论在.net framework或.net core等环境中均适用。首先须引入Wesky.Net.OpenTools包,在非依赖注入项目中可以直接创建对象使用,在.net core及以上环境建议使用依赖注入,并实现了扫码器的连接和扫码功能。作者还建议存储扫码器客户端实例以保持长连接,并逐步展示了如何在.net环境下注册依赖注入、实现扫码器服务和创建API控制器。文末提供了控制器代码示例。
https://www.cnblogs.com/Can-daydayup/p/18199342
大姚分享的Wu.CommTool通讯调试工具使用C#、WPF等技术开发,支持Modbus RTU和MQTT调试,界面色彩丰富。它具有自动解析数据帧、防粘包等特征。相关源码托管于GitHub,并被C#/.NET/.NET Core优秀项目和框架精选收录,有助于开发者了解最新动态和最佳实践。DotNetGuide技术社区提供.NET开发者学习资料与技术交流,促进开发者成长。
https://www.cnblogs.com/edisonchou/p/-/industrial-control-plc-connector-02
Edison介绍了使用C#创建Windows Form项目,通过S7NetPlus库连接西门子S7-1500 PLC,并实现数据读写。文章涵盖了连接、断开PLC,读取PLC数据块和PLC数据块写入等功能的实现。他首先复习了PLC模拟环境的搭建,然后详细讲解了如何使用C#代码操作PLC,针对字符串类型的数据处理也有详尽说明。此外,Edison还提供了读写PLC中字符串类型数据的辅助类S7DataWriter。
https://www.cnblogs.com/alwaysinsist/p/18190582
EDP平台通过业务模型管理功能来实现数据行视图与列属性的权限管控。业务模型是EDP平台核心,包含了数据的增删改查和权限控制。通过创建业务模型类并继承ModelPermissionBase类,我们可以定义和管理业务模型,从而管控数据行、列的权限。提供的代码示例展示了如何创建并设置一个学生业务对象,包括SQL查询设置和实体属性的定义。
https://www.cnblogs.com/Can-daydayup/p/18194700
Redis从7.4版本开始修改为RSALv2和SSPLv1协议,不再开源。微软研究院推出的Garnet项目是一款基于.NET的分布式缓存数据库,开源且对Redis客户端完全兼容。Garnet表现出更好的吞吐量、可扩展性和低延迟,在Azure VM上的测试中表现出色,且支持跨平台。性能测试对比Redis、KeyDB和Dragonfly,显示Garnet在多客户端连接和请求处理上占优。项目源码和使用文档已开源在GitHub,且被收录至C#/.NET/.NET Core优秀项目和框架精选。
https://www.cnblogs.com/weskynet/p/18194418
本文介绍了如何在Windows系统的远程服务器上启用和设置NTP服务,包括修改注册表中的设置、打开防火墙端口、重启Windows时间服务,及通过命令行验证。另外,介绍了使用Wesky.Net.OpenTools包在程序中进行时间同步的方法,并提供了获取NTP服务器时间的核心代码的详细解析。
https://www.cnblogs.com/weskynet/p/18191869
文章介绍了使用Wesky.Net.OpenTools包对Windows注册表进行操作的方法,包括创建、设置、读取、删除注册表值和注册表项的操作。代码演示了如何通过IRegistryManager接口完成以上各种操作,及其对应的内核源码部分,其中包括了对 Windows API 函数的调用。
https://www.cnblogs.com/xlgwr/p/18195207
本文介绍了.Net 8.0中IceRPC的传入响应处理和拦截器。传入响应包含状态代码、错误消息、响应字段和有效负载。拦截器可以在发送请求前后进行数据处理,并可实现调用链短路。文章展示了C#中如何编写和安装拦截器,通过调用管道把拦截器串联起来,以便对请求和响应进行处理。作者在结语中鼓励持续实践以提高能力,并开放性地邀请读者交流。
https://www.cnblogs.com/shanyou/p/18199037
著名的.NET开源社区Mono增加了对LoongArch(龙架构)的支持,.NET社区主干分支已出现LoongArch64架构。Mono框架是跨平台的,支持Linux、macOS、Windows等操作系统,包含C#编译器、.NET运行环境和类库。LoongArch架构得到支持后,.NET软件生态能原生移植到LoongArch64平台。龙芯.NET团队的Mono已通过多个应用程序测试,包括unity3D。龙芯公司为龙芯版本.NET提供安全更新和性能优化,发布了基于LoongArch64的Mono6.13.0-1,增强了稳定性,并修复了多个bug。
https://www.cnblogs.com/PatrickLiu/p/18155084
这篇文章是关于《Advanced .Net Debugging》系列中介绍多线程同步问题的一部分,内容涉及多线程应用程序常见问题的解决方法、线程同步组件及原理,以及多线程环境下的最佳实践。文章包含了具体的调试工具和环境设置说明,如使用Windows 10操作系统、Windbg Preview和NTSD调试工具,以及.Net 8.0环境。作者还提供了目录结构以方便读者查看,并举例了一些同步原语的代码,如事件同步原语、互斥体、信号量、监视器、读写锁和线程池等,并介绍了调试源码。
https://www.cnblogs.com/Can-daydayup/p/18188418
大姚在Visual Studio中推荐了四款代码格式化工具和扩展插件,包括ReSharper、CSharpier、CodeMaid VS2022、XAML Styler等,这些都能自动化并优化代码布局和风格,提高代码的可读性。这些工具支持多种语言如C#、XAML、ASP.NET等,并且可以通过Visual Studio的扩展商店下载。另外,介绍了DotNetGuide技术社区,一个针对.NET开发者的交流和学习平台。
https://www.cnblogs.com/shanyou/p/18196813
.NET Aspire预览版7包含大量API更改,致力于确保最终发布前的API稳定性,版本号为8.0.0-preview.7.24251.11。更改内容涉及属性重命名、类重构、方法签名修改等,旨在提升一致性和易用性。Azure Service Bus等组件的属性名称更新以更清晰表达其含义。仪表板更新增强了视觉效果和多语言支持,容器镜像默认设置现在包含更完整的注册中心和标签信息。GitHub发布页面详细展示了API更新、ASP.NET Core升级、OpenTelemetry HTTP监测包更新、Docker镜像标签更新、组件服务修复改进等内容。此外,文档和测试也得到了增强,目的在于改善性能、稳定性和用户体验。
https://www.cnblogs.com/sanshi/p/18194672
本文讨论在ASP.NET Core项目中,如何在不需要验证特定模型属性的情况下处理文件上传。文章从一个实际案例出发,展示了一个模型验证导致的错误,并解决了这个问题。方法是在对应的处理器(Handler)中使用ModelState.Clear()清空模型状态。作者还进一步探讨了如何移除模型状态中的某些属性,给出了修改模型状态的思路和示例。
https://www.cnblogs.com/weskynet/p/18188836
Wesky.Net.OpenTools 1.0.3版提供了图片转Base64字符串的功能,能够自动识别图片后缀名,并转换成标准URI供Markdown使用。用户只需将转换得到的Base64字符串以Markdown格式添加到文本中,即可在支持Markdown的编辑器如Typora里展示图片。此功能支持多种图片格式,如bmp、gif、jpg、png等。
https://www.cnblogs.com/sanshi/p/18193981
ASP.NET Core RazorPages中可以在BaseModel基类中重载OnPageHandlerExecuting方法来对回发请求进行身份验证和操作中断。BaseModel继承自PageModel,通过检查请求数据或Cookie来确定访问的有效性,无效访问将弹出错误提示,并中断页面加载和回发事件。此外,开发者还可以使用AppBoxCore.Dapper 中的CheckPowerAttribute过滤器对某些页面进行权限验证,实现更加细致和工程化的权限控制。
https://www.cnblogs.com/chi8708/p/18200266
C# 特性是向代码元素添加元数据的一种方法,增强了代码的信息量和灵活性。定义特性类时可以指定其使用场合和是否允许多次应用。间通过反射获取特性信息。特性可以用在多种场景如数据验证、序列化控制、提供描述性元数据、实现依赖注入、单元测试、权限控制和面向切面编程等,对现代C#编程具有重要意义。
https://www.cnblogs.com/wuhuacong/p/18193612
本文进一步分析了EAV模型设计和其在Winform场景下的低代码实现。文章讨论了列表界面的重要性,并指出固定字段的界面虽然查询快速、个性化,但需要单独处理。提出了利用EAV模型,通过动态定义的业务表和字段,使用通用窗体来演化界面。此外,文章介绍了动态创建输入控件组以处理不同数据类型的查询字段,使用堆叠面板(StackPanel)以适应控件组的界面长度变化。还探讨了自定义条件查询,通过用户控件实现多条件组合查询,展现了界面效果。文章展示了相关代码段,提供了一系列的界面和控件处理方法。
https://www.cnblogs.com/ggtc/p/18190128
本文介绍了在WebSocket基础上实现文件和图片传输功能的方法。主要讨论了文件传输的二种方案:先发送元数据再发送文件数据,和定义协议打包元数据与文件数据一起发送。文章定义了RCP传输协议和相应对象结构,详述了不同类型消息(普通消息、文件、链接、图片)的数据格式,以及RCP在程序中的实体表示和序列化、反序列化方法。
https://www.cnblogs.com/vipwan/p/18194062
文章介绍了如何从零开始制作一个简易的任务调度系统。首先定义了任务执行的接口和抽象类,然后通过特性标注任务执行周期等信息。接下来定义了调度器接口以判断任务是否可执行。最后,如果需要实现可配置的任务调度或动态任务调度,还需定义一个存储所有任务元数据的Store,并实现了一个依赖于配置的Store。
https://www.cnblogs.com/chi8708/p/18196692
在C#中,程序集是包含类型和资源的单位,既可是EXE也可以是DLL。模块对应于源文件,包含类型、IL和元数据。类型是包含字段、属性、方法等的代码结构。程序集包含模块,模块包含类型,类型属于单个模块。这些元素共同构成完整的.NET应用程序。
https://www.cnblogs.com/chi8708/p/18194254
C#泛型是提高代码重用性、类型安全性、性能的编程范式,通过类型参数实现与任意数据类型一起工作的类、方法、接口和委托。泛型的基本语法包括泛型方法与类的定义及实例化,泛型接口、委托的声明和泛型约束的使用。泛型在集合类、数据结构、算法、数据库操作和网络编程等多个场景下都有广泛应用。
https://www.cnblogs.com/deali/p/18198867
本文围绕ASP.NET Core中利用ActionFilterAttribute实现面向切面编程(AOP)的自定义验证功能展开,详细介绍了创建ValidateClientAttribute以验证客户端ID的过程。文章首先提出了提高API安全性的重要性,然后通过详细的代码示例说明了如何从不同的源(查询参数、请求体、路由参数、请求头)获取客户端ID,并在数据库中进行验证。文章还解释了如何使用HttpContext的Items集合在不同组件间共享验证后的Client对象,同时指出HttpContext的作用和重要性。
https://www.cnblogs.com/lzhdim/p/18170822
作者整理了代码,改善了应用的欢迎界面窗体,创建成一个通用型类库,方便读者在自己项目中使用。提到指导如何利用进度文本显示应用加载进度,并且可设定为自动关闭。也提供了项目目录、源码介绍、运行界面的说明,以及源码下载链接,给出了使用欢迎界面的其他建议。
https://www.cnblogs.com/xlgwr/p/18192640
本文介绍了.Net 8.0中IceRPC的调用管道和传出请求的概念。调用管道是指通过调用器(Invoker)来发送请求和接收相应响应的整个过程。其中,IInvoker接口负责发起调用,并对请求进行如添加遥测字段、压缩等额外处理。调用管道有三种常见的类型:Leaf invoker、Interceptor和Pipeline。创建一个传出请求需要目标服务地址、操作名称、请求字段和有效负载等信息,其中请求字段和有效负载对管道内通信至关重要。文章还展示了序列图来解释请求有效负载的发送过程。
https://www.cnblogs.com/guojin-blogs/p/18188742
OpenVINO™ C# API是OpenVINO™库的一个.Net 包装器,支持在.NET和.NET Framework下使用C#进行深度学习模型推理加速。它与OpenVINO™ C++ API用法一致,并且可以方便地部署在不同硬件上。该API及相关项目示例代码可以在GitHub上获取,项目通过NuGet Package管理依赖。文章展示了如何使用OpenVINO™ C# API搭配PP-YOLOE模型进行对象检测,并具体介绍了依赖安装、项目输出细节。
https://www.cnblogs.com/feng-Ling/p/18146805
Math是C#的数学计算工具类,包含于System命名空间;Mathf是Unity中的数学计算结构体,包含于UnityEngine命名空间。常用Mathf方法包括计算圆周率PI、绝对值Abs、上舍入CeilToInt、下舍入FloorToInt、值钳制Clamp、最大值Max、最小值Min、n次幂Pow、四舍五入RoundToInt、平方根Sqrt、判断2的n次幂IsPowerOfTwo、判断正负数Sign、插值运算Lerp、三角函数和转换以及坐标系的应用。
https://github.com/npgsql/npgsql/releases/tag/v8.0.3
https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-may-2024-servicing-updates/
https://github.com/microsoft/WindowsAppSDK/releases/tag/v1.4.6
https://www.mongodb.com/blog/post/mongodb-provider-entity-framework-core-now-generally-available
https://blog.jetbrains.com/dotnet/2024/05/07/resharper-2024-1-2/
https://blog.jetbrains.com/dotnet/2024/05/07/rider-2024-1-2/
https://devblogs.microsoft.com/nuget/announcing-nuget-commands-in-c-dev-kit/
https://devblogs.microsoft.com/dotnet/may-release-of-csharp-dev-kit/
https://github.com/App-vNext/Polly/releases/tag/8.4.0
https://github.com/domaindrivendev/Swashbuckle.AspNetCore/releases/tag/v6.6.1
https://devblogs.microsoft.com/visualstudio/visual-studio-at-build-2024/
https://erikej.github.io/ef6/dotnet/2024/05/16/ef6-whatsnew.html
https://devblogs.microsoft.com/dotnet/whats-new-in-orleans-8/
https://learn.microsoft.com/en-us/dotnet/aspire/whats-new/preview-7
https://developer.wildernesslabs.co/Meadow/Release_Notes/v1/#v1110
https://qiita.com/SurferOnWww/items/67d8e8d86234ac138445
https://blog.ndepend.com/dotnet-generic-math/
https://www.youtube.com/watch?v=5KdICNWOfEQ&list=PLdo4fOcmZ0oX8eqDkSw4hH9cSehrGgdr1&index=5
https://zenn.dev/microsoft/articles/aspnetcore-blazor-dotnet8-wasm-with-apis
https://zenn.dev/zead/articles/f604f9ad31f941
https://qiita.com/toRisouP/items/12afeb98a0971095d409
https://andrewlock.net/an-introduction-to-primary-constructors-in-csharp-12/
https://qiita.com/noritama08/items/ed3f79e7feb061e36774
https://qiita.com/SurferOnWww/items/2dd628101923419cc44a
https://qiita.com/SurferOnWww/items/bd4e483cce7acaee4f30
https://qiita.com/SurferOnWww/items/06dc1e3df702596272ba
https://khalidabuhakmeh.com/aspnet-core-ssr-web-components-and-enhance-wasm
https://blog.axantum.com/2024/05/localizing-net-console-or-desktop.html?m=1
https://zenn.dev/yorimichi/articles/initial_csharp_nuxt3
https://steven-giesel.com/blogPost/50b84029-4f1e-4e6d-8fd1-0311b0605562
https://qiita.com/yaju/items/44b207477d1cb1c81bfb
https://zenn.dev/microsoft/articles/convert-vb-to-cs
https://blog.ndepend.com/csharp-discriminated-union/
https://devblogs.microsoft.com/dotnet/join-the-dotnet-team-microsoft-build-2024/
https://zenn.dev/inuinu/articles/528550aab764e8
https://devblogs.microsoft.com/dotnet/refactor-your-code-with-collection-expressions/
https://qiita.com/higege-amdeker/items/8150dcefe5d891a20c53
https://devblogs.microsoft.com/visualstudio/using-github-copilot-as-your-coding-gps/
https://blog.jetbrains.com/dotnet/2024/05/06/dotinsights-may-2024/
https://zenn.dev/tetr4lab/articles/35cd18af364499
https://qiita.com/qiitatosh/items/cc88e398be26e00fafe0
https://isadorasophia.com/articles/serialization/
https://zenn.dev/maedan/articles/c691e858e3fa44
https://towardsdev.com/how-to-connect-phi-3-mini-onnx-model-in-semantic-kernel-fc96b758129f
https://qiita.com/noobow/items/52ed93726b757e2a3dbc
https://qiita.com/atwits/items/f23283cc58ee2a24a79e
https://www.neko3cs.net/entry/separate-component-to-project-maui-blazor
https://speakerdeck.com/sansantech/sansan-20240515-2
https://speakerdeck.com/sansantech/sansan-20240515-1
https://github.com/NikiforovAll/keycloak-authorization-services-dotnet
由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.NET周刊-国内文章》板块进行贡献,需要推广自己的文章或者框架、开源项目可以下方的项目地址提交Issue或者在我的微信公众号私信。
格式如下:
https://github.com/InCerryGit/.NET-Weekly
相信大家在开发中经常会遇到一些性能问题,苦于没有有效的工具去发现性能瓶颈,或者是发现瓶颈以后不知道该如何优化。之前一直有读者朋友询问有没有技术交流群,但是由于各种原因一直都没创建,现在很高兴的在这里宣布,我创建了一个专门交流.NET性能优化经验的群组,主题包括但不限于:
希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET性能问题和宝贵的性能分析优化经验。目前一群已满,现在开放二群。
如果提示已经达到200人,可以加我微信,我拉你进群: ls1075
另外也创建了QQ群,群号: 687779078,欢迎大家加入。