分享几个.NET Core 开源项目,之前关注过国内的.NET Core社区。刚去看了看有几个开源项目分享一下,也为.NET做些做贡献。
以下项目源码我筛选了一下,都是在最近10天有过活跃的提交,Star在3k-1k左右。
导入导出通用库,支持Dto导入导出、模板导出、花式导出以及动态导出,支持Excel、Csv、Word、Pdf和Html。
OSharp是一个基于.NetCore的快速开发框架,框架对 AspNetCore 的配置、依赖注入、日志、缓存、实体框架、Mvc(WebApi)、身份认证、功能权限、数据权限等模块进行更高一级的自动化封装,并规范了一套业务实现的代码结构与操作流程,使 .Net Core 框架更易于应用到实际项目开发中。
OSharp 特性
模块化的组件设计
自动化的依赖注入机制
UnitOfWork-Repository 模式,EFCore 上下文动态构建
基于 AspNetCore 的 Identity 的身份认证设计系统
设计了一个强大的功能权限与数据权限的授权体系
集成 Swagger 后端 API 文档系统
框架组织:
DotnetSpider,是一个 .NET standard 网络爬虫库。 轻量级、高效、快速的高级网络爬虫框架。
整个爬虫设计是纯异步的,利用消息队列进行各个组件的解耦,若是只需要单机爬虫则不需要做任何额外的配置,默认使用了一个内存型的消息队列;若是想要实一个纯分布式爬虫,则需要引入一个消息队列即可,后面会详细介绍如何实现一个分布式爬虫。
Scheduler 调度器。若想要调度海量的请求或者有重启续跑这样的需求,则需要自行实现基于数据库(关系型数据库、Redis 等)的调度器。
下载代理器:下载代理器可以部署在不同的机器上。
下载代理器注册服务。
统计服务:统计各个爬虫和下载代理器的运行状态。
请求配置 (Spider.ConfigureRequest):一般情况下请求都可以自动构建好,但在某些特别情况下如加 sign 等,可以统一处理。
DataFlow: 数据流分两种,解析器和存储器。
代理池:每个爬虫实例会启动一个代理后台服务,此后台服务定时从注册的 IProxySupplier 中获取新的代理。
并发控制器:并发控制器以一定速度从 Scheduler 中获取请求并推到到消息队列中。
NPOI 是 Apache POI 项目的 .NET 版本。POI 是一个开源项目,能帮助你读/写 xls、doc、ppt 等文件。
这个NPOI项目大家应该都很熟悉,可以很方便的操作Office Excel、Word就不再做过多介绍了。
EasyCaching 是一个开源缓存库,包含缓存的基本用法和一些高级用法,可以帮助我们更轻松地处理缓存。
支持本地缓存和分布式缓存
In-Memory
Memcached
Redis(基于StackExchange.Redis)
Redis(基于csredis)
SQLite
Hybrid
Disk
LiteDb
缓存序列化方式
BinaryFormatter
MessagePack
Json
Protobuf
System.Text.Json
这是一个基于.NET Core开发的轻量级配置中心。
说起配置中心很容易让人跟微服务联系起来,其实很多传统的SOA的应用他们分布式部署,但并不是完整的微服务架构。这些程序由于分散在多个服务器上所以更改配置很困难。又或者某些程序即使不是分布式部署的,但是他们采用了容器化部署,就给各容器和应用的配置修改就造成了一些困扰。所以该项目并不是为了什么微服务,更多的是为了那些分布式、容器化部署的应用能够更加简单的读取、修改配置。
AgileConfig秉承轻量化的特点,部署简单、配置简单、使用简单、学习简单,它只提取了必要的一些功能,并没有像Apollo那样复杂且庞大。但是它的功能也已经足够你替换webconfig,appsettings.json这些文件了。如果你不想用微服务全家桶,不想为了部署一个配置中心而需要看N篇教程跟几台服务器那么你可以试试AgileConfig——轻量、简单。
特点
部署简单,最少只需要一个数据节点,支持Docker部署。
支持多节点分布式部署来保证高可用。
配置支持按应用隔离,应用内配置支持分组隔离。
支持多环境。
应用支持继承,可以把公共配置提取到一个应用然后其它应用继承它。
使用长连接技术,配置信息实时推送至客户端。
支持IConfiguration,IOptions模式读取配置,原程序几乎可以不用改造。
配置修改支持版本记录,随时回滚配置。
如果所有节点都故障,客户端支持从本地缓存读取配置。
支持Restful API维护配置。
架构主要是分3块:客户端、节点和管理程序、数据库
FreeSql 是一款功能强大的对象关系映射(O/RM)组件,支持 .NET Core 2.1+、.NET Framework 4.0+ 以及 Xamarin。
支持 MySql/SqlServer/PostgreSQL/Oracle/Sqlite/Firebird/达梦/人大金仓/神舟通用/南大通用/翰高/ClickHouse/Access 等数据库;
支持 CodeFirst 模式,即便使用 Access 数据库也支持数据迁移;
支持 DbFirst 模式,支持从数据库导入实体类,或使用实体类生成工具生成实体类;
支持 导航属性一对多、多对多贪婪加载,以及延时加载;
支持 读写分离、分表分库、过滤器、乐观锁、悲观锁;
支持 深入的类型映射,比如 PgSql 的数组类型等;
支持 丰富的表达式函数,以及灵活的自定义解析;
FreeSql 提供多种使用习惯,请根据实际情况选择团队合适的一种:
FreeSql,原始用法;
FreeSql.Repository,仓储+工作单元习惯;
FreeSql.DbContext,有点像 EFCore 的使用习惯;
FreeSql.BaseEntity,求简单使用这个;
SqlSugar是一款 老牌 .NET 开源ORM框架
.NET中唯一支持全自动分表组件,SAAS分库,大数据处理的ORM
.NET 百万级写入、更新 性能最强框架
使用简单的ORM
媲美原生的极限的性能
Github star数仅次于EF 和 Dapper,每月nuget下载量超过1万
优点: 简单易用、功能齐全、高性能、轻量级、服务齐全、官网教程文档、有专业技术支持一天18小时服务
支持数据库:MySql、SqlServer、Sqlite、Oracle 、 postgresql、达梦、人大金仓、神通数据库、Access 、MySqlConnector、自定义扩展
就先分享这些开源项目了,如果有更好的.NET Core开源项目欢迎与我交流,另外会送出收藏整理的.NET 相关的书。