下面一起盘点3月份推荐的8个.Net开源项目。
一、SmartFormat:轻量级文本模板库,轻松替代 string.Format
项目地址:
https://github.com/axuno/SmartFormat
SmartFormat不仅继承了 string.Format 的功能,还扩展了更多高级特性,例如命名占位符、列表格式化、本地化支持、复数化等。SmartFormat 提供了高性能、低内存占用的运行时格式化能力。
简单示例:
vardata = new { Library = "SmartFormat"};
_ = Smart.Format("Composed with {Library}.", data);
// 结果: "Composed with SmartFormat."
项目地址:
https://github.com/Cysharp/ZLinq
ZLinq 是一个由 Cysharp 团队开发的开源项目,目标是为所有 .NET 平台和 Unity 提供零分配的 LINQ 实现。它通过利用 Span 和 SIMD 技术,优化了 LINQ 的性能,同时提供了对树形结构(如文件系统、JSON、游戏对象等)的查询支持。
通过一行代码,调用AsValueEnumerable() 方法,用户可以将任何Linq转换为 ZLinq。
using ZLinq;
var seq = source
.AsValueEnumerable() // 添加此代码
.Where(x => x % 2 == 0)
.Select(x => x * 3);
三、SharpBrowser:用C#打造超快的个性化开源浏览器!
项目地址:
https://github.com/sharpbrowser/SharpBrowser
SharpBrowser 是一个用 C# 和 CefSharp 开发的全功能网页浏览器。它声称是最快的开源 C# 网页浏览器,渲染网页的速度比谷歌浏览器还快,因为其使用轻量级的 CEF 渲染器。
经过比较所有可用的 .NET 浏览引擎后,项目团队最终选择了高性能的 CefSharp。
该项目基于 MIT 许可证发布。
四、FlexLabs.Upsert:EF Core插件推荐,支持多数据库的Upsert功能
项目地址:
https://github.com/artiomchi/FlexLabs.Upsert
FlexLabs.Upsert是一个为Entity Framework Core(EF Core)提供Upsert功能的开源库,它允许在插入数据时,如果存在冲突(如主键或唯一键冲突),则更新现有记录。
这个库支持多种常见的数据库提供者,如PostgreSQL、Sqlite、SqlServer、Oracle和MySQL,并且使用它们各自的原生SQL语法来执行Upsert操作。
检测存在相同UserID和Date的记录时,更新字段Visits。
using FlexLabs.EntityFrameworkCore.Upsert;
// 创建Upsert命令
var upsert = DataContext.DailyVisits
.Upsert(new DailyVisit
{
UserID = userID,
Date = DateTime.UtcNow.Date,
Visits = 1,
})
.On(v =>new { v.UserID, v.Date }) // 指定冲突检测条件
.WhenMatched(v =>new DailyVisit
{
Visits = v.Visits + 1, // 定义更新逻辑
});
// 执行Upsert操作
await upsert.RunAsync();
五、Squidex:一个基于.Net功能强大的CMS开源项目
项目地址:
https://github.com/Squidex/squidex
Squidex 是一个基于 .NET Core 构建开源的无头内容管理系统(Headless CMS),主要用于构建和管理复杂的内容管理系统。
它允许开发者和内容管理者通过API来处理内容,而不是传统的网页界面,这为前端开发提供了极大的灵活性。
六、Dapper-Plus:一个基于 Dapper 的.Net扩展库,提供高性能的批量操作功能
项目地址:
https://github.com/zzzprojects/Dapper-Plus
Dapper-Plus 是一个基于 Dapper 的扩展库,专注于提供高性能的批量操作功能。它不仅可以与 Dapper 一起使用,还兼容其他所有 Dapper 包。通过简单的配置和映射,开发者可以轻松实现高效的数据库批量操作。
执行批量插入、更新、删除或合并,并包含相关子项。
connection.BulkInsert(orders, order => order.Items)
.BulkInsert(invoices, invoice => invoice.Items)
.BulkMerge(shippingAddresses);
七、Generative-AI-for-beginners-dotnet:微软官方面向初学者的生成式人工智能免费.NET课程
项目地址:
https://github.com/microsoft/Generative-AI-for-beginners-dotnet
这个开源项目是专门为 .NET 开发人员深入生成式 AI 世界的实践课程!
这些课程不仅仅是理论,更是包含了实际应用程序示例和源码码,以使 .NET 开发人员能够充分掌握生成式 AI。
课程形式:项目以课程的形式呈现,包含五课,每课都围绕一个具体的主题展开,帮助开发者从基础到实践逐步掌握相关技能。
八、example-voting-app:一个学习容器化应用开发和运维的绝佳范例
项目地址:
https://github.com/dockersamples/example-voting-app
这是一个简单而经典的应用示例,实现了投票和结果展示的功能。介绍使用 Docker、Docker Compose、Docker Swarm 和 Kubernetes 等工具来构建、部署和管理分布式应用。
通过学习这个项目,开发者可以快速掌握 Docker、Docker Compose、Docker Swarm 和 Kubernetes 等工具的使用方法,并理解分布式应用的设计原则和组件交互方式。
该项目的架构设计清晰且易于理解,涵盖了前端、后端、消息队列、数据库等多个组件。具体来说,它包括以下几个关键部分:
这种架构设计不仅展示了不同编程语言和技术栈的协同工作,还体现了分布式应用中常见的组件划分和职责分配。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有