.NET周刊【11月第2期 2024-11-10】

156 阅读15分钟

国内文章

.NET 全能高效的 CMS 内容管理系统

www.cnblogs.com/1312mn/p/18…

SSCMS 是一个完全开源的企业级内容管理系统,基于 .NET Core 开发,适合跨平台部署。其特点包括支持多终端发布和功能插件,具有完善的权限控制和安全机制,可通过标签和 API 接口进行二次开发。SSCMS 能管理多个网站和微信公众号,实现自动回复和用户管理等功能,提供多种内容模型和安全防护,并支持 Docker 部署。项目还提供详细开发文档及源码,用户可通过 GitHub 和 Gitee 获取项目更新。

.NET 全功能流媒体管理控制接口平台

www.cnblogs.com/1312mn/p/18…

AKStream是基于C#开发的全功能流媒体管理平台,支持GB28181、RTSP、RTMP等设备的控制。其具备低延时、标准Restful WebAPI接口和稳定的Sip信令网关。AKStream能在Linux、macOS、Windows系统运行,支持多种数据库。使用ZLMediaKit作为流媒体服务器,支持H265、H264等编码格式及流转换。其Web管理端AKStreamWebUI基于React和Vue框架,简化流媒体管理。用户可通过自动添加设备至数据库,实现设备管理和视频预览。平台提供流媒体服务的启动控制和配置热加载。项目代码可在GitHub和Gitee上获取。

一个.NET开源、轻量级的运行耗时统计库 - MethodTimer

www.cnblogs.com/Can-daydayu…

.NET开发中,MethodTimer是一个开源库,能在编译时自动注入计时代码,简化手动计时。开发者可创建控制台应用并安装Fody和MethodTimer.Fody包,通过Time属性在方法上添加计时代码,避免重复编写。MethodTimer在编译时生成的代码使用Stopwatch进行时间统计,可通过ILSpy查看。MethodTimeLogger类提供两种耗时记录方式,分别以毫秒或TimeSpan形式输出。项目开源地址在GitHub和Gitee,并被收录于优秀项目和框架精选集中,供开发者借鉴和提交建议。

.NET开发者福音:JetBrains官方宣布 Rider 非商用免费开放!

www.cnblogs.com/Can-daydayu…

JetBrains宣布WebStorm和Rider IDE免费供非商业用途,支持学习、开源和业余开发。Rider是跨平台IDE,适用于整个.NET技术堆栈和游戏开发,支持C#、ASP.NET、Unity等。Rider提供智能代码补全、强大调试和单元测试功能,简化NuGet管理,支持多种版本控制系统,提升开发效率。

为 .NET Conf 2024 做好准备之本地社区活动 .NET Conf China 2024 启动

www.cnblogs.com/shanyou/p/1…

.NET Conf 2024将于11月12日至14日举行。作为一个面向.NET生态系统的虚拟活动,旨在通过主旨演讲和展示为开发者提供关于.NET 9新功能的深入探讨,包括AI、Web和移动开发等领域的新技术。所有活动将被录制并上传至YouTube,便于后续观看。此次会议为开发者提供与专家互动和沟通的机会,是探索.NET前沿技术的绝佳平台。.NET Conf China 2024也即将举办,将展示云原生改进和智能应用开发的最新进展,为开发者提升生产力和简化部署流程提供支持。

我的博客网站为什么又回归Blazor了

www.cnblogs.com/Dotnet9-com…

这篇文章描述了博客网站开发的历程,开发者使用了多种技术如MVC、Razor Pages、Vue、Go、Blazor等,网站经历了近10次迭代。目前网站使用Blazor和静态SSR技术,结合了Ant Design风格,提升了访问速度。文章感激了Known等开源项目的支持,介绍了网站的开源代码结构及其基于Blazor的开发框架KnownCMS的特点。提到了静态SSR技术的优点,如降低托管成本和提高可扩展性,并解释了静态SSR与Blazor Server和Blazor Client的区别及其SEO优越性。

.NET Core 泛型底层原理浅谈

www.cnblogs.com/lmy5215006/…

文章介绍了泛型的优势如代码重用、类型安全和性能提升,重点在于减少装箱/拆箱带来的性能问题。泛型通过开放和封闭类型实现代码复用,但开放类型需在JIT编译阶段生成多种本机代码,影响性能。CLR通过共享方法体优化,引用类型实例能共享,而值类型则不行。示例代码验证了引用类型使用同一方法集的观点。

.NET 8 高性能跨平台图像处理库 ImageSharp

www.cnblogs.com/1312mn/p/18…

