Skip to content

Latest commit

 

History

History
534 lines (394 loc) · 39.7 KB

README.md

File metadata and controls

534 lines (394 loc) · 39.7 KB

Awesome .NET!

Join the chat at https://gitter.im/quozd/awesome-dotnet

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

Inspired by awesome-ruby, awesome-php, awesome-python, frontend-dev-bookmarks and ruby-bookmarks.

Contributions are always welcome! Please take a look at the contribution guidelines and quality standard 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.

API

  • Frameworks

    • ASP.NET WebAPI - Framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices
    • ServiceStack - Thoughtfully architected, obscenely fast, thoroughly enjoyable web services for all
  • WebAPI Contrib - Collection of open source projects to help improve your work with ASP.NET Web API

Application Frameworks

  • ASP.NET Boilerplate - A starting point for new modern ASP.NET MVC web applications with best practices and most popular tools.
  • Orleans - Orleans is a framework that provides a straight-forward approach to building distributed high-scale computing applications, without the need to learn and apply complex concurrency or other scaling patterns
  • CoreFX - The corefx repo contains the library implementation (called "CoreFX") for .NET Core. It includes System.Collections, System.IO, System.Xml and many other components. It builds and runs on Windows. You can 'watch' the repo to see Linux and Mac support being added over the next few months.
  • Mono - Mono open source ECMA CLI, C# and .NET implementation
  • Mono-Addins - Mono.Addins is a generic framework for creating extensible applications, and for creating add-ins which extend those applications
  • Spring.Net - Spring.NET is an open source application framework that makes building enterprise .NET applications easier

Application Templates

Assembly Manipulation

  • Fody - Extensible tool for weaving .net assemblies
  • Mono.Cecil - Cecil is a library to generate and inspect programs and libraries in the ECMA CIL form.

Assets

  • Cassette - Manages .NET web application assets (scripts, css and templates)
  • NodeAssets - Asset Manager for .net that has live css updates using SignalR and can optionally leverage NodeJS compilers
  • Bundler - Compile & Minify Less/Sass/Stylus/Css/JS/CoffeeScript/LiveScript files. Integrates with MVC and ServiceStack
  • SquishIt - Lets you easily bundle some css and javascript

Authentication and Authorization

  • ASP.NET Identity - New membership system for ASP.NET applications
  • DotNetOpenAuth - A C# implementation of the OpenID, OAuth and InfoCard protocols
  • Logibit Hawk - A F# Hawk authentication library
  • Thinktecture IdentityModel - Helper library for identity & access control in .NET 4.5 and MVC4/Web API.
  • OAuth - A very lightweight library for generating OAuth 1.0a signatures written in C#

Build Automation

  • Psake - .NET-based build automation tool written in PowerShell
  • FAKE - F# Make, a cross platform build automation system
  • Invoke-Build - PowerShell build and test automation tool inspired by Psake.
  • MSBuild - The Microsoft Build Engine (MSBuild) is the build platform for .NET and Visual Studio

Caching

  • CacheCow - An ASP.NET Web API HTTP caching implementation both on client and server
  • Akavache - An asynchronous, persistent key-value store

CLI

  • Command Line Parser - The Command Line Parser Library offers to CLR applications a clean and concise API for manipulating command line arguments and related tasks
  • Power Args - PowerArgs converts command line arguments into .NET objects that are easy to program against. It also provides a ton of optional capabilities such as argument validation, auto generated usage, tab completion, and plenty of extensibility
  • UnionArgParser - Declarative CLI argument & XML configuration parser for F# applications.

CLR

  • CoreCLR - The coreclr repo contains the complete runtime implementation (called "CoreCLR") for .NET Core. It includes RyuJIT, the .NET GC, native interop and many other components. It builds and runs on Windows. You can 'watch' the repo to see Linux and Mac support being added over the next few months.

CMS

  • Umbraco - Umbraco is a free open source Content Management System built on the ASP.NET platform
  • Composite C1 - A web CMS that focus on UX and adaptability
  • Orchard - Free, open source, community-focused project aimed at delivering applications and reusable components on the ASP.NET platform
  • mojoPortal - MojoPortal is an extensible, cross database, mobile friendly, web content management system (CMS) and web application framework written in C# ASP.NET
  • N2CMS - Open source, lightweight, code-first CMS able to seamlessly integrate into any MVC project.

