/awesome-dotnet-core-cn

:honeybee: 这个一个对 .net core 相关库,工具以及资源的列表

Primary LanguageC#

Awesome .NET Core Awesome

A collection of awesome .NET Core frameworks, libraries, tools, resources and software.

Inspired by awesome, awesome-dotnet, awesome-nodejs, frontend-dev-bookmarks.

Contributions are always welcome! Please take a look at the contribution guidelines pages first. We accept proprietary and commercial software too.

Thanks to all contributors, you're awesome and wouldn't be possible without you! The goal is to build a categorized community-driven collection of very well-known resources.

Contents

通用

框架,类库与工具

API

  • autorest - 一个生成OpenAPI访问客户端的工具(本体使用nodejs来运行)。输出格式包含C#, Java, Node.js, TypeScript, Python, Ruby.
  • aspnet-api-versioning - 给 ASP.NET Web API, OData with ASP.NET Web API, ASP.NET Core,写的REST API接口增加版本控制。(简化 http://api.xxx.com/v1.0,http://api.xxx.com/v2.0 这样的API格式的实现)
  • AspNetCoreRateLimit - 一个针对 ASP.NET Core 访问控制的中间件。可以对IP或者客户端ID增加每秒,每分钟或者每小时访问次数的限制。
  • CondenserDotNet - 使用Kestrel和Consul构建的轻量级微服务框架。(文档不多,start也少,国内和国外基本没相关介绍,建议养肥了再关注吧)
  • Flurl - 以 Fluent 方式构建 URL 并进行HTTP请求测试。http://tmenier.github.io/Flurl.
  • GraphQL - (GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。以上来自:http://graphql.cn/
  • halcyon - halcyon 是 HAL(Hypertext Application Language) 在 asp.net 下的实现,支持 asp.net 和 asp.net core。HAL是一种简单的数据格式,它能以一种简单、统一的形式,在API中引入超链接特性,使得API的可发现性(discoverable)更强,并具有自描述的特点。更详细的介绍常见度娘
  • JSON API .NET Core - 用来构建一个兼容json:api样式的webapi框架。它有点类似HAL。
  • LightNode - 一个实现OWIN的微型 RPC/REST 框架。http://neuecc.github.io/LightNode.
  • NetCoreStack.Proxy - 一个类型安全的,用.NET Standard 2.0标准实现的REST代理库。
  • NSwag - NSwag 是 Swagger/OpenAPIThe 在.Net,Web API, TypeScript 下的工具链。详细内容访问:http://NSwag.org.工具链简单说就是提供了一个NSwagStudio,或者的命令行工具,甚至直接引用相关的代码生成OpenAPI的客户端访问代理类,输出类型包括c#,TypeScrip(包含但不仅限于:jQuery, AngularJS, Angular 2+, Aurelia, KnockoutJS )
  • OData - OData = Open Data Protocol(是一个设计和使用RESTful API的标准)。OData项目就是帮你在 .net 和 .net core 下帮你实现这套标准的库。
  • refit - 帮你自动构建一个访问 REST 的类库,支持.NET全版本和Xamarin。http://paulcbetts.github.io/refit/.(这个和上面的NSwag实现的功能类似,但是它更灵活一些,访问的代理类不会像代码生成那样,根据接口的名称和产生的名称生成固定的代理类。而是可以按照自己的医院写一个接口,然后用标签(Attribute)的方式在的方法上注明要访问REST下的那个API)
  • RESTClient .NET - 一个简单的 REST 客户端,支持所有.NET平台
  • RestEase - 一个简单易用的 REST API 客户端,从refit改造过来的版本。(start有300多个,refit有2500个@2018/5/20,但首页的文档详细程度比refit要多很多,可以做入门介绍。)
  • RestLess - 也是一个 REST API 客户端,作者灵感来自于refit,介绍里重点介绍了和refit的性能比较,简单说就是比refit快了一倍(在安卓端测试)。
  • Swashbuckle - 我觉得不需要介绍了,每次写web api需要配置swagger是都会用,重点是,谁还能再把对它的配置再简化一下。
  • WebAPIContrib for ASP.NET CORE - 对于asp.net和asp.net core下的web api项目的一些社区代码做收集,形成的一个辅助性质的类库。.net版和.net core版的实现的功能模块还不完全一样。但都实现了帮助你的web api 以 Bson,CSV,PlainText,Jsopn,MessagePack,Protobuf,Yaml,这几种协议进行返回。

应用程序框架

  • ABP - 一个基于asp.net的应用程序框架,.net圈里应该都听过的,没听过可以上cnblogs.com看看相关介绍。简单说,当你新开一个要比简单的三层架构要复杂很多的项目时,建议看看它,首次使用可以直接按照框架来,熟悉之后再按照实际项目情况进行优化和改进。
  • Aeron.NET - 一个实现了高效可靠的UDP单播,组播和IPC消息协议的组件库。它是Aeron在.NET下的实现。Aeron则是java和c++下UDP组件库。简单说你可以在.NET下发UDP,java项目下收到对应消息,中间的消息传递都是安全可靠和高效的。
  • akka.net - 一个用于编写高并发,容错的基于事件驱动的分布式系统的应用程序框架。更详细的介绍看百度 akka.net。类似的流行的还有orleans
  • ASP.NET MVC - 需要介绍吗,不需要了吧。
  • CQRSlite - 一个轻量级的框架帮你去写 CQRS/ES 模型的应用程序。(@star:540)不清楚问度娘。国内也有人做了一套类似的框架ENode,因为不是英文的,老外没收录而已。
  • ENode - ENode is a framework aims to help us developing ddd, cqrs, eda, and event sourcing style applications.(@star:1100)
  • DotNetty - 事件驱动的异步网络框架,源自java的netty,微软的Azure团队负责维护。使用方法问度娘
  • EmbedIO - 一个超小的可跨平台的基于模块的Web服务器组件。(@star:417)通常是给你写的应用里集成了一个web服务器,当你部署到服务器后,偷偷的给自己开了一个后门端口,然后通过这个端口以web方式进行服务器管理。(以上说辞是根据官方文档里介绍整理出来的)
  • EventFlow - 用 Async/await 写的 CQRS/ES,DDD 框架(@star:640)。
  • ExtCore - 一个基于asp.net core 的基于模块化可扩展的web应用框架。
  • Halibut - .NET下的使用SSL做JSON-RPC的安全通讯组件。它是 Octopus Deploy 持续集成部署系统的后台通讯组件。它除了普通的request/response这种应答响应方式外,还提供了polling(轮询)模式。简单说,传统的应用服务器是客户端发起tcp连接请求到服务器端,而halibut可以反过来操作,就是由服务端反过来连接到事实上的客户端。这也就是这套持续集成系统要叫做Octopus(章鱼)的原因。
  • grpc - gRPC在.net下的实现。gPRC的概念问度娘
  • MassTransit - 基于消息,松耦合,异步通讯来获得高可用,高可靠与可扩展的分布式框架。(@star:1500)国内还是有一些人在研究的,可以问度娘了解。
  • microdot - 一个微服务框架,国内研究的人还不多(@star:600)
  • Nancy - 一个轻量级的web服务器框架。(@star:6112)看到这么多是star,老牌项目大家可以放心食用。
  • orleans - 微软出的分布式框架,不过多介绍了,大家自行百度 Orleans
  • protoactor-dotnet - 也是一个基于 Actor 模式的分布式框架。http://proto.actor.看作者的项目列表,有 go .net kotlin python 的实现。go的star最高(@star:2168),其次是.net(@star:619),kotlin(@star:105)和python(@star:43)应该是才开始进行开发,所以关注的人还不多。
  • RService.io - 一个轻量级的REST微服务框架,关注的人不多(@star:34),而且也断更了,不用太关注他了。
  • ServiceStack - 一个适用所有人的简单快速的结构设计良好的web服务框架。 https://servicestack.net.(@star:4229) 认识它是当年有人在群里问 ServiceStack.Redis 4.0 组件如何破解。不知道那位仁兄现在是否已经解决了这个问题。
  • Steeltoe OSS - 基于云服务的微服务工具包。国内的用户就不用关注了。

Application Templates

  • ASP.NET Core Boilerplate - 一个专业的ASP.NET MVC模板,用于构建安全、快速、健壮和可适应的Web应用程序或站点。它提供了在微软提供的默认MVC模板之上所需的最小代码量。你可以通过 dotnet new --install "Boxed.Templates::*" 将模板加入系统,然后用 dotnet new api 的方式进行初始化。可以 dotnet new api --help 了解在初始化时,能配置那些参数。(@star:1240)
  • ASP.NET-MVC-Template - 一个开箱即用的asp.net mvc模板,有mvc5, .net core, .net core with Angular 三个。俄语好的可以看的教学视频。(@star:154)
  • AddFeatureFolders - 大家自己去看吧,我没看懂是怎么用的。Enable feature folders for MVC controllers and views in ASP.NET Core.
  • Angular Visual Studio Webpack Starter - 一个集成了asp.net core Angular Webpack Visual Studio的模板。它的好处是让你的前端代码与asp.net core代码在一起,发布的时候就更方便一些。
  • JavaScriptServices - 微软出的一个能够让你在asp.net core里调用nodejs服务。度娘里的介绍比较少,如果实在需要互相调用,可以问谷沟。
  • kendo-ui-core - 一个基于JQuery,HTML5构建web apps的模板。http://www.telerik.com/kendo-ui.(@star:1945)
  • QuickApp - 一个基于 Angular5 ASP.NET Core Bootstrap4 的项目模板,并集成了用户,登录(IdentityServer4),角色管理等模块。
  • Scaffolder - 这是一个数据库的脚手架工具,会根据数据库表的结构生成对应的管理界面,可以查看和修改数据库里的数据。适合拿来做简单的后台管理工具,不过作者是俄国人,blog也是俄文,看不懂啊。(@star:96)
  • Serenity - 也是一个可以方便构造后台管理界面的应用程序模板。大家可以适度关注一下。(@star:1400)
  • Toucan - 一个构建SPA(单页面)模板,服务端用 .net core,按照SOLID的设计原则来开发,客户端用TypeScript 2, Vuejs 2, Vuex2.(@star:125) 项目创建时间比较晚,所以star不高,但它的客户端用vuejs,国内的开发可以适度关注一下,毕竟vuejs比angular,reactjs要简单一些。

Authentication and Authorization

区块链

  • NBitcoin - 比特币在.net下的库。
  • NEO - 一种智能经济分布式网络,国内发布的,小蚁区块链负责维护。
  • Nethereum - .net 下接入以太坊的组件。
  • StratisBitcoinFullNode - 貌似是一个比特币在.net下的实现。

Bot

Build Automation

  • cake-build - 跨平台的自动化构建系统 http://cakebuild.net.
  • CatLight - 用来监控项目编译和任务并将状态通知给开发。不过收费的,国内的用户不用玩了。
  • Colorful.Console - 定制化控制台的样式输出。简单说就是让你的 Console.Write 输出的内容立马高大上起来。具体效果上他们的官网看http://colorfulconsole.com.
  • dotnet-docker - The base Docker images for working with .NET Core and the .NET Core Tools.
  • GitInfo - 可以在MSBuild编译的时候,把Git的版本信息写入你的dll文件里,你就可以已git的信息做为你的版本号来用。
  • GitVersioning - 也是把git信息写入你编译时的DLL。
  • go-dotnet - 让你的.net可以被go调用。
  • Image2Docker - PowerShell module which ports existing Windows application workloads to Docker.
  • msbuild - The Microsoft Build Engine is a platform for building applications.
  • Nuke - Cross-platform build automation system.
  • Opserver - Stack Exchange's 开源的监控系统。如果没有太复杂的监控要求,直接按照到服务器后,配置一些监控的配置信息就可以使用了。
  • vsts-agent - Visual Studio Team Services Build and Release Agent.

Bundling and Minification

  • BundlerMinifier - Visual Studio extension that let's you configure bundling and minification of JS, CSS and HTML files.
  • JavaScriptViewEngine - ASP.NET MVC ViewEngine for rendering markup in a JavaScript environment. Ideal for React and Angular server-side rendering.
  • Smidge - Lightweight runtime CSS/JavaScript file minification, combination, compression & management library for ASP.NET Core.
  • Web Markup Minifier - .NET library that contains a set of markup minifiers. The objective of this project is to improve the performance of web applications by reducing the size of HTML, XHTML and XML code.

Caching

  • CacheManager - 一个Cache的抽象层,在抽象层后面可以接入不用介质的Cache实现,可以是Redis, Memcached, SystemRuntimeCaching, Microsoft.Extensions.Caching.Memory, Couchbase。 http://cachemanager.michaco.net
  • Foundatio - 一个构建分布式应用的可插拔组件。它包含换成,队列,锁,消息,任务,文件存储
  • Microsoft Caching - 微软提供的cache,支持内存模式,也支持Redis和Sql Server的分布式模式。
  • Stack Exchange Redis - .Net下用Reids必备的了。

CMS

  • Blogifier.Core - ASP.NET applications to provide common blogging functionality.
  • Cofoundry - Open source .NET Core CMS and modular application framework. Code-first, unobtrusive and extensible.
  • Lynicon - O/S ASP.Net Core/.Net Core CMS with paid for modules: JSON content, works with variety of data stores, c# content types
  • Orchard Core CMS - Open Source Content Management System built with ASP.NET Core on top of a Modular and Extensible Application Framework.
  • NetCoreCMS - An Open source ASP.NET Core 2.0 CMS. It currently supports MySQL and planned to implement MSSQL, SQLite and PostgreSQL. Also it is a modular CMS supports theme, skin, custom layout, widgets, multiple language (En, BN).
  • Platformus - Free, open source and cross-platform CMS based on ASP.NET Core 1.0 and ExtCore framework.
  • SimpleContent - Simple, yet flexible content and blog engine for ASP.NET Core that can work with or without a database.
  • Squidex - Headless CMS, based on MongoDB, CQRS and Event Sourcing.
  • Weapsy - Open source ASP.NET Core CMS based on DDD and CQRS. It supports MSSQL, MySQL, SQLite and PostgreSQL out of the box.
  • Wyam - Modular static content and static site generator.

Code Analysis and Metrics

  • awesome-static-analysis - Curated list of static analysis tools, linters and code quality checkers for various programming languages.
  • Code Analysis
  • Metrics
    • AppMetrics - App Metrics is an open-source and cross-platform .NET library used to record and report metrics within an application and reports it's health.
    • Audit.NET - Small framework to audit .NET object changes.
    • BenchmarkDotNet - Powerful .NET library for benchmarking.
    • coverlet - Cross platform code coverage library for .NET Core.
    • Foundatio - A common interface with in memory, redis, StatsD, and Metrics.NET implementations.
    • MiniCover - Minimalist Code Coverage Tool for .NET Core.
    • NBench - Performance benchmarking and testing framework for .NET applications.
    • Nexogen.Libraries.Metrics - Library for collecting application metrics in .NET and exporting them to Prometheus.
    • OpenCover - Code coverage tool for .NET 2 and above (WINDOWS OS only), support for 32 and 64 processes with both branch and sequence points.
    • prometheus-net - .NET Client for https://prometheus.io.

Compression

  • lz4net - 一个支持.net全平台的超级快的压缩算法LZ4。看介绍,可以单核400M/s压缩,2G/s解压,基本上达到内存的访问极限,压缩比比gzip要差一些。关于不同压缩算法的效率可以看Quick Benchmark: Gzip vs Bzip2 vs LZMA vs XZ vs LZ4 vs LZO
  • sharpcompress - 一个完全用托管代码写的压缩组件,支持zip/tar/bzip2/gizp。

Compilers, Transpilers and Languages

  • Fable - F# to JavaScript Compiler.
  • fparsec - A parser combinatory library for F# and C#.
  • roslyn - The .NET Compiler Platform ("Roslyn") provides open-source C# and Visual Basic compilers with rich code analysis APIs.
  • Pidgin - A lightweight, fast and flexible parsing library for C#, developed at Stack Overflow.
  • Sprache - Tiny C# Monadic Parser Framework.

Cryptography

  • BCrypt.Net - Bringing updates to the original bcrypt package
  • BCrypt.NET-Core - .NET Core port of BCrypt.NET used to store passwords securely.
  • BouncyCastle PCL - The Bouncy Castle Crypto package is a C# implementation of cryptographic algorithms and protocols.

Database

  • DBreeze - 一个KV存储,支持ACID的数据库管理系统。
  • JsonFlatFileDataStore - 看介绍,操作接口类似于MongoDb的超微型文档操操作类库(小到不能用数据库来说),它的存储端是一个Json文件。或许这个更加适合只读的系统。star比较少,保持关注吧。
  • LiteDB - 一个.NET写的单文件文档型数据库。http://www.litedb.org.
  • NoDb - 一个"no database" 的文件存储系统,因为不是所有的项目都需要数据库的。
  • marten - 利用 Postgresql 来实现一个文档数据库,并支持事件存储。http://jasperfx.github.io/marten.
  • yessql - 一个构建在关系型数据库上的文档数据库。简单说,就是将对象数据序列化(Json)到数据库表里的某个字段里,如果建立了某个索引,则将索引字段的数据映射到对应的表字段上。关系型数据库支持:MySql, Sql Server, Sqlite,PostgreSql。如果你不但希望用文档型数据库的灵活性,还希望它拥有事物功能(MongoDB 3.0 支持单文档事物了)可以考虑试试。
  • 总结:
  • 如果单机用nosql,可以考虑LiteDBDBreeze 在github上的star不是特别多,但这也是一个老牌的项目了,从codeplex转过来的,但主要是国内没人用过,介绍的文章实在没有。如果觉得LiteDB无法满足需求,但又不想用MongoDB,可以考虑看看。因为它支持多线程读写,全文检索。说道全文检索,LiteDB也可以外挂一个全文检索 LiteDBDirectory,用
  • 需要多台机器访问并需要支持事物处理,则考虑yessql。marten虽然star也挺多,但是,能对接的数据库就只有Postgresql。
  • NoDb 则比较适合会产生比较多碎片文件的应用。例如游戏的数据文件。

Database Drivers

Database Tools and Utilities

  • DbUp - .NET library that helps you to deploy changes to SQL Server databases. It tracks which SQL scripts have been run already, and runs the change scripts that are needed to get your database up to date.
  • NReco.PivotData - In-memory data cube with OLAP operations and PivotTable data model.

Date and Time

Distributed Computing

  • aspnetcore-health - Enables load balancers to monitor the status of deployed Web applications.
  • Foundatio - Pluggable foundation blocks for building distributed apps.
  • Obvs - An observable microservice bus .NET library that wraps the underlying transport in simple Rx based interfaces.
  • Ocelot - API Gateway created using .NET Core.
  • OpenTracing - Vendor-neutral APIs and instrumentation for distributed tracing.
  • Polly - .NET 3.5 / 4.0 / 4.5 / PCL library that allows developers to express transient exception and fault handling policies such as Retry, Retry Forever, Wait and Retry or Circuit Breaker in a fluent manner.

E-Commerce and Payments

  • SimplCommerce - Super simple ecommerce system built on .NET Core.
  • Stripe - Typed .NET clients for stripe.com REST APIs.

Exceptions

  • Exceptionless - Exceptionless .NET Client
  • GlobalExceptionHandlerDotNet - GlobalExceptionHandlerDotNet allows you to configure exception handling as a convention with your ASP.NET Core application pipeline as opposed to explicitly handling them within each controller action.

Functional Programming

  • CSharpFunctionalExtensions - Functional Extensions for C#.
  • DynamicData - Reactive collections based on Rx.NET.
  • echo-process - Actor library for C# with additional modules that support persistence to Redis, as well as JS integration.
  • FsCheck - Random Testing for .NET.
  • Giraffe - A native functional ASP.NET Core web framework for F# developers.
  • language-ext - C# functional language extensions and 'Erlang like' concurrency system.
  • LaYumba.Functional - Utility library for programming functionally in C#.
  • NetMQ.ReactiveExtensions - Effortlessly send messages anywhere on the network using Reactive Extensions (RX). Transport protocol is ZeroMQ.
  • Optional - A robust option type for C#.
  • reactive-streams-dotnet - Reactive Streams for .NET.
  • ReactiveUI - A MVVM framework that integrates with the Reactive Extensions for .NET to create elegant, testable User Interfaces that run on any mobile or desktop platform.
  • Rx.NET - The Reactive Extensions for .NET.
  • Qactive - Reactive queryable observable framework. 4.x.x or above
  • sodium - Functional Reactive Programming (FRP) Library. 4.x.x or above

Graphics

  • GLFWDotNet - .NET bindings for GLFW.
  • ImageProcessor - A fluent wrapper around System.Drawing for the processing of image files http://imageprocessor.org. 4.5.x or above
  • ImageSharp - Cross-platform library for processing of image files written in C#.
  • Magick.NET - The .NET library for ImageMagick.
  • QRCoder - A pure C# Open Source QR Code implementation.
  • SharpBgfx - C# bindings for the bgfx graphics library.
  • Structure.Sketching - Image processing library for use in .NET applications that supports .NET Core.
  • veldrid - A low-level, hardware-accelerated 3D graphics library for .NET.

GUI

  • Avalonia - A multi-platform .NET UI framework (formerly known as Perspex).
  • AvaloniaEdit - The Avalonia-based text editor component forked from AvalonEdit
  • WinApi - A simple, direct, ultra-thin CLR library for high-performance Win32 Native Interop with automation, windowing, DirectX, OpenGL and Skia helpers.

IDE

  • Mono - MonoDevelop enables developers to quickly write desktop and web applications on Linux, Windows and Mac OS X. It also makes it easy for developers to port .NET applications created with Visual Studio to Linux and Mac OS X maintaining a single code base for all platforms.
  • rider - Cross-platform C# IDE based on the IntelliJ platform and ReSharper.
  • Omnisharp - Family of Open Source projects, each with one goal: To enable a great .NET experience in YOUR editor of choice.
  • SharpDevelop - SharpDevelop is a free Integrated Development Environment (IDE) for C#, VB.NET, Boo, IronPython, IronRuby and F# projects on Microsoft's .NET platform. It is written (almost) entirely in C#, and comes with features you would expect in an IDE plus a few more.
  • Visual Studio Code - New type of tool that combines the simplicity of a code editor with what developers need for their core edit-build-debug cycle. Code provides comprehensive editing and debugging support, an extensibility model, and lightweight integration with existing tools.
  • Visual Studio Community - Free editor for individual developers, open source projects, academic research, education, and small professional teams.

Internationalization

  • Localization - Localization abstractions and implementations for ASP.NET Core applications.

IOC

  • AutoDI - Super-fast compile-time dependency injection using IL weaving.
  • Autofac - Addictive .NET IoC container.
  • Castle.Windsor Castle Windsor is a best of breed, mature Inversion of Control container available for .NET.
  • DryIoc - Fast, small, full-featured IoC Container for .NET.
  • LightInject - Ultra lightweight IoC container http://www.lightinject.net.
  • SimpleInjector - Easy, flexible, and fast Dependency Injection library that promotes best practice to steer developers towards the pit of success.
  • Stashbox - A lightweight, portable dependency injection framework for .NET based solutions.
  • StructureMap - Dependency Injection/Inversion of Control tool for .NET.

Logging

  • common-logging - Portable logging abstraction for .NET http://net-commons.github.io/common-logging.
  • dnxcore-logging-logstash - Logstash logging extension for .NET Core applications with UDP and Redis transports.
  • Exceptionless - Exceptionless .NET Client
  • Foundatio - A fluent logging api that can be used to log messages throughout your application.
  • LibLog - Single file for you to either copy/paste or install via nuget, into your library/ framework/ application to provide a logging abstraction.
  • log4net - log4net is a port of the excellent Apache log4j™ framework to the Microsoft® .NET runtime.
  • NLog - Advanced .NET, Silverlight and Xamarin Logging.
  • Q42.Logging.ApplicationInsights - Log appender for the build in ASP.NET Core logging to send all logs to Application Insights.
  • serilog - Simple .NET logging with fully-structured events.
  • SEQ - Seq collects data over HTTP, while your applications use the best available structured logging APIs for your platform.

Machine Learning and Data Science

  • Accord - Machine learning, computer vision, statistics and general scientific computing for .NET.
  • Spreads - Series and Panels for Real-time and Exploratory Analysis of Data Streams.
  • TensorFlowSharp - TensorFlow API for .NET languages.

Mail

  • MailBody - Create transactional email with a fluent interface (.NET).
  • MailKit - Cross-platform .NET library for IMAP, POP3, and SMTP.
  • MailMergeLib - SMTP mail client library which provides comfortable mail merge capabilities for text, inline images and attachments, as well as good throughput and fault tolerance for sending mail messages.
  • MimeKit - Cross-platform .NET MIME creation and parser library with support for S/MIME, PGP, DKIM, TNEF and Unix mbox spools.
  • PreMailer.Net - C# library that moves your stylesheets to inline style attributes, for maximum compatibility with E-mail clients.
  • SendGrid Client - C# library for the SendGrid v3 mail endpoint.
  • StrongGrid - Client for SendGrid's v3 API. Not only allows you to send emails, but also allows you to bulk import contacts, manage lists and segments, create custom fields for your lists, etc. Also includes a parser for SendGrid Webhooks.

Mathematics

  • UnitConversion - 一个可扩展的单位换算组件,如果你的系统里会涉及大量的重量(kg<->磅),时间(sec<->day),距离(1km<->mm)都可以试试。

Misc

  • AngleSharp - The ultimate angle brackets parser library. It parses HTML5, MathML, SVG and CSS to construct a DOM based on the official W3C specification. Comparable to beautifulsoup4 of python.
  • AutoMapper - Convention-based object-object mapper in .NET.
  • Castle.Core - Castle Core, including Castle DynamicProxy, Logging Services and DictionaryAdapter http://www.castleproject.org.
  • Chessie - Railway-oriented programming for .NET http://fsprojects.github.io/Chessie.
  • CliWrap - Wrapper for command line interfaces.
  • CommonMark.NET - The implementation of CommonMark specification in C# for converting Markdown documents to HTML.
  • ConsoleTableExt - Fluent library to create table for .NET console application.
  • datatables - Microsoft ASP.NET server-side support and helpers for jQuery DataTables.
  • DinkToPdf - C# .NET Core wrapper for wkhtmltopdf library that uses Webkit engine to convert HTML pages to PDF.
  • Enums.NET - Enums.NET is a high-performance type-safe .NET enum utility library
  • FluentFTP - FTP and FTPS client, with extensive FTP commands, SSL/TLS connections, hashing/checksums and more.
  • HdrHistogram.NET - High Dynamic Range (HDR) Histogram.
  • httpclient-interception - .NET Standard library for intercepting server-side HTTP dependencies.
  • Humanizer - Humanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities.
  • Humidifier - Write and maintain AWS Cloudformation templates using C#.
  • LibSass Host - .NET wrapper around the libSass library with the ability to support a virtual file system.
  • markdig - Fast, powerfull, CommonMark compliant, extensible Markdown processor for .NET.
  • NReco.LambdaParser - Parses string expressions (formulas, methods calls, conditions) to LINQ expression tree that can be compiled to lambda and evaluated.
  • readline - Pure C# GNU-Readline like library for .NET/.NET Core.
  • Relinq - With re-linq, it's now easier than ever to create full-featured LINQ providers.
  • ReverseMarkdown - Html to Markdown converter library.
  • PdfReport.Core - PdfReport.Core is a code first reporting engine, which is built on top of the iTextSharp.LGPLv2.Core and EPPlus.Core libraries.
  • Scientist - .NET library for carefully refactoring critical paths. It's a port of GitHub's Ruby Scientist library.
  • Scrutor - Assembly scanning extensions for Microsoft.Extensions.DependencyInjection.
  • SmartFormat.NET - An extensible replacement for string.Format.
  • Stocks
    • Trady - Handy library for computing technical indicators, and it targets to be an automated trading system that provides stock data feeding, indicator computing, strategy building and automatic trading.
  • System.Linq.Dynamic.Core - The .NET Standard (.NET Core) version from the System Linq Dynamic functionality.
  • Validation
    • FluentValidation - Small validation library for .NET that uses a fluent interface and lambda expressions for building validation rules.
    • Valit - A dead simple validation for .NET Core. No more if-statements all around your code. Write nice and clean fluent validators instead!
  • warden-stack - "health checks" for your applications, resources and infrastructure. Keep your Warden on the watch.
  • Xabe.FFmpeg - .NET Standard wrapper for FFmpeg. It allows to process media without know how FFmpeg works, and can be used to pass customized arguments to FFmpeg from C# application.
  • YoutubeExplode - Ultimate library for extracting metadata and downloading Youtube videos and playlists.

Networking

  • CurlThin - Lightweight cURL binding library for C# with support for multiple simultaneous transfers through curl_multi interface.
  • NETStandard.HttpListener - HttpListener for .NET Core (NETStandard).

ORM

  • Entity Framework Core - Familiar developer experience to previous versions of EF, including LINQ, POCO, and Code First support.
    • EntityFramework-Plus - EF的增强工具集。包含批量操作(更新,删除),查询优化(缓存,过滤器,推迟,子查询),审计。
    • EntityFramework.Triggers - 给EF的 CRUD 操作增加触发器
    • EntityFramework.Rx - 大家应该都知道数据库可以建立一个触发器把,在表插入,更新或者删除时,触发一个函数。这个项目也是类似的,在EF框架上注册一个观察者模式,监听EF框架的插入,更新删除等事件。不过看示例代码,有些复杂。
    • EntityFramework.PrimaryKey - 将查询出来的实例转为已属性名为主键的字典对象。
    • EntityFramework.TypedOriginalValues - 通过某些特殊方法来获得数据库对象在本次修改前的原始值。常见的使用场景是对数据库操作的数据做审计。
    • EntityFramework.VersionedProperties - 将对象里每次变更历史自动保存到一个特定的属性里。审计或者做历史版本时比较适用。
    • LINQKit - EF的一些linq工具
    • Pomelo.EntityFrameworkCore.MySql - EF的Mysql支持。mysql的数据库连接用 mysql-net/MySqlConnector.
  • Dapper - 一个简单的对象映射工具
  • Limebean - 混合了ORM的数据库访问组件。既可以ORm,也可以类似于DataRow这样以字典的方式存取数据。
  • LINQ to DB (linq2db) - LINQ方式操作数据库,看上去还不错,基本上主流的数据库操作都支持了。
  • NEventStore - 聚焦在 DDD/CQRS 类型的应用上的数据存储层组件。
  • NPoco - 基于 PetaPoco 创建分支形成的微型orm组件。
  • NReco.Data - 一个轻量级,高性能的,适配主流数据库的有完整CRUD的ORM组件。
  • ServiceStack.OrmLite - Light, simple and fast convention-based POCO ORM.
  • SqlFu - 快速而且多变的ORM组件。之所以叫SqlFu,就是用函数的方式拼接处sql进行操作,有兴趣的可以点进去看文档。个人感觉很有创意。不过为啥不直接用SQL呢-_-||
  • SQLStreamStore - 在传统的 RDMBS\SQL 数据库里存储事件流数据,应该类似于NEventStore

Profiling

  • Glimpse - 一个 asp.net 站点(页面)的性能分析工具。小冰知道用法。作者说已经开启V2版的计划,但是V2版最后一次更新是2017年1月21日。所以,看看就好。
  • MiniProfiler - 一个 asp.net 站点(页面)的性能分析工具。小冰知道用法,顺便说一下,看介绍,也支持控制台程序的性能分析。

Query Builders

  • SqlKata - Elegant Sql Query Builder, that supports complex queries, joins, sub queries, nested where conditions, vendor engine targets and more

Queue and Messaging

  • emitter - Free open source real-time messaging service that connects all devices. This publish-subscribe messaging API is built for speed and security.
  • EventStore - The open-source, functional database with Complex Event Processing in JavaScript.
  • Foundatio - A common interface with in memory, redis and azure implementations.
  • MediatR - Simple, unambitious mediator implementation in .NET.
  • MediatR.Extensions.Microsoft.DependencyInjection - MediatR extensions for Microsoft.Extensions.DependencyInjection.
  • Mediator.Net - A simple mediator for .Net for sending command, publishing event and request response with pipelines supported.
  • MicroBus - Simple in process mediator for .NET.
  • netmq - 100% native C# implementation of ZeroMQ for .NET.
  • rabbitmq-dotnet-client - RabbitMQ .NET client https://www.rabbitmq.com.
  • RawRabbit - Modern .NET framework for communication over RabbitMq.
  • Rebus - Simple and lean service bus implementation for .NET.
  • Restbus - Messaging library for RabbitMq.
  • Tossit - Simple, easy to use library for distributed job/worker logic. Distributed messages handled by built in RabbitMQ implementation.

Scheduler and Job

SDKs

Security

  • HtmlSanitizer - Cleans HTML to avoid XSS attacks.
  • jose-jwt - Library for processing JOSE objects (JWT, JWA, JWS and related).
  • NWebsec - Security libraries for ASP.NET https://www.nwebsec.com.
  • reCAPTCHA - reCAPTCHA 2.0 for ASP.NET Core.
  • roslyn-security-guard - Roslyn analyzers that aim to help security audit on .NET applications.
  • OwaspHeaders - .NET Core middleware for injecting the Owasp recommended HTTP Headers for increased security.
  • Security - Middleware for security and authorization of web apps.
  • SecurityHeaders - Small package to allow adding security headers to ASP.NET Core websites.

Searching

  • AutoComplete - Persistent, simple, powerful and portable autocomplete library.
  • Elasticsearch.Net & NEST - Repository for both NEST and Elasticsearch.NET, the two official elasticsearch .NET clients.
  • ElasticsearchCRUD - Elasticsearch .NET API.
  • SimMetrics.Net - A Similarity Metric Library, e.g. from edit distance's (Levenshtein, Gotoh, Jaro etc) to other metrics, (e.g Soundex, Chapman)
  • SolrExpress - Simple and lightweight query .NET library for Solr, in a controlled, buildable and fail fast way.

Serialization

  • bond - Cross-platform framework for working with schematized data. It supports cross-language de/serialization and powerful generic mechanisms for efficiently manipulating data. Bond is broadly used at Microsoft in high scale services.
  • Channels - Push based .NET Streams.
  • CsvHelper - Library to help reading and writing CSV files.
  • Edi.Net - EDI Serializer/Deserializer. Supports EDIFact, X12 and TRADACOMS format.
  • ExtendedXmlSerializer - Extended Xml Serializer for .NET.
  • Jil - Fast .NET JSON (De)Serializer, Built On Sigil.
  • msgpack-cli - MessagePack implementation for Common Language Infrastructure / msgpack.org.
  • Newtonsoft.Json - Popular high-performance JSON framework for .NET.
  • protobuf-net - Protocol Buffers library for idiomatic .NET.
  • Schema.NET - Schema.org objects turned into strongly typed C# POCO classes for use in .NET. All classes can be serialized into JSON/JSON-LD and XML, typically used to represent structured data in the head section of html page.
  • ServiceStack.Text - JSON, JSV and CSV Text Serializers.
  • TinyCsvParser - Easy to use, easy to extend and high-performance library for CSV parsing with .NET.
  • Wire - Binary serializer for POCO objects.
  • YamlDotNet - .NET
  • ZeroFormatter - Fast binary (de)serializer for .NET.
  • Utf8Json - Definitely Fastest and Zero Allocation JSON Serializer for C#(NET, .NET Core, Unity, Xamarin).
  • YAXLib - XML Serialization Library for the .NET Framework and .NET Core. Extremely flexible and powerful.

Template Engine

  • dotliquid - .NET Port of Tobias Lütke's Liquid template language.
  • fluid - Open-source .NET template engine that is as close as possible to the Liquid template language.
  • Razor - Parser and code generator for CSHTML files used in view pages for MVC web apps.

Testing

  • Bogus - Simple and sane fake data generator for C#. Based on and ported from the famed faker.js.
  • FakeItEasy - The easy mocking library for .NET.
  • FluentAssertions - Set of .NET extension methods that allow you to more naturally specify the expected outcome of a TDD or BDD-style test.
  • GenFu - Library you can use to generate realistic test data.
  • LightBDD - BDD framework allowing to create easy to read and maintain tests.
  • mockhttp - Testing layer for Microsoft's HttpClient library.
  • moq.netcore - Most popular and friendly mocking framework for .NET.
  • MSpec - Popular testing framework for writing BDD-style tests.
  • MyTested.AspNetCore.Mvc - Fluent testing framework for ASP.NET Core MVC.
  • Netling - Load tester client for easy web testing.
  • NSpec - Battle hardened testing framework for C# that's heavily inspired by Mocha and RSpec.
  • NSubstitute - A friendly substitute for .NET mocking frameworks.
  • nunit - NUnit test runner for .NET Core.
  • shouldly - Should testing for .NET - the way Asserting Should be! http://shouldly.readthedocs.org/en/latest
  • SpecFlow - Pragmatic BDD solution for .NET. It uses the Gherkin specification language and integrates to Visual Studio.
  • Storyteller - Executable Specifications for .NET http://storyteller.github.io.
  • Stubbery - A simple library for creating and running Api stubs in .NET.
  • TestStack.BDDfy - The simplest BDD framework EVER!
  • xBehave.net - An xUnit.net extension for describing your tests using natural language. http://xbehave.github.io
  • xUnit.net - A free, open source, community-focused unit testing tool for the .NET Framework.

Tools

  • CommandLineUtils - Command line parsing and utilities for .NET Core and .NET Framework.
  • docfx - Tools for building and publishing API documentation for .NET projects http://dotnet.github.io/docfx
  • dotnetfiddle - .NET sandbox for developers to quickly try out code and share code snippets.
  • EntryPoint - Composable CLI (Command Line) Argument Parser for .Net Core & .Net Framework 4.5+.
  • Fake JSON Server - Fake REST API for prototyping or as a CRUD Back End. No need to define types, uses dynamic typing. Data is stored to a single JSON file. Has authentication, WebSocket notifications, async long running operations, random generation for errors/delays and experimental GraphQL support.
  • gitignore.io - Create useful .gitignore files for your project https://www.gitignore.io.
  • ICanHasDotnetCore - Scans uploaded packages.config files or GitHub repository and determines whether the nuget packages target .NET Standard https://icanhasdot.net.
  • json2csharp - Generate C# classes from JSON.
  • letsencrypt-win-simple - A Simple ACME Client for Windows.
  • NuGetPackageExplorer - Create, update and deploy Nuget Packages with a GUI.
  • NugetVisualizer - Visualize all of the nuget packages and their corresponding versions for a set of given git repositories or folders.
  • OctoLinker - Navigate through projects.json files efficiently with the OctoLinker browser extension for GitHub.
  • ShareX - Free and open source program that lets you capture or record any area of your screen and share it with a single press of a key. It also allows uploading images, text or other types of files to over 80 supported destinations you can choose from. https://getsharex.com
  • SharpLab - .NET code playground that shows intermediate steps and results of code compilation. https://sharplab.io
  • X.Web.Sitemap – Simple sitemap generator for .NET and .NET Core
  • X.Web.RSS – Simple RSS Feed generator for .NET and .NET Core

Web Framework

  • WebAssembly
    • Blazor - UI framework running .NET in the browser via WebAssembly.
    • Ooui - Small cross-platform UI library that brings the simplicity of native UI development to the web.
  • ReactJS.NET - .NET library for JSX compilation and server-side rendering of React components.
  • redux.NET - Predictable state container for .NET apps. Inspired by https://github.com/reactjs/redux.

Web Socket

  • Fleck - Fleck is a WebSocket server implementation in C#. Fleck requires no inheritance, container, or additional references.
  • SignalR Server - Real-time web functionality for web apps, including server-side push.
  • SuperSocket - Light weight, cross platform and extensible socket server application framework.
  • WampSharp - C# implementation of The Web Application Messaging Protocol - Protocol that provides messaging patterns of Remote Procedure Calls and Publish/Subscribe over WebSockets.
  • websocket-manager - Real-Time library for ASP .NET Core.

Windows Service

  • dotnet-win32-service - Set up and run as Windows Service directly from .NET Core.
  • Topshelf - Easy service hosting framework for building Windows services using .NET.

Workflow

  • CoreWF - Port of Windows Workflow Foundation (WF) to .NET Core.
  • workflow-core - Lightweight workflow engine for .NET Standard.

Starter Kits

  • Arch - The collection of .NET Core libraries that are created by software architects who embrace all the new stuff in .NET Core.
  • AspNetCore-Angular2-Universal - Cross-platform - w/ server-side rendering for SEO, Bootstrap, i18n internationalization (ngx-translate), Webpack, TypeScript, unit testing w/ Karma, WebAPI REST setup, SignalR, Swagger docs, and more!
  • ASP.NET Core Starter Kit - Opinionated boilerplate for web development based on .NET Core, Kestrel, GraphQL on the backend and Babel, Webpack, React and Redux on the frontend. This boilerplate comes in both C# and F# flavors.
  • ASP.NET Boilerplate - ASP.NET Boilerplate is a starting point for new modern web applications using best practices and most popular tools. It's aimed to be a SOLID model, a general-purpose application framework and a project template. 4.5.x or above
  • aspnetcore-spa generator - Yeoman generator to build a brand-new ASP.NET Core single page application that uses Angular 2 / React / React With Redux / Knockout / Aurelia on the client.
  • ASP.Net Core Vue Starter - Asp.NETCore 2.0 Vue 2 (ES6) SPA Starter kit, contains routing, Vuex, and more!.
  • bitwarden-core - The core infrastructure backend (API, database, etc) https://bitwarden.com.
  • dotNetify - Simple, lightweight, yet powerful way to build real-time HTML5/C# .NET web apps.
  • generator-aspnet - yo generator for ASP.NET Core.
  • react-aspnet-boilerplate - Starting point for building isomorphic React applications with ASP.NET Core 1, leveraging existing techniques.
  • saaskit - Developer toolkit for building SaaS applications.

Sample Projects

Articles

Books

Videos

Podcasts

Community

License

CC0

To the extent possible under law, thangchung has waived all copyright and related or neighboring rights to this work.