ImageSharp 是一个专为 .NET 设计的开源高性能图像处理库,特别适用于.NET8。它能够跨平台使用,提供丰富的图像处理功能和优异的性能。ImageSharp 支持 JPEG、PNG、GIF 等多种格式,以及多种像素格式和元数据编辑。它的主要功能包括图像裁剪、旋转、调整亮度对比度、应用滤镜等,并且操作简单。该库的安装也十分便利,通过 NuGet 包管理器即可轻松集成到项目中,适合桌面、Web 和云服务应用。

.NET 高性能异步套接字库,支持多协议、跨平台、高并发

www.cnblogs.com/1312mn/p/18…

.NET 生态中,NetCoreServer 是一个开源、高性能的异步通信框架,支持多种协议,如TCP、SSL、UDP和WebSocket等。它适用于高并发、低延迟的需求,跨平台支持Linux、macOS和Windows。开发环境包括.NET 6.0等,提供示例和详细文档,助力快速上手。它实现了多种服务器和客户端,如聊天服务器和HTTP服务器。性能测试涵盖回显和Web服务器测试等。该框架减少内存分配与CPU占用,优化网络I/O,以提升通信性能。

解决DDD最大难题-如何划分领域

www.cnblogs.com/xiaoweiyu/p…

文章探讨了如何划分领域的原则,强调基于“创建xxx”需求来识别聚合根,进而划分领域。作者认为xxx需求代表了不可分割的整体,是系统的“原子单元”。当领域之间的复杂度可控时,可以考虑合并,否则应保持边界明确,避免耦合。文中强调通过需求分析和领域识别来控制系统复杂度。作者提到保持边界明确是设计中的核心价值观,符合域驱动设计(DDD)的理念。

C# 单例模式的多种实现

www.cnblogs.com/Can-daydayu…

单例模式是一种创建型设计模式,确保一个类只有一个实例并提供全局访问点。在C#中,单例模式可以通过饿汉式、懒汉式和懒加载实现,每种方式都有优缺点。设计模式的作用包括提高代码可重用性、增强可读性和提高系统可维护性。饿汉式在类加载时创建实例,实现简单,但可能浪费资源。懒汉式在首次访问时创建实例,通过锁机制保证线程安全。懒加载利用.NET的Lazy类实现线程安全的单例。

AOT使用经验总结

www.cnblogs.com/Dotnet9-com…

.NET AOT技术提前编译.NET代码为本机代码,提升启动速度和安全性,降低资源占用,支持老旧系统,方便部署,但挑战重重,需要细心测试。站长总结AOT项目经验,指出测试策略的重要性,需及时进行AOT测试,避免问题累积。同时需注意rd.xml配置,Prism和DryIOC容器支持,App.config管理,HttpClient和Dapper使用等问题。

一款.NET开源的屏幕实时翻译工具

www.cnblogs.com/Can-daydayu…

Translumo是一款.NET开源屏幕翻译工具,支持实时翻译字幕等文本。它结合多个OCR引擎,通过机器学习选择最佳识别结果,界面简单,无需手动调整。翻译支持多种语言,适用于Windows 10/11,需Nvidia GPU与DirectX11。源码开放,收录于C#/.NET优秀项目中。

基于XAML框架和跨平台项目架构设计的深入技术分析

www.cnblogs.com/vickyqu115/…

本文探讨了基于XAML平台的多平台开发策略,详细介绍了WPF、Silverlight、Xamarin.Forms等主要框架,并讨论了在不同平台上选择.NET版本的重要性。建议选择.NET Core或最新的.NET版本来确保最大兼容性和性能。文章还分析了MVVM模式中View和ViewModel的连接策略。传统DataContext分配简便但耦合性强,而在XAML中实例化ViewModel虽提高预览能力但缺乏灵活性。最终建议使用.NET Standard 2.0编写通用库,并选择.NET 6及以上版本以获得最新特性。

ASP.Net Core使用Jenkins配合pm2自动化部署项目

www.cnblogs.com/w821759016/…

文章介绍了如何配置一个软件项目,包括选择服务器,设置环境变量,管理源码,和构建步骤。详细步骤涉及到如何使用SSH命令传输文件、执行命令,以及如何配置Jenkins服务器以自动化这些流程。特别强调了如何使用参数化构建,实现根据不同环境和配置部署项目。最后指出了如何使用pm2和Powershell命令发布.NET Core程序到服务器并启动。

如何避免 HttpClient 丢失请求头:通过 HttpRequestMessage 解决并优化

www.cnblogs.com/morec/p/185…