Code Analysis and Metrics

  • StyleCop - StyleCop analyzes C# source code to enforce a set of style and consistency rules
  • Gendarme - Extensible rule-based tool to find problems in .NET applications and libraries
  • Metrics-Net - Capturing CLR and application-level metrics. So you know what's going on.

Compiler

  • F# - The F# compiler, core library and tools - a functional programming language for safer, faster, better code writing.
  • Roslyn - The .NET Compiler Platform ("Roslyn") provides open-source C# and Visual Basic compilers with rich code analysis APIs. It enables building code analysis tools with the same APIs that are used by Visual Studio.
  • VisualFSharp - The Visual F# compiler and tools
  • Mono-basic - Visual Basic Compiler and Runtime

Compression

  • SharpCompress - SharpCompress is a compression library for .NET/Mono/Silverlight/WP7 that can unrar, un7zip, unzip, untar unbzip2 and ungzip with forward-only reading and file random access APIs. Write support for zip/tar/bzip2/gzip are implemented
  • DotNetZip.Semverd - An open-source project that delivers a .NET library for handling ZIP files, and some associated tools. (fork of Unmaintained DotNetZip)
  • SharpZipLib - a Zip, GZip, Tar and BZip2 library written entirely in C# for the .NET platform

Continuous Integration

  • TeamCity - Ready to work, extensible and developer-friendly build server — out of the box [$]
  • CruiseControl.NET - an Automated Continuous Integration server, implemented using the .NET Framework
  • MyGet - Continuous Integration and Deployment, Hosted Package Repository for NuGet, NPM, Bower and VSIX. [Free for OSS] [$]

Cryptography

  • BouncyCastle - Together with the .Net System.Security.Cryptography, the reference implementation for cryptographic algorithms on the CLR.
  • HashLib - HashLib is a collection of nearly all hash algorithms you've ever seen, it supports almost everything and is very easy to use
  • libsodium-net - libsodium for .NET - A secure cryptographic library
  • StreamCryptor - Stream encryption & decryption with libsodium and protobuf

Database

  • BrightstarDb - BrightstarDB is a native .NET RDF triple store
  • RavenDB - A linq enabled document database for .NET

Database Drivers

  • MySQL Connector - Connector/Net is a fully-managed ADO.NET driver for MySQL
  • Npgsql - .Net data provider for Postgresql
  • MongoDB - Official MongoDB C# Driver
  • ServiceStack Redis - .NET's leading C# Redis Client
  • StackExchange Redis - General purpose redis client from StackExchange
  • Cassandra - DataStax .NET Driver for Apache Cassandra
  • Couchbase - Official couchbase .NET client library, based on the Enyim memcached client
  • Firebird.NET - The .NET Data provider is written in C# and provides a high-performance, native implementation of the Firebird API

Deployment

  • Unfold - Powershell-based deployment solution for .net web applications

DirectX

  • SlimDX - DirectX framework wrapper for .NET applications

Distributed Computing

  • Project Orleans - Orleans is a framework that provides a straight-forward approach to building distributed high-scale computing applications, without the need to learn and apply complex concurrency or other scaling patterns. It was created by Microsoft Research.
  • Akka.net - Akka.NET is a port of the popular Java/Scala framework Akka to .NET. This is a community driven port and is not affiliated with Typesafe who makes the original Java/Scala version.

Documentation

  • Sandcastle - Sandcastle Help File Builder similar to NDoc
  • SharpDox - A c# documentation tool
  • F# Formatting - Tools for documenting F# and C# projects from F# Script files, Markdown documents and inline XML or Markdown comments

E-Commerce and Payments

Environment Management

ETL

  • Reactive ETL - Reactive ETL is a rewrite of Rhino ETL using the reactive extensions for .NET

Game

  • MonoGame - One framework for creating powerful cross-platform games
  • CocosSharp - CocosSharp is a C# implementation of the Cocos2D and Cocos3D APIs that runs on any platform where MonoGame runs

