Awesome curated collection of libraries to build Software as a Service (SaaS) Web application using ASP.NET Core
Architecture references
- Microsoft Cloud Design Patterns
- Awesome collection of Sample architecture projects and real time applications
- Design Patterns for Humans
- ASP.NET Core Developer Roadmap
Project templates / Frameworks
- Dotnet-Boxed - Project templates with batteries included, providing the minimum amount of code required to get you going
- Clean Architecture - This is a solution template for creating a Single Page App (SPA) with Angular and ASP.NET Core following the principles of Clean Architecture.
- starter-kit - Web project starter kit including modern tools and workflow based on angular-cli, best practices from the community, a scalable base template and a good learning base.
- abp - ABP is a complete architecture and strong infrastructure to create modern web applications! Follows best practices and conventions to provide you a SOLID development experience.
- fission - Fast and Simple Serverless Functions for Kubernetes
- MassTransit - Distributed Application Framework for .NET
Also, I suggest watching this video on clean architecture by Jason Taylor.
Multitenancy
- Finbuckle.MultiTenant - Finbuckle.MultiTenant is a multitenancy library for ASP.NET Core. It provides functionality for tenant resolution, per-tenant app configuration, and per-tenant data isolation.
- cloudscribe - cloudscribe is a related set of projects and components for building cross platform web applications on ASP.NET Core. Get the big picture at cloudscribe.com
- OrchardCore - Orchard Core Framework: An application framework for building modular, multi-tenant applications on ASP.NET Core.
- aspnetboilerplate - ASP.NET Boilerplate multitenancy libraries
- saaskit - SaasKit is a .NET toolkit for building SaaS (Software As A Service) applications.
You can also check out blog posts on multitenancy by Ben Foster or Gunnar Peipman. These blogs will help you in setting up multitenancy in your project.
Logging / Monitoring
- Exceptionless - It provides real-time error reporting for your JavaScript, Node, .NET Core, ASP.NET, Web API, WebForms, WPF, Console, and MVC apps.
- Serilog - Serilog is a diagnostic logging library for .NET applications. It is easy to set up, has a clean API, and runs on all recent .NET platforms.
- NLog - NLog is a free logging platform for .NET with rich log routing and management capabilities. It makes it easy to produce and manage high-quality logs for your application regardless of its size or complexity.
- Ben.Demystifier - High performance understanding for stack traces (Make error logs more productive)
- elmah.io - elmah.io is the easy error logging and uptime monitoring service for .NET. Take back control of your errors with support for all .NET web and logging frameworks.
- prometheus-net - .NET Standard library to instrument apps for the Prometheus metrics and monitoring system
- Audit.NET - An extensible framework to audit executing operations in .NET and .NET Core.
- AuditLogging - Simple audit logging for .NET Core with EntityFramework Core
- BenchmarkDotNet - Powerful .NET library for benchmarking
- MiniProfiler - A simple but effective mini-profiler for ASP.NET (and Core) websites
Health checks
- AspNetCore.Diagnostics.HealthChecks - ASP.NET Core Health Check packages for widely used services and platforms.
Autentication / Authorization
- IdentityServer4 - OpenID Connect and OAuth 2.0 Framework for ASP.NET Core
- JPProject.IdentityServer4.AdminUI - This is an Administrator Panel for IdentityServer4. It's available in 2 versions: Light and Full. See below the differences.
- PermissionAccessControl2 - An example application that contains an approach to feature and data authorization code.
Feature Management
- FeatureManagement-Dotnet - Feature flags provide a way for ASP.NET Core applications to turn features on or off dynamically.
- FeatureSwitch - FeatureSwitch is library that should reduce amount of time and code required to implement feature switching in your projects.
Validation
- FluentValidation - A small validation library for .NET that uses a fluent interface and lambda expressions for building validation rules.
Caching
- StackExchange.Redis - StackExchange.Redis is a high performance general purpose redis client for .NET languages
- CacheManager - is an open source caching abstraction layer for .NET written in C#. It supports various cache providers and implements many advanced features.
- HttpCacheHeaders - ASP.NET Core middleware that adds HttpCache headers to responses (Cache-Control, Expires, ETag, Last-Modified), and implements cache expiration & validation models
API Gateway / Reverse Proxy
- Ocelot - Ocelot is a .NET API Gateway.
- ProxyKit - toolkit to create code-first HTTP Reverse Proxies hosted in ASP.NET Core as middleware.
- YARP (preview) - A Reverse Proxy by microsoft
Service Communication
- Polly - Polly is a .NET resilience and transient-fault-handling library that allows developers to express policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback in a fluent and thread-safe manner.
Documentation
- Swashbuckle.AspNetCore - Swagger tooling for API's built with ASP.NET Core. Generate beautiful API documentation, including a UI to explore and test operations, directly from your routes, controllers and models.
- redoc - OpenAPI/Swagger-generated API Reference Documentation
- docsify-dotnet-core - a sample based on docsify static help document generator based on markdown.
Schedulers
- quartznet - Quartz.NET is an opensource project aimed at creating a free-for-commercial use Job Scheduler, with enterprise features.
- Hangfire - Incredibly easy way to perform fire-and-forget, delayed and recurring jobs inside ASP.NET applications.
- Runly - Multi-threaded batch processing and background jobs for .NET Core.
- MailKit - A cross-platform .NET library for IMAP, POP3, and SMTP.
- MimeKit - A .NET MIME creation and parser library with support for S/MIME, PGP, DKIM, TNEF and Unix mbox spools.
- FluentEmail - .NET Core email sending
Unit or Integration Testing
- xunit - xUnit.net is a free, open source, community-focused unit testing tool for the .NET Framework.
- moq - The most popular and friendly mocking framework for .NET
- NSubstitute - NSubstitute is designed as a friendly substitute for .NET mocking libraries.
- AutoFixture - It is an open source library for .NET designed to minimize the 'Arrange' phase of your unit tests
- fluentassertions - Fluent API for asserting the results of unit tests that targets
- snapshooter - Snapshooter is a snapshot WEB API testing tool for .NET Core and .NET Framework
- ApprovalTests.Net - ApprovalTest verification library for .Net
- squadron - A testing framework for containerized and cloud services
- magnet - ApprovalTest verification library for .Net
- Netling - Netling is a load tester client for easy web testing.
- Respawn - Intelligent database cleaner for integration tests
- jest-dotnet - Simple snapshot testing with inspiration from amazing Jest library.
ORM
- Dapper - a simple object mapper for .Net by Stack Overflow
- RepoDb - A hybrid ORM library for .NET.
- Dapper-Plus - Dapper Plus - High-Efficient Bulk Actions (Insert, Update, Delete, and Merge) for .NET
- sqlkata - A fluent SQL query builder for C#
- dynamic-linq-query-builder - A truly generic and dynamic linq query builder to compliment jQuery QueryBuilder and other dynamic linq query generation needs.
- Insight.Database - Fast, lightweight .NET micro-ORM
Security
- NWebsec - Security libraries for ASP.NET
- CheatSheetSeries - Basic .NET security tips for developers.
- aspnetcore-security-headers - Middleware for adding security headers to an ASP.NET Core application.
- AspNetCoreRateLimit - ASP.NET Core rate limiting middleware
- HtmlSanitizer - Cleans HTML to avoid XSS attacks
- awesome-dotnet-security - Awesome .NET Security Resources
Cryptography
- BCrypt.net - A .net Core port of BCrypt.net
- Portable.BouncyCastle - The Bouncy Castle Crypto package is a C# implementation of cryptographic algorithms and protocols
Misc
- EventStore - The open-source, functional database with Complex Event Processing in JavaScript.
- MessagePack-CSharp - Extremely Fast MessagePack Serializer for C#
- MediatR - Simple, unambitious mediator implementation in .NET
- AutoMapper - AutoMapper is a simple little library built to solve a deceptively complex problem - getting rid of code that mapped one object to another.
- Foundatio - Pluggable foundation blocks for building distributed apps.
- NSwag - The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript.
- AutoWrapper - A simple, yet customizable global exception handler and Http response wrapper for ASP.NET Core APIs.
- NRules - Rules engine for .NET, based on the Rete matching algorithm, with internal DSL in C#.
- elsa-core - A .NET Standard 2.0 Workflows Library
- cake-build - Cake (C# Make) is a cross platform build automation system.
- BundlerMinifier - Visual Studio extension
- nodatime - A better date and time API for .NET
- CliWrap - CliWrap is a library for interacting with command line executables in a functional manner. It provides a convenient model for launching external processes, redirecting inputs and outputs, awaiting completion, and handling cancellation.
- FluentDocker - Commands, Services and Fluent API for docker, docker-compose & docker-machine, for win/mac/linux and native docker in c#
- FluentFTP - An FTP and FTPS client for .NET & .NET Standard, optimized for speed.
- reCAPTCHA - reCAPTCHA 2.0 for ASPNET Core
- Z.ExtensionMethods - C# Extension Methods | Over 1000 extension methods
- html-agility-pack - This is an agile HTML parser that builds a read/write DOM and supports plain XPATH or XSLT
- NServiceBus - The most popular service bus for .NET
- YamlDotNet - YamlDotNet is a .NET library for YAML
- protobuf-net - Protocol Buffers library for idiomatic .NET
- TimeZoneConverter - Lightweight libraries to convert between IANA, Windows, Rails, and POSIX time zones.
- ExtCore - ExtCore is a free, open source and cross-platform framework for creating modular and extendable web applications based on ASP.NET Core.
- Detection - ASP.NET Core Detection with Responsive View for identifying details about client device, browser, engine, platform, & crawler.
For more such libraries check out awesome-dotnet-core
Code Quality - Static Analyzers
awesome-dotnet-core-static-analyzers - Awesome collection of .NET Core Static Analyzers using the .NET Compiler Platform (Roslyn). Also includes a How to guide for using these analyzers and sample project with Cake Build Script to integrate in Continuous integration.
Visit my site Share Tech Links for curated list of tech related interesting blog links.
Pull requests are welcome for including new items in this list.