Skip to content

A curated list of awesome .NET frameworks, libraries and software.

Notifications You must be signed in to change notification settings

MaikelH/awesome-dotnet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 

Repository files navigation

Awesome .NET

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

Inspired by awesome-python and awesome-go.

Ⓜ️ - Indicates a project maintained by Microsoft.

Contents

Add ToC

⬆ back to top

Caching

Command Line

Advanced Console UIs

  • Spectre.Console - A .NET library that makes it easier to create beautiful console applications.
  • Colorful.Console - Colorful.Console is a C# library that wraps around the System.Console class, exposing enhanced styling functionality.

⬆ back to top

Standard CLI

  • CommandLineParser - Terse syntax C# command line parser for .NET.
  • Ⓜ️ System.CommandLine - The System.CommandLine library provides functionality such as parsing the command-line input and displaying help text.

⬆ back to top

Build Tools

  • Cake - Cake (C# Make) is a cross-platform build automation system with a C# DSL.
  • Fody - Extensible tool for weaving .net assemblies.

Data Structures and Algorithms

  • Fare - Fare is a .NET library for working with finite state machines.

⬆ back to top

Database Drivers

Relational Database Drivers

  • BigQuery - Google BigQuery ADO.NET Data provider.
  • DuckDB.NET - DuckDB.NET is a .NET wrapper for the DuckDB in-memory database.
  • FirebirdSql.Data.FirebirdClient - Firebird ADO.NET Data provider.
  • MySqlConnector - MySqlConnector is a high-performance MySQL connector for .NET.
  • MySql.Data - MySQL Connector/NET enables .NET developers to create database applications using MySQL.
  • NPgsql - Npgsql is the .NET data provider for PostgreSQL.
  • SQLite-net - SQLite-net is an open source, minimal library to allow .NET applications to store data in SQLite 3 databases.
  • System.Data.SQLite - System.Data.SQLite is an ADO.NET provider for SQLite.
  • Ⓜ️ System.Data.SqlClient - System.Data.SqlClient is the .NET data provider for SQL Server.

NoSQL Database Drivers

⬆ back to top

Date and Time

  • NodaTime - Noda Time is an alternative date and time API for .NET.
  • TimeZoneConverter - TimeZoneConverter is a .NET library to convert IANA time zones to Windows time zones.

Dependency Injection

  • Autofac - Autofac is an .NET IoC container.
  • Castle.Windsor - Castle Windsor is best of breed, mature Inversion of Control container available for .NET.
  • CommonServiceLocator - CommonServiceLocator is a simple library for providing a common way to locate services.

⬆ back to top

Distributed Systems

  • MassTransit - MassTransit is a free, open-source distributed application framework for .NET.
  • Polly - Polly is a .NET resilience and transient-fault-handling library.

⬆ back to top

Email

  • MailKit - MailKit is a cross-platform mail client library built on top of MimeKit.
  • SendGrid - C# client library and examples for using Twilio SendGrid API's to send mail.

⬆ back to top

Excel

  • ClosedXML - ClosedXML is a .NET library for reading, manipulating, and writing Excel 2007+ (.xlsx, .xlsm) files.
  • EPPlus - EPPlus is a .NET library that reads and writes Excel files using the Office Open XML format (xlsx).
  • ExcelDataReader - ExcelDataReader is a lightweight and fast library written in C# for reading Microsoft Excel files.
  • NPOI - NPOI is a .NET library for reading and writing Microsoft Office file formats.

⬆ back to top

File Handling

  • K4os.Compression.LZ4 - Port of LZ4 compression algorithm for .NET
  • System.IO.Abstractions - A set of abstractions to help make file system interactions testable.
  • SharpZipLib - SharpZipLib is a Zip, GZip, Tar, and BZip2 library written entirely in C# for the .NET platform.
  • SharpCompress - SharpCompress is a compression library for .NET Standard 2.0 that can unrar, unzip, and untar.

⬆ back to top

HTTP Clients

  • Flurl.Net - A fluent, testable HTTP client library.
  • Refit - The automatic type-safe REST library for Xamarin and .NET.
  • RestSharp - RestSharp is a simple REST and HTTP API Client for .NET.

⬆ back to top

Image Processing

  • ImageSharp - ImageSharp is a new, fully featured, fully managed, cross-platform, 2D graphics API.
  • Magick.NET - Magick.NET is an advanced .NET library to work with images.
  • SkiaSharp - SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library.

⬆ back to top

Job Scheduling

  • Hangfire - Hangfire is an easy way to perform fire-and-forget, delayed, and recurring tasks inside ASP.NET applications.
  • NCrontab - NCrontab is a library for parsing crontab expressions.
  • Quartz.NET - Quartz Scheduling Framework for .NET

⬆ back to top

Logging

  • Common.Logging - Common.Logging is a portable logging abstraction for .NET.
  • log4net - log4net is a tool to help the programmer output log statements to a variety of output targets.
  • NLog - NLog is a free logging platform for .NET with rich log routing and management capabilities.
  • OpenTelemetry - OpenTelemetry is a set of APIs, libraries, agents, and instrumentation to provide observability for your applications.
  • Sentry - Official Microsoft.Extensions.Logging integration for Sentry.
  • Serilog - Serilog is a diagnostic logging library for .NET applications.
  • Ⓜ️ System.Diagnostics.EventLog - System.Diagnostics.EventLog is a .NET library for logging to the Windows Event Log.

⬆ back to top

Messaging

  • Confluent.Kafka - Confluent's .NET Client for Apache Kafka
  • Ⓜ️ Microsoft.Azure.Amqp - Microsoft.Azure.Amqp is a .NET library for AMQP.
  • MassTransit - MassTransit is a free, open-source distributed application framework for .NET. `- MediatR - Simple, unambitious mediator implementation in .NET
  • RabbitMQ.Client - RabbitMQ.Client is the .NET client for RabbitMQ.
  • Twilio - Twilio is a C# library for communicating with the Twilio API.

⬆ back to top

Metrics

  • App Metrics - App Metrics is an open-source and cross-platform .NET library used to record metrics within an application.
  • OpenTelemetry - OpenTelemetry is a set of APIs, libraries, agents, and instrumentation to provide observability for your applications.

⬆ back to top

Mocking

  • Moq - Moq is the most popular and friendly mocking framework for .NET.

⬆ back to top

Networking

  • DnsClient - DnsClient is a simple yet very powerful and high-performance open-source library to do DNS lookups in .NET.
  • Flurl - A fluent, portable URL builder. To make HTTP calls off the fluent chain, check out Flurl.Http.
  • SSH.NET - SSH.NET is a SSH library for .NET, optimized for parallelism.
  • Ⓜ️ YARP - YARP is a reverse proxy toolkit for building fast proxy servers in .NET.

⬆ back to top

ORM

Object relational mapping (ORM) libraries that provide a high-level abstraction for interacting with databases.

  • Ⓜ️ Entity Framework Core - Entity Framework Core is a modern object-database mapper for .NET.
  • Dapper - Dapper is a simple object mapper for .NET and owns the title of King of Micro ORM in terms of speed.

⬆ back to top

RPC

  • gRPC - gRPC is a high-performance, open-source universal RPC framework.

⬆ back to top

Science

  • MathNet.Numerics - Math.NET Numerics aims to provide methods and algorithms for numerical computations.
  • NetTopologySuite - NetTopologySuite is a C#/.NET library providing geospatial functionalities.
  • NumSharp - NumSharp is a .NET library that provides numerical computing functionality.

Security

⬆ back to top

Serialization

Libraries and tools for binary serialization.

  • Google.Protobuf - Google's Protocol Buffers is a language-neutral, platform-neutral extensible mechanism for serializing structured data.
  • MessagePack - MessagePack is a fast and compact binary serialization format for .NET.
  • MongoDB.Bson - MongoDB.Bson is a .NET library for BSON serialization.
  • Parquet.NET - Parquet.NET is a .NET library to read and write Apache Parquet files.
  • protobuf-net - Provides simple access to fast and efficient "Protocol Buffers" serialization from .NET applications
  • Ⓜ️ System.Formats.Asn1 - System.Formats.Asn1 is a .NET library for encoding and decoding Abstract Syntax Notation One (ASN.1) data.

⬆ back to top

Testing

  • AutoFixture - AutoFixture is an open-source library for .NET designed to minimize the 'Arrange' phase of your unit tests.
  • Bogus - A simple and sane data generator for populating objects that supports different locales.
  • FluentAssertions - FluentAssertions is a set of .NET extension methods that allow you to more naturally specify the expected outcome of a test.
  • NSubstitute - NSubstitute is a friendly substitute for .NET mocking libraries.
  • NUnit - NUnit is a unit-testing framework for all .Net languages.
  • Shouldly - Assertion framework for .NET.
  • SpecFlow - SpecFlow is the #1 .NET open source framework for Behavior-Driven Development, Acceptance Test-Driven Development, and Specification by Example.
  • xUnit - xUnit.net is a free, open-source, community-focused unit testing tool for the .NET Framework.

⬆ back to top

Text Processing

  • AngleSharp - AngleSharp is a .NET library that gives you the ability to parse angle bracket based hyper-texts like HTML, SVG, and MathML.
  • CsvHelper - CsvHelper is a library to help read and write CSV files.
  • ExcelNumberFormat - .NET library to parse ECMA-376 number format strings and format values like Excel
  • HtmlAgilityPack - HtmlAgilityPack is an HTML parser library for .NET.
  • Json.NET - Json.NET is a popular high-performance JSON framework for .NET.
  • NJsonSchema - NJsonSchema is a .NET library to read, generate, and validate JSON Schema.
  • ServiceStack.Text - High-performance JSON, CSV, XML, etc. serializer and deserializer.
  • Ⓜ️ System.Text.Json - System.Text.Json is a high-performance JSON framework for .NET.
  • YamlDotNet - YamlDotNet is a .NET library for YAML.

⬆ back to top

Tracing

  • OpenTelemetry - OpenTelemetry is a set of APIs, libraries, agents, and instrumentation to provide observability for your applications.

⬆ back to top

Utility

  • AutoMapper - AutoMapper is a simple library that allows you to map objects in .NET.
  • morelinq - MoreLINQ is a set of extensions to LINQ to Objects.

⬆ back to top

Validation

  • FluentValidation - A popular .NET library for building strongly-typed validation rules.

⬆ back to top

Uncategorized

  • Ⓜ️ Microsoft.FeatureManagement - Microsoft.FeatureManagement is a library for enabling feature flags in .NET applications.
  • MimeKit - MimeKit is an Open Source library for creating and parsing MIME, S/MIME and PGP messages.
  • NuGet.Packaging - NuGet.Packaging is a .NET library for creating and reading NuGet packages.
  • prometheus-net - .NET client library for the Prometheus monitoring and alerting system.
  • Scrutor - Assembly scanning extensions for Microsoft.Extensions.DependencyInjection.

⬆ back to top

About

A curated list of awesome .NET frameworks, libraries and software.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published