15 Libraries in
ASP.NET Core
Every Developer
Should Know
About
With Alternatives
Aram Tchekrekjian @AramT87
ASP.NET Core
Serilog
Write structured logging on a wide
range of outputs (sinks) with the
ability to write your own sink,
distinguish between the levels of logs
and fine grain the formatting for your
logs to match your logging
requirements.
Alternative?
Log4Net
@AramT87
ASP.NET Core
Authentication JwtBearer
Build a solid JWT Authentication in
your ASP.NET Core Web API with a
cryptographically secure JWT
Generation and Validation.
Alternative?
OpenIddict or IdentityServer4
(DuendeSoftware) for Security Token
Services (STS)
Auth0 or KeyCloak for Identity
Providers (IdP) @AramT87
Newtonsoft.Json
A high-performance library to easily
convert between JSON and .NET
Objects, create and parse JSON
Objects, query JSON objects using
LINQ and provide formatting HTTP
Responses.
Alternative?
System.Text.Json
@AramT87
SwashBuckle
ASP.NET Core Swagger
Makes your RESTful APIs discoverable
by generating OpenAPI Specification
file, it can enable your clients visualize
and test your APIs with an elegant
web-based interface (Swagger UI).
Alternative?
NSwag
@AramT87
Mapster
Rely on a simple yet powerful, blazing-
fast, configuration-based tool to
handle the objects mapping for you.
Supports Fluent API, Nested
Mappings, Immutable Collections.
Alternative?
AutoMapper
@AramT87
Entity Framework
Core
A widely-popular and easy to use
Object-relational Mapping library, it
provides you with a convenient way to
build a comprehensive data access
layer that can connect to virtually any
relational or non-relational databases.
Alternative?
Dapper
@AramT87
ASP.NET Core MVC
Versioning
Apply versioning for your RESTful
APIs to swiftly release new changes
on your APIs while not affecting your
current clients.
Alternative?
Asp.Versioning.Http
@AramT87
ASP.NET Core
Fluent Validation
Apply seamless and easy validations
on models and entities with strongly-
typed validation rules based on the
Fluent API.
Alternative?
.NET Data Annotations
(System.ComponentModel.DataAnnotations)
@AramT87
StackExchange
Redis
A higly-reliable and scalable solution
for Distributed Caching, Streaming
and Messaging. Redis is an in-memory
data store that can store different
formats of data structures, like strings,
hashes, dictionaries, lists and others.
Alternative?
NCache
@AramT87
Refit
Handle and manage all the API Calls to
other web services with a clean
interface and simplified
implementation for interceptors.
Refit was inspired by the widely-
popular Android/Java Retrofit library,
and now considered as the Retrofit of
.NET.
Alternative?
RestSharp
@AramT87
Hangfire
Create and manage different types of
background jobs, including fire-and-
forget, delayed, batches and others.
Hang fire is your best library to run
background jobs in .NET including
ASP.NET Core and other service
applications
Alternative?
Quartz.NET
@AramT87
MediatR
Decouple your intra communicating
components by introducing a
Mediator object to handle all
communications.
With the support of requests,
responses, separation of commands
and queries, notifications and events
you can easily implement the
Mediator Design Pattern.
Alternative?
Brighter @AramT87
xUnit.net
Support your test-driven development
approach with tests that are tailored
towards Facts and Theories with the
support of range of input data.
This great testing tool and library
enables you to run your tests on
multiple .NET frameworks, to check
your code compatibility with your
targeting versions.
Alternative?
NUnit @AramT87
Polly
Widely popular library to make your
.NET app resilient and reliable against
transient-faulty situations.
Using Polly you can apply fluent-api
based policies like retry, circuit
breaker, timeout, fallback and many
more to make your application
resilient for network issues, server
errors and request timeouts
Alternative?
Http.Resilience @AramT87
NSubstitute
Easily build strongly-typed substitues
or mocks for your classes and
interfaces and use them in your AAA
(Arrange-Act-Assert) style unit tests
Alternative?
JustMock
@AramT87
Thank You
Follow me for more content
Aram Tchekrekjian
AramT87
CodingSonata.com/newsletters