/awesome-csharp

Awesome list of C# related libraries, tools and tutorials. Inspired by awesome-dotnet, awesome-dotnet-core, awesome-roslyn and awesome.

Awesome C#

Awesome


A curated list of awesome C# tutorials, libraries and resources.

C# (pronounced "See Sharp") is a modern, object-oriented, and type-safe programming language.

Inspired by awesome-php, awesome-fsharp and awesome.

Contents

Documentation
IDE
Learn
Cheat sheets
Blogs
Platforms
Libraries

Documentation

IDE

  • Rider - A fast & powerful cross-platform .NET IDE.
  • Visual Studio - A curated list of awesomeness for Visual Studio IDE.
    • ReSharper - The Visual Studio Extension for .NET Developers.
    • NCrunch - Live Testing Tool for .NET.
  • Visual Studio Code - 🎨 A curated list of delightful VS Code packages and resources.
  • MonoDevelop - A cross platform .NET IDE.

Learn

  • Codecademy - In this course, you’ll be exposed to fundamental programming concepts using C# and start writing programs right away.
  • Exercism C# Track - Join other students on the Exercism C# track.
  • Clean code concepts adapted for .NET/.NET Core- 🛁 Clean Code concepts and tools adapted for .NET.
  • Free books on C# programming - A not-for-profit organization devoted to promoting the creation, distribution, archiving, and sustainability of free ebooks.
  • C-Sharp-Algorithms - 📚 📈 Plug-and-play class-library project of standard Data Structures and Algorithms in C#.
  • ASP.NET Core Developer Roadmap - Roadmap to becoming an ASP.NET Core developer in 2021.
  • Learn ML.NET - Free courses, tutorials, videos, and more about machine learning with ML.NET.
  • Samples for ASP.NET Core 5.0 - Practical samples of ASP.NET Core 2.1, 2.2, 3.1, 5.0 and 6.0 Preview 5 projects you can use.
  • Try .NET - Try .NET provides developers and content authors with tools to create interactive experiences.
  • SharpLab - .NET language playground.
  • KoduGameLab - 3D game development tool for teaching basic programming concepts to kids.
  • Clean Architecture with .NET Core & React+Redux - Sample implementation of the Clean Architecture Principles with .NET Core. Use cases as central organizing structure, decoupled from frameworks and technology details. Built by small components that are developed and tested in isolation.
  • The Algorithms C-Sharp - This repository contains algorithms and data structures implemented in C# for educational purposes.
  • CSharp-From-Zero-To-Hero - "Programming is hard only until you practice it (like any other skill)."
  • LINQPad- The Ultimate Scratchpad for C#, F# and VB.
  • dotnetfiddle - C# Online Compiler.

Cheat sheets

Blogs

Platforms

  • .NET
    • Roslyn - The open-source implementation of both the C# and Visual Basic compilers with an API surface for building code analysis tools.
    • .NET Runtime
    • .NET Core SDK - The source code for the cross-platform .NET Core SDK.
  • Mono - An open source implementation of Microsoft's .NET Framework.

