一些不错的.Net Core开源项目

  • Post author:
  • Post category:其他


分享几个.NET Core 开源项目,之前关注过国内的.NET Core社区。刚去看了看有几个开源项目分享一下,也为.NET做些做贡献。

以下项目源码我筛选了一下,都是在最近10天有过活跃的提交,Star在3k-1k左右。


第一个:Magicodes.IE

导入导出通用库,支持Dto导入导出、模板导出、花式导出以及动态导出,支持Excel、Csv、Word、Pdf和Html。


第二个:OSharp

OSharp是一个基于.NetCore的快速开发框架,框架对 AspNetCore 的配置、依赖注入、日志、缓存、实体框架、Mvc(WebApi)、身份认证、功能权限、数据权限等模块进行更高一级的自动化封装,并规范了一套业务实现的代码结构与操作流程,使 .Net Core 框架更易于应用到实际项目开发中。

OSharp 特性

模块化的组件设计

自动化的依赖注入机制

UnitOfWork-Repository 模式,EFCore 上下文动态构建

基于 AspNetCore 的 Identity 的身份认证设计系统

设计了一个强大的功能权限与数据权限的授权体系

集成 Swagger 后端 API 文档系统

框架组织:


第三个:DotnetSpider(该项目近1年更新频率低)

DotnetSpider,是一个 .NET standard 网络爬虫库。 轻量级、高效、快速的高级网络爬虫框架。

整个爬虫设计是纯异步的,利用消息队列进行各个组件的解耦,若是只需要单机爬虫则不需要做任何额外的配置,默认使用了一个内存型的消息队列;若是想要实一个纯分布式爬虫,则需要引入一个消息队列即可,后面会详细介绍如何实现一个分布式爬虫。

Scheduler 调度器。若想要调度海量的请求或者有重启续跑这样的需求,则需要自行实现基于数据库(关系型数据库、Redis 等)的调度器。

下载代理器:下载代理器可以部署在不同的机器上。

下载代理器注册服务。

统计服务:统计各个爬虫和下载代理器的运行状态。

请求配置 (Spider.ConfigureRequest):一般情况下请求都可以自动构建好,但在某些特别情况下如加 sign 等,可以统一处理。

DataFlow: 数据流分两种,解析器和存储器。

代理池:每个爬虫实例会启动一个代理后台服务,此后台服务定时从注册的 IProxySupplier 中获取新的代理。

并发控制器:并发控制器以一定速度从 Scheduler 中获取请求并推到到消息队列中。


第四个:NPOI 的 Core 版本(似乎因某些问题归档,但不影响使用。)

NPOI 是 Apache POI 项目的 .NET 版本。POI 是一个开源项目,能帮助你读/写 xls、doc、ppt 等文件。

这个NPOI项目大家应该都很熟悉,可以很方便的操作Office Excel、Word就不再做过多介绍了。


第五个:EasyCaching

EasyCaching 是一个开源缓存库,包含缓存的基本用法和一些高级用法,可以帮助我们更轻松地处理缓存。

支持本地缓存和分布式缓存

In-Memory

Memcached

Redis(基于StackExchange.Redis)

Redis(基于csredis)

SQLite

Hybrid

Disk

LiteDb

缓存序列化方式

BinaryFormatter

MessagePack

Json

Protobuf

System.Text.Json


第六个:AgileConfig

这是一个基于.NET Core开发的轻量级配置中心。

说起配置中心很容易让人跟微服务联系起来,其实很多传统的SOA的应用他们分布式部署,但并不是完整的微服务架构。这些程序由于分散在多个服务器上所以更改配置很困难。又或者某些程序即使不是分布式部署的,但是他们采用了容器化部署,就给各容器和应用的配置修改就造成了一些困扰。所以该项目并不是为了什么微服务,更多的是为了那些分布式、容器化部署的应用能够更加简单的读取、修改配置。

AgileConfig秉承轻量化的特点,部署简单、配置简单、使用简单、学习简单,它只提取了必要的一些功能,并没有像Apollo那样复杂且庞大。但是它的功能也已经足够你替换webconfig,appsettings.json这些文件了。如果你不想用微服务全家桶,不想为了部署一个配置中心而需要看N篇教程跟几台服务器那么你可以试试AgileConfig——轻量、简单。

特点

部署简单,最少只需要一个数据节点,支持Docker部署。

支持多节点分布式部署来保证高可用。

配置支持按应用隔离,应用内配置支持分组隔离。

支持多环境。

应用支持继承,可以把公共配置提取到一个应用然后其它应用继承它。

使用长连接技术,配置信息实时推送至客户端。

支持IConfiguration,IOptions模式读取配置,原程序几乎可以不用改造。

配置修改支持版本记录,随时回滚配置。

如果所有节点都故障,客户端支持从本地缓存读取配置。

支持Restful API维护配置。

架构主要是分3块:客户端、节点和管理程序、数据库


第七个:FreeSql

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

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 相关的书。



版权声明:本文为polsnet原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。