Gis

  • NetTopologySuite A .NET GIS solution that is fast and reliable for the .NET platform
  • SharpMap An easy-to-use mapping library for use in web and desktop applications

Git Tools

  • LibGit2Sharp - LibGit2Sharp brings all the might and speed of libgit2, a native Git implementation, to the managed world of .Net and Mono.
  • posh-git - A PowerShell environment for Git
  • GitVersion - Generate a Semantic Version Number based on the state of your Git Repository
  • GitLink - let's users step through their code hosted on GitHub or BitBucket
  • NGit - NGit is a port of JGit to C#

Graphics

  • Oxyplot - OxyPlot is a cross-platform plotting library for .NET
  • OpenTK - The Open Toolkit is an advanced, low-level C# library that wraps OpenGL, OpenCL and OpenAL

GUI

  • MahApps.Metro - Toolkit for creating Metro styled WPF apps
  • Callisto - A control toolkit for Windows 8 XAML applications. Contains some UI controls to make it easier to create Windows UI style apps for the Windows Store in accordance with Windows UI guidelines.
  • ObjectListView - ObjectListView is a C# wrapper around a .NET ListView. It makes the ListView much easier to use and teaches it some new tricks
  • DockPanelSuite - The Visual Studio inspired docking library for .NET WinForms
  • AvalonEdit - The WPF-based text editor component used in SharpDevelop
  • XWT - A cross-platform UI toolkit for creating desktop applications with .NET and Mono
  • Gtk# - Gtk# is a Mono/.NET binding to the cross platform Gtk+ GUI toolkit and the foundation of most GUI apps built with Mono
  • MaterialDesignInXamlToolkit - Toolkit for creating Material styled WPF apps
  • Eto.Forms - Cross platform GUI framework for desktop and mobile applications in .NET and Mono
  • Dragablz - Dragable, tearable WPF tab control (similar to Chrome) which supports layouts and is full themeable, including themese compatible with MahApps and Material Design.

HTML and CSS

  • AngleSharp - Complete HTML5 DOM and CSS3 OM construction
  • CsQuery - HTML5 parser with jQuery style DOM interaction
  • ExCSS - CSS3 parser Library for C#
  • FluentBootstrap - Makes the Bootstrap CSS framework easier to use from ASP.NET MVC or WebPages.
  • HtmlAgilityPack - an agile HTML parser that builds a read/write DOM and supports plain XPATH or XSLT

