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
- Microsoft Cloud Design Patterns 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
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 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.
- 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
- 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.
- 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.
Comments