Libraries

  • Blazor - A .NET web framework using C#/Razor and HTML that runs in the browser with WebAssembly.
  • Json.Net - Json.NET is a popular high-performance JSON framework for .NET
  • Workflow Core - A light weight embeddable workflow engine.
  • CodeFormatter - A tool that uses Roslyn to automatically rewrite the source to follow our coding styles.
  • try-convert - This is a simple tool that will help in migrating .NET Framework projects to .NET Core.
  • InferSharp - An interprocedural and scalable static code analyzer for C#.
  • ConsoleTable - Have you ever just wanted to output flat structured POCO out to console? Sure you have!
  • Codez - A library designed to help ease the process of generating codes for your end users that can be helpful for confirmation numbers, reservation systems, error codes, and more.
  • Kurukuru - Terminal Spinner library for .NET Core/Standard.
  • CsvHelper - A library for reading and writing CSV files. Extremely fast, flexible, and easy to use. Supports reading and writing of custom class objects.
  • JustSaying - A helpful library for publishing and consuming events / messages over SNS (SNS / SQS as a message bus).
  • ScrutorAssembly scanning and decoration extensions for Microsoft.Extensions.DependencyInjection
  • StackExchange.Redis - StackExchange.Redis is a high performance general purpose redis client for .NET languages.
  • ServiceStack.Redis - A simple, high-performance and feature-rich C# Client for Redis
  • GraphQL for .NET - An implementation of Facebook's GraphQL in .NET.
  • ChilliCream GraphQL Platform - GraphQL server for .NET.
  • Puppeteer Sharp - A .NET port of the official Node.JS Puppeteer API.
  • Noda Time - An alternative date and time API for .NET.
  • Sieve - Clean & extensible Sorting, Filtering, and Pagination for ASP.NET Core.
  • FluentScheduler - About Automated job scheduler with fluent interface for the .NET platform.
  • Heroku .NET Core Buildpack - The Buildpack supports C# and F# projects.to
  • Reaqtor - a framework for reliable, stateful, distributed, and scalable event processing based on Reactive Extensions (Rx).
  • Shouldy - Assertion framework which focuses on giving great error messages when the assertion fails while being simple and terse.
  • Fluent Assertions - extensive set of extension methods that allow you to more naturally specify the expected outcome of a TDD or BDD-style unit tests.
  • Refit - The automatic type-safe REST library for .NET Core, Xamarin and .NET.
  • Polly - Express policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback in a fluent and thread-safe manner.
  • Coyote - A tool designed to help ensure that your C# code is free of annoying concurrency bugs.
  • ASP.NET Boilerplate - A general purpose application framework specially designed for new modern web applications.
  • Dapper - A simple object mapper.
  • RestSharp - Simple .NET REST Client.
  • LocalStack .Net Client - This is an easy-to-use .NET client for LocalStack.
  • Azure SDK for .NET - This repository is for active development of the Azure SDK for .NET.
  • AWS SDK for .NET - The AWS SDK for .NET enables .NET developers to easily work with Amazon Web Services.
  • ML.NET - Open source and cross-platform machine learning framework for .NET.
  • Orleans - Cross-platform framework for building distributed applications with .NET.
  • Hangfire - Incredibly easy way to perform fire-and-forget, delayed and recurring jobs inside ASP.NET applications.
  • MediatR - Simple, unambitious mediator implementation in .NET.
  • BenchmarkDotNet - Helps you to transform methods into benchmarks, track their performance, and share reproducible measurement experiments.
  • FluentValidation - A popular .NET validation library for building strongly-typed validation rules.
  • ReactiveUI - A composable, cross-platform model-view-viewmodel framework for all .NET platforms that is inspired by functional reactive programming
  • Electron.NET - Build cross platform desktop apps with ASP.NET Core (Razor Pages, MVC, Blazor).
  • NLog - Advanced and Structured Logging for Various .NET Platforms.
  • Serilog - Easy to set up, diagnostic logging library for .NET applications.
  • NSwag - The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript.
  • Swashbuckle.AspNetCore - Swagger tooling for APIs built with ASP.NET Core. Generate beautiful API documentation.
  • Akka.NET - A professional-grade port of the popular Java/Scala framework Akka distributed actor framework to .NET.
  • protobuf-net - A contract based serializer for .NET code, that happens to write data in the "protocol buffers" serialization format engineered by Google.
  • MessagePack-CSharp- Extremely Fast MessagePack Serializer for C#(.NET, .NET Core, Unity, Xamarin).
  • NAudio - Audio and MIDI library for .NET.
  • DotNetty - A port of Netty, asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.
  • Spectre.Console - A .NET 5/.NET Standard 2.0 library that makes it easier to create beautiful, cross platform, console applications. It is heavily inspired by the excellent Rich library for Python.
  • TensorFlowSharp - TensorFlow API for .NET languages.
  • TensorFlow.NET - .NET Standard bindings for Google's TensorFlow for developing, training and deploying Machine Learning models in C# and F#.
  • DotnetSpider - a .NET standard web crawling library. It is lightweight, efficient and fast high-level web crawling & scraping framework.
  • SkiaSharp - Cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library.
  • MongoDB C# Driver - .NET Driver for MongoDB.
  • Flurl - Fluent URL builder and testable HTTP client for .NET.
  • Chromely - Lightweight alternative to Electron.NET, Electron for .NET/.NET Core developers.
  • Harmony - A library for patching, replacing and decorating .NET and Mono methods during runtime.
  • pythonnet - Python.NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET developers.
  • Math.NET Numerics - An opensource numerical library for .Net, Silverlight and Mono.
  • SSH.NET - A Secure Shell (SSH) library for .NET, optimized for parallelism.
  • Ninject - A lightning-fast, ultra-lightweight dependency injector for .NET applications.
  • Autofac - An IoC container for Microsoft .NET. Autofac manages the dependencies between classes so that applications stay easy to change as they grow in size and complexity.
  • AutoFixture - A library for .NET designed to minimize the 'Arrange' phase of your unit tests in order to maximize maintainability.
  • Npgsql - A .NET data provider for PostgreSQL.
  • Cosmos - An operating system "construction kit". Build your own OS using C#!
  • React.NET - .NET library for JSX compilation and server-side rendering of React components.
  • Octokit - Octokit is a client library targeting .NET Framework 4.6 or greater and .NET Standard 2.0 and above that provides an easy way to interact with the GitHub API.
  • Xamarin.iOS & Xamarin.Mac - SDKs that allow us to create native iOS, tvOS, watchOS and macOS applications using the same UI controls we would in Objective-C and Xcode, except with the flexibility and elegance of C#.
  • Xamarin.Forms - Quickly build native apps for iOS, Android, Windows and macOS, completely in C#.
  • Xamarin.Android - Open-source bindings of the Android SDK for use with .NET managed languages such as C#.
  • CacheManager - CacheManager is an open source caching abstraction layer for .NET written in C#. It supports various cache providers and implements many advanced features.
  • Couchbase .NET SDK - The official Couchbase SDK for .NET Core and Full Frameworks.
  • Confluent's Apache Kafka .NET client - confluent-kafka-dotnet is a lightweight wrapper around librdkafka, a finely tuned C client.
  • SpecFlow - A BDD solution for .NET. It provides test automation for .NET (.NET Framework, .NET Core and Mono), based on the Gherkin specification language and integrates to Visual Studio.
  • FluentFTP - FluentFTP is a fully managed FTP and FTPS library for .NET & .NET Standard, optimized for speed.
  • .NET for Apache® Spark™ - .NET for Apache Spark provides high performance APIs for using Apache Spark from C# and F#.
  • xUnit - xUnit.net is a free, open source, community-focused unit testing tool for the .NET Framework.
  • NUnit - A unit-testing framework for all .NET languages. Initially ported from JUnit, the current production release, version 3, has been completely rewritten with many new features and support for a wide range of .NET platforms.
  • NSubstitute - A friendly substitute for .NET mocking libraries.
  • moq - Moq is a mocking library for .NET developed from scratch to take full advantage of .NET Linq expression trees and lambda expressions.
  • NEventStore - A persistence agnostic Event Store for .NET.
  • RabbitMQ .NET client - source code of the RabbitMQ .NET client. The client is maintained by the RabbitMQ team at VMware.
  • YamlDotNet - Low level parsing and emitting of YAML as well as a high level object model similar to XmlDocument. A serialization library is also included that allows to read and write objects from and to YAML streams.
  • Docker.DotNet - .NET (C#) Client Library for Docker API. This library allows you to interact with Docker Remote API endpoints in your .NET applications.
  • FASTER - Fast persistent recoverable log and key-value store + cache, in C# and C++.
  • Stateless - A simple library for creating state machines in C# code.
  • Brighter - A Command Dispatcher and Command Processor. It can be used with an in-memory bus, or for interoperability in a microservices architecture, out of process via a wider range of middleware transports.
  • Cake - Cake (C# Make) is a build automation system with a C# DSL to do things like compiling code, copy files/folders, running unit tests, compress files and build NuGet packages.
  • Command Line Parser Library - The Command Line Parser Library offers CLR applications a clean and concise API for manipulating command line arguments and related tasks, such as defining switches, options and verb commands.
  • scriptcs - Write C# apps with a text editor, nuget and the power of Roslyn!
  • SharpCompress - A fully managed C# library to deal with many compression types and formats.
  • StyleCop - Analyzes C# source code to enforce a set of style and consistency rules.
  • StyleCopAnalyzers - An implementation of StyleCop rules using the .NET Compiler Platform.
  • LazyCache - A simple in-memory caching service. It has a developer friendly generics based API, and provides a thread safe cache implementation that guarantees to only execute your cachable delegates once (it's lazy!).
  • ExcelDataReader - Lightweight and fast library written in C# for reading Microsoft Excel files.
  • Lean - An open-source algorithmic trading engine built for easy strategy research, backtesting and live trading. We integrate with common data providers and brokerages so you can quickly deploy algorithmic trading strategies.
  • ConvNetSharp - C# port of ConvNetJS. You can use ConvNetSharp to train and evaluate convolutional neural networks (CNN).
  • Jwt.Net - A JWT (JSON Web Token) implementation for .NET.
  • Tye - A tool that makes developing, testing, and deploying microservices and distributed applications easier.
  • AspLabs - Repo for ASP.NET experiments that are not ready for a production release.
  • IronPDF - C# PDF Library that prioritizes accuracy, ease of use, and speed.
  • AsyncMonolith - Facilitates simple asynchronous messaging in dotnet apps.
  • fluent-cms - RESTful CRUD (Create, Read, Update, Delete) APIs, Admin Panel web pages,a GraphQL-style query designer and a WYSIWYG web page designer, all fully configurable without writing code.