HTTP

  • Http.fs - A functional HTTP client for [F#].
  • RestSharp - Simple REST and HTTP API Client for .NET
  • EasyHttp - Http Library for C#
  • Refit - The automatic type-safe REST library for Xamarin and .NET
  • RestEase - Easy-to-use typesafe REST API client library, which is simple and customisable. Heavily inspired by Refit

IDE

Image Processing

  • ImageResizer - Add commands to image URLs to get altered versions in milliseconds. Resizing, editing etc of images in real-time.
  • ImageProcessor - Open-source .NET library to manipulate images on-the-fly.

Install tools

  • Wix Toolset - The most powerful set of tools available to create your Windows installation experience

Internationalization

  • i18n - Smart internationalization for ASP.NET MVC

Interoperability

  • CppSharp - Tools to surface C++ APIs to C#
  • Sharpen - Sharpen is an Eclipse plugin created by db4o that allows you to convert your Java project into C#
  • CXXI - C++ interop framework

IoC

  • Castle Windsor - Castle Windsor is best of breed, mature Inversion of Control container available for .NET and Silverlight
  • Unity - Lightweight extensible dependency injection container with support for constructor, property, and method call injection
  • Autofac - An addictive .NET IoC container
  • Ninject - The ninja of .net dependency injectors
  • StructureMap - The original IoC/DI Container for .Net
  • Spring.Net - Spring.NET is an open source application framework that makes building enterprise .NET applications easier
  • LightInject - A ultra lightweight IoC container
  • TinyIoC - Single-file, easy and cross-platform IoC container

Logging

  • Essential Diagnostics - Extends the inbuilt features of System.Diagnostics namespace to provide flexible logging
  • NLog - NLog - Advanced .NET and Silverlight Logging
  • ELMAH - Official ELMAH site
  • Elmah MVC - Elmah for MVC
  • Logary - Logary is a high performance, multi-target logging, metric, tracing and health-check library for mono and .Net. .Net's answer to DropWizard. Supports many targets, built for micro-services.
  • Log4Net - The Apache log4net library is a tool to help the programmer output log statements to a variety of output targets
  • Serilog - A no-nonsense logging library for the NoSQL era. Combines the best of traditional and structured diagnostic logging in an easy-to-use package.
  • StackExchange.Exceptional - Error handler used for the Stack Exchange network
  • Semantic Logging Application Block (SLAB) - Extends the inbuilt features of System.Diagnostics.Tracing namespace (EventSource class) to log to several sinks including Azure Tables, Databases, files (JSON, XML, text). Supports in-process and out-of-process logging through ETW, and Rx for real-time filtering/aggregating of events.

Machine Learning and Data Science

  • Accord.NET - Machine learning framework combined with audio and image processing libraries (computer vision, computer audition, signal processing and statistics).
  • Accord.NET Extensions - Advanced image processing and computer vision algorithms made as fluent extensions.
  • AForge.NET - Framework for developers and researchers in the fields of Computer Vision and Artificial Intelligence (image processing, neural networks, genetic algorithms, machine learning, robotics).
  • Deedle - Data frame and (time) series library for exploratory data manipulation with C# and F# support
  • FsLab - A collection of data science and machine learning libraries for F# and .NET
  • R Provider - Type provider that exposes R packages and functions in a type-safe way to F# callers
  • F# Data - F# type providers for accessing XML, JSON, CSV and HTML files (based on sample documents) and for accessing WorldBank data

Markdown Processors

  • MarkdownSharp - Open source C# implementation of Markdown processor, as featured on Stack Overflow.
  • F# Formatting - Tools for documenting F# and C# projects. The library contains extensible Markdown parser as a core component.

Mail

  • FluentEmail - A Fluent Wrapper for System.Net.Mail with razor templating support.
  • MailKit - A complete cross-platform mail stack including IMAP, POP3, SMTP, authentication and more. Built on top of MimeKit.
  • MimeKit - A cross-platform .NET MIME creation and parser library with support for S/MIME, PGP, TNEF and Unix mbox spools.

Mathematics

  • MathNet - Math.NET is an opensource initiative to build and maintain toolkits covering fundamental mathematics, targetting advanced but also every day needs of .Net developers

Media

  • TagLib# - TagLib# (aka taglib-sharp) is a library for reading and writing metadata in media files, including video, audio, and photo formats

Metrics

Misc

  • Polly - Express transient exception handling policies such as Retry, Retry Forever, Wait andRetry or Circuit Breaker in a fluent manner. (.NET 3.5 / 4.0 / 4.5 / PCL / Xamarin)
  • AzureCrawler - Take HTML Snapshots for your Angular, Ember, Durandal or any JavaScript applications
  • LINQPad - a C#/VB/F# scratchpad that instantly executes any expression, statement block or program with rich output formatting and a wealth of features. Also lets you interactively query databases in LINQ. [$]
  • .NET Fiddle - Write, compile and run C# code in the browser. The C# equivalent of JSFiddle.
  • Humanizer - Humanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities
  • ScriptCS - Write C# apps with a text editor, nuget and the power of Roslyn!
  • CSScript - CS-Script is a CLR based scripting system which usesC# as a programming language. CS-Script currently targets Microsoft implementation of CLR (.NET 2.0/3.0/3.5/4.0/4.5) with full support on Mono. Comes with many additional features, such as script hosting.
  • ILSpy - ILSpy is the open-source .NET assembly browser and decompiler
  • BitSharp - C# Bitcoin Node

MVVM

  • Caliburn.Micro - A small, yet powerful framework, designed for building applications across all XAML platforms. Its strong support for MV* patterns will enable you to build your solution quickly, without the need to sacrifice code quality or testability.
  • MVVM Light Toolkit - The main purpose of the toolkit is to accelerate the creation and development of MVVM applications in WPF, Silverlight, Windows Store (RT) and for Windows Phone
  • Catel - Catel is an application development platform with the focus on MVVM (WPF, Silverlight, Windows Phone and WinRT) and MVC (ASP.NET MVC). The core of Catel contains an IoC container, models, validation, memento, message mediator, argument checking, etc.
  • UpdateControls - Update Controls does not require that you implement INotifyPropertyChanged or declare a DependencyProperty. It connects controls directly to CLR properties. This makes it perfect for the Model/View/ViewModel pattern.
  • ReactiveUI - An MVVM framework for .NET that integrates the Reactive Extensions (Rx) framework, enabling developers to build elegant, testable applications using WPF, Windows Store Apps, WP8 or Xamarin.
  • Okra App Framework - An app centric MVVM framework for Windows 8.1 built with dependency injection in mind, including a full set of Visual Studio MVVM templates.
  • WPF Application Framework (WAF) - A lightweight Framework that helps you to create well structured WPF Applications. It supports you in applying a Layered Architecture and the Model-View-ViewModel pattern.
  • MVVMCross - Cross-platform mvvm mobile development framework for WPF, Silverlight for WP7 and WP8, Mono for Android, MonoTouch for iOS, Windows Universal projects (WPA8.1 and Windows 8.1 Store apps). Makes extensive use of Portable Class Libraries (PCL) to provide maintainable cross platform C# native applications.
  • Stylet - Minimal MVVM framework inspired by Caliburn Micro, with good documentation, high test coverage, and its own IoC container

Office

  • ClosedXML - ClosedXML makes it easier for developers to create Excel 2007/2010 files
  • NPOI - This project is the .NET version of POI Java project at http://poi.apache.org/.
  • EPPlus - EPPlus is a .net library that reads and writes Excel 2007/2010 files using the Open Office Xml format (xlsx).
  • Open XML SDK - The Open XML SDK provides open-source libraries for working with Open XML Documents (DOCX, XLSX, and PPTX).

ORM

  • Entity Framework - Object-relational mapper that enables .NET developers to work with relational data using domain-specific objects
  • BL Toolkit - Business Logic Toolkit for .NET
  • Dapper
  • Dapper Extensions - Small library that complements Dapper by adding basic CRUD operations (Get, Insert, Update, Delete) for your POCOs
  • NHibernate - NHibernate Object Relational Mapper
  • FluentMigrator - Fluent Migrations framework for .net
  • ServiceStack.OrmLite - Light, simple and fast convention-based POCO ORM
  • Massive - A small, happy, data access tool that will love you forever.
  • LINQ to DB - The fastest LINQ database access library offering a simple, light, fast, and type-safe layer between your POCO objects and your database.

Package Management

  • NuGet - THE .NET Package Manager
  • MyGet - Hosted Package Repository for NuGet, NPM, Bower and VSIX. Also provides CI as-a-Service. [Free for OSS] [$]

PDF

  • ITextSharp - iText is a PDF library that allows you to CREATE, ADAPT, INSPECT and MAINTAIN documents in the Portable Document Format (PDF)[$]****[Free for OSS]

Profiler

  • MiniProfiler - A simple but effective mini-profiler for ASP.NET websites
  • Glimpse - The open source diagnostics platform for the web

Queue

  • NServiceBus - The most popular service bus for .NET
  • Hangfire - Incredibly easy way to perform fire-and-forget, delayed and recurring tasks inside ASP.NET applications
  • RabbitMQ.NET - Implementation of an AMQP client library for C#, and a binding exposing AMQP services via WCF
  • NetMQ - NetMQ is 100% native C# port of ZeroMQ
  • MassTransit - MassTransit is lean service bus implementation for building loosely coupled applications using the .NET Framework.
  • Rebus - Rebus is a lean service bus implementation for .NET, similar in nature to NServiceBus and MassTransit, only leaner
  • EasyNetQ - An easy to use .NET API for RabbitMQ

Scheduling

  • QuartzNet - Quartz Enterprise Scheduler .NET

SDK and API Clients

  • AWS SDK - The AWS SDK for .NET enables .NET developers to easily work with Amazon Web Services
  • Azure SDK Tools - A set of PowerShell cmdlets for developers and administrators to develop, deploy and manage Microsoft Azure applications
  • Octokit.NET - A GitHub API client library for .NET
  • DropNet - Client Library for the Dropbox API

Search

Serialization

  • Protobuf.NET - Protocol buffers is the name of the binary serialization format used by Google for much of their data communications
  • Json.NET - Popular high-performance JSON framework for .NET
  • ServiceStack.Text - JSON, JSV and CSV Text Serializers used in servicestack.net
  • Msgpack-Cli - MessagePack implementation for Common Language Infrastructure
  • Jil - Fast .NET JSON Serializer, built on Sigil (used by StackOverflow)
  • ProtoBuf - Generate C# code for protocol buffer serialization from a .proto specification.
  • F# Data - F# type providers for accessing XML, JSON, CSV and HTML files (based on sample documents) and for accessing WorldBank data

State machines

  • Stateless - Create state machines and lightweight state machine-based workflows directly in .NET code
  • Automatonymous - A state machine library for .Net - allows you to write fluent style state machines

Style Guide

Template Engine

  • RazorEngine - Open source templating engine based on Microsoft's Razor parsing engine
  • Nustache - Open source library for logic-less templates
  • DotLiquid - C# port of the Ruby Liquid templating language

Testing

  • NUnit
  • xUnit - xUnit.net is a free, open source, community-focused unit testing tool for the .NET Framework
  • SpecFlow - Binding business requirements to .Net code
  • AutoFixture - AutoFixture is an open source framework for .NET designed to minimize the 'Arrange' phase of your unit tests
  • Moq - The most popular and friendly mocking framework for .NET
  • Machine.Specifications - Machine.Specifications (MSpec) is a context/specification framework that removes language noise and simplifies tests.
  • Rhino Mocks - Dynamic Mocking Framework for .NET
  • Fluent Assertions - A set of .NET extension methods that allow you to more naturally specify the expected outcome of a TDD or BDD-style test
  • NSubstitute - A friendly substitute for .NET mocking frameworks
  • NBuilder - Rapid generation of test objects
  • Fuchu - A unit-testing library for F# with tests-as-values which makes DSLs extemely easy to create.

Visual Studio Plugins

  • Web Essentials - Web Essentials extends Visual Studio with lots of new features that web developers have been missing for many years
  • VsVIM - VIM in Visual Studio
  • Nuget Package Manager - NuGet is the package manager for the Microsoft development platform including .NET
  • SideWaffle - A collection of Item Templates for Visual Studio 2012/2013 that makes any web developer's life much easier
  • Resharper - Developer Productivity Tool for Visual Studio [$]
  • CodeContracts - Source code for the CodeContracts tools for .NET
  • Git Diff Margin - Displays live Git changes of the currently edited file on Visual Studio margin and scroll bar

Web Frameworks

  • ASP.NET MVC - ASP.NET is a free web framework for building great web sites and applications
  • NancyFx - Lightweight, low-ceremony, framework for building HTTP based services on .Net and Mono
  • IISNode - Host NodeJS applications in IIS
  • Suave.IO - Framework/library/web server that makes you cry tears of joy after finishing your project ahead-of-time when you look at the beautiful code you've written in [F#].

Web Servers

  • EmbedIO - Web server built on Mono and cross-platform
  • XSP - Mono's ASP.NET hosting server. This module includes an Apache Module, a FastCGI module that can be hooked to other web servers as well as a standalone server used for testing (similar to Microsoft's Cassini)

WebSocket

  • SignalR - Library for ASP.NET developers that makes it incredibly simple to add real-time web functionality to your applications
  • Fleck - Fleck is a WebSocket server implementation in C#. Branched from the Nugget project
  • Websocket-Sharp - A C# implementation of the WebSocket protocol client and server
  • XSockets - Provides a great set of tools for you to build real-time applications on the Microsoft.NET plattform and much more
  • WebSocket4NET - WebSocket client for .NET 2.0+, Xamarin, Mono, Silverlight, Windows Phone, & WinRT

Windows Services

  • TopShelf - An easy service hosting framework for building Windows services using .NET

Other Awesome Lists

Other amazingly awesome lists can be found in the awesome-awesomeness list.

License

CC0

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