在使用HttpClient发起HTTP请求时,可能会遇到请求头丢失的问题,尤其是像Accept-Language这样的请求头。HttpClient设计为可复用以提高性能,但共享机制可能导致请求头在多线程请求中意外传递或丢失。本文探讨了这类问题的根源,并提供了解决方案。通过使用HttpRequestMessage可以更好地控制每个请求的请求头,避免丢失。示例代码展示了在多线程环境下,如何设置和发送请求,确保每个请求独立地设置请求头以获得正确的响应。

开源 - Ideal库 - 常用时间转换扩展方法(一)

www.cnblogs.com/hugogoos/p/…

作者分享了一系列方便软件开发的帮助类代码,这些代码将以《开源-Ideal库》系列文章和Nuget包形式发布。文章重点介绍了时间转换的封装,包括日期时间与时间戳之间的相互转换,涉及本地和UTC时间的转换方法。

基于surging 的木舟平台如何通过HTTP网络组件接入设备

www.cnblogs.com/fanliang11/…

木舟(Kayak)是基于.NET6.0的微服务引擎,支持异步和响应式编程。平台提供物模型、设备、产品和网络组件的管理,支持多种协议的适配与配置。木舟能够通过设备告警、消息通知、数据可视化等功能快速建立微服务物联网平台系统。本文介绍了创建与管理HTTP协议的网络组件,包括自定义协议模块的编码解码、协议说明文档、身份鉴权及数据上报例子。

使用Roslyn的源生成器生成DTO

www.cnblogs.com/vipwan/p/18…

文章介绍了源生成器的优点,特别是在提高性能和实现AOT编译方面的作用。通过示例展示如何使用源生成器自动生成DTO及Mapper扩展方法。首先定义User类和UserDto,再通过AutoDto特性标注,让源生成器自动生成DTO代码。实现代码部分讲解如何在编译过程中利用源生成器生成所需代码。整体内容集中于改善C#程序开发中的对象映射问题,有效提升效率。

dotnet core微服务框架Jimu ~ 会员注册微服务

www.cnblogs.com/flamesky/p/…

本文介绍如何使用.Net Core 6.0框架创建会员注册服务,用户需注册成为会员才能使用服务。系统提供两个API:CheckName用于检测用户名是否可用,Register则用于注册新会员。文章详细说明了接口的声明与实现,并运用Jimu框架来支持服务。项目包含接口类库Register.IServices和实现类库Register.Services,通过Jimu微服务框架接入。宿主服务器Register.Server通过控制台应用实现,并使用DotNetty进行通讯和Consul服务发现。整体过程展示了使用C# .NET技术创建微服务的步骤与关键点。

MudBlazor:基于Material Design风格开源且强大的Blazor组件库

www.cnblogs.com/Can-daydayu…

MudBlazor是一个开源的Blazor组件框架,使用Material Design风格,便于.NET开发者快速构建Web应用。它完全采用C#编写,允许自由调整和扩展,文档提供丰富示例。Blazor使用.NET框架和C#语言,通过Razor语法构建Web应用,能够替代JavaScript操控HTML DOM,适合创建单页应用和Web服务。MudBlazor框架强调使用C#编程,提升开发效率,降低学习成本。项目包括ASP.NET Core Blazor的快速入门指南和组件库的引入方法。

精选2款C#/.NET开源且功能强大的网络通信框架

www.cnblogs.com/Can-daydayu…

本文介绍了两个C#/.NET丰富的网络通信框架:NetCoreServer和TouchSocket。NetCoreServer是一款高性能、跨平台、多协议支持的异步套接字库,适合创建可扩展网络应用。TouchSocket提供了一键解决TCP黏包问题和多种数据报文解析功能,支持多种通信模块。这些项目已被收录在C#/.NET优秀项目精选中,推动开发者们交流分享最佳实践。DotNetGuide技术社区则为.NET开发者提供资料学习、技术交流和项目推荐的平台。

在 Github Action 管道内集成 Code Coverage Report

www.cnblogs.com/kklldog/p/1…

文章介绍如何在GitHub Actions上运行CICD pipeline,尤其是使用.NET工具进行代码构建、测试和覆盖率分析。作者成功解决了此前在集成测试中的问题,实现了测试和代码覆盖率的自动化。通过集成CodeCoverageSummary,Github Actions不仅可生成覆盖率报告,还支持多种配置。作者提供了详细的操作步骤和相关命令,帮助读者在Actions中查看代码覆盖率,提高项目的健康度。

基于surging 的木舟平台如何通过Tcp或者UDP网络组件接入设备

www.cnblogs.com/fanliang11/…

文章介绍了基于.NET6.0的surging微服务引擎开发的木舟平台,支持异步响应编程和多协议适配。它提供物模型、设备、产品和网络组件的统一管理。文章详细描述了如何使用Tcp和Udp网络组件接入设备以及创建自定义协议模块,包括协议说明、身份鉴权和消息编解码处理。此外,示例代码展示了如何通过特定解析脚本进行协议编码解码处理,提升了对不同设备和协议的适配能力。该平台通过设备告警、消息通知和数据可视化等功能,快速构建微服务物联网平台。

开源 - Ideal库 - 常用时间转换扩展方法(二)

www.cnblogs.com/hugogoos/p/…

文章介绍了用于时间和日期转换的多个扩展方法:将TimeOnly转换为DateTime,使用当前系统日期;将DateOnly与系统当前时间或指定DateTime中的时间合并;从DateTime提取日期或时间。虽然大多数方法是简单的原生方法调用,但使用扩展方法提高了编码效率。文章还讨论了代码结构的重要性,建议通过分类组织代码,提高可读性、可维护性和扩展性,例如按入参类型或功能分组。最后强调了单元测试的重要性,以确保代码的正确性。

主题

ReSharper 和 .NET Tools 2024.3 候选版本现已推出 | .NET Tools 博客

blog.jetbrains.com/dotnet/2024…

Rider 2024.3 候选版本现已推出 | .NET 工具博客

blog.jetbrains.com/dotnet/2024…

发布诊断版本 - v9.0.553101 · dotnet/diagnostics

github.com/dotnet/diag…

为 .NET Conf 2024 做好准备 - .NET 博客

devblogs.microsoft.com/dotnet/get-…

.NET 和 NuGet 生态系统的 OpenSSF 记分卡 - NuGet 博客

devblogs.microsoft.com/nuget/opens…

文章、幻灯片等

smart F 开发的当前问题和未来计划 ~ 从 WinForms 到 Blazor ~

zenn.dev/nexta_/arti…

.NET 8 和 9 上 DataTable 数据提取方法的性能比较

zenn.dev/microsoft/a…

使用 Next.js 和 .NET API 后端构建全栈应用程序

argosco.io/building-a-…

UUID v7 与 UUID v8:为可扩展分布式系统选择理想的标识符

medium.com/@anderson.b…

将 Azure Functions(进程中)转换为 .NET8 时,函数主机不会启动

zenn.dev/tessecraft_…

引入一种新的、更具对话性的方式与 GitHub Copilot 聊天 - Visual Studio 博客

devblogs.microsoft.com/visualstudi…

EF Core 与 VS2022 和 SQL Server 的官方培训

zenn.dev/zead/articl…

了解如何在新的 AI 季节中在 45 分钟内创建客户端-服务器应用程序 - Visual Studio 博客

devblogs.microsoft.com/visualstudi…

NetEscapades.EnumGenerators 的最新更新:拦截器!

andrewlock.net/recent-upda…

dotInsights | 2024 年 11 月 | .NET 工具博客

blog.jetbrains.com/dotnet/2024…

[C#] 我想在任务栏上运行PowerShell!

zenn.dev/onakamanpuk…

新的锁对象和历史记录

mareks-082.medium.com/new-lock-ob…

.NET 9 中的新增功能:System.Text.Json 改进

blog.elmah.io/whats-new-i…

如何使用 xUnit 如何准备测试用例并传递数据 - Qiita

qiita.com/te-k/items/…

有关使用 .NET 应用程序连接到数据库的更多信息 - Qiita

qiita.com/tinymouse/i…

使用 Excel-DNA 创建异步处理函数 - Qiita

qiita.com/msms/items/…

介绍 .NET 的现代 Web 应用程序 (MWA) 模式

techcommunity.microsoft.com/blog/appson…

.NET 9 中 System.Text.Json 的新增功能

okyrylchuk.dev/blog/whats-…

活动、分发等

Visual Studio 用户社区日本学习会#7 (2024/11/30 13:30~)

vsuc.connpass.com/event/33513…

库、存储库、工具等。

LittleLittleCloud/StepWise:使用 typescript 和 C# 构建的代码优先工作流引擎

github.com/LittleLittl…

velopack/velopack:跨平台桌面应用程序的安装程序和自动更新框架

github.com/velopack/ve…

网站、文档等

推文

x.com/dotnetfdn/s…

image-20241112221813739


x.com/sergiopedri…

image-20241112221953020


x.com/mkristensen…

image-20241112222530145


x.com/mkristensen…

image-20241112222605109

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