In the upcoming years, you will see a huge market for SaaS products. If you are building a SaaS application, have a look at this curated collection of open source libraries to build SaaS application using Microsoft ASP.NET Core technology, which is battle-tested, fast, and efficient. Microsoft is improving the performance of ASP.NET Core release after release.

Architecture references

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

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

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 a library that should reduce the 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 — A magical documentation site generator.

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.

Mail

  • 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 the 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

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.
  • 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#.
  • 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

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 into Continuous integration.

Last modified: August 2, 2020

Author

Comments

Write a Reply or Comment

Your email address will not be published.