Skip to content

Backend Technology Stack

General

  • ASP.NET Core Documentation: The official ASP.NET Core documentation site.
  • .NET Core Documentation: Home of the technical documentation for .NET Core, C#, F#, and Visual Basic, including getting started instructions, tutorials, and samples.
  • .NET Core SDK: A general-purpose development platform maintained by Microsoft and the .NET community.
  • .NET Platform Standard: Explanation of the differences between old and new .NET versions.
  • Dotnet Core Extensions: Libraries to create production-ready applications, initially developed for services like Microsoft Teams.

Frameworks, Libraries, and Tools

Extensions to the .NET Runtime Libraries

Logging

  • Microsoft.Extensions.Logging: .NET supports high performance, structured logging via the ILogger API to help monitor application behavior and diagnose issues. Logs can be written to different destinations by configuring different logging providers. Basic logging providers are built-in and there are many third-party providers available as well.

Configuration

Options

  • Microsoft.Extensions.Options: .NET supports the concept of options pattern, which is a way to configure an object graph from configuration sources. The options pattern uses classes to represent a group of related settings. These classes are named options classes and are typically named with the suffix Options.

File Providers

Dependency Injection (DI)

Artificial Intelligence

API

Application Frameworks

MassTransit

  • MassTransit: A developer-focused platform for building distributed applications without complexity. Key NuGet packages:
    • MassTransit.Abstractions: MassTransit.Abstractions provides the core interfaces and types for MassTransit.
    • Transports: MassTransit supports a variety of message transports, including RabbitMQ, Azure Service Bus, Amazon SQS, and more.
    • Persistence: MassTransit supports a variety of persistence stores, including In-Memory, MongoDB, Entity Framework, and more.
    • Riders: MassTransit supports a variety of riders, including Kafka and Azure Event Hub.
      • MassTransit.Kafka: Kafka is supported as a Rider, and supports consuming and producing messages from/to Kafka topics. The Confluent .NET client is used, and has been tested with the community edition (running in Docker).
      • MassTransit.EventHub: Azure Event Hub is supported as a Rider, and supports consuming and producing messages from/to Event Hub.
    • MassTransit.TestFramework: MassTransit.TestFramework provides a testing framework for MassTransit. The MassTransit Test Harness is a framework for extending your existing IOC registrations with a testable bus instance.

gRPC

  • gRPC for .NET: Remote Procedure Calls (RPCs) provide a useful abstraction for building distributed applications and services. The libraries in this repository provide a concrete implementation of the gRPC protocol, layered over HTTP/2. These libraries enable communication between clients and servers using any combination of the supported languages.
    • Grpc.Tools: gRPC and Protocol Buffer compiler for C# projects.
    • Grpc.AspnetCore.Server: gRPC server library for .NET (gRPC support for ASP.NET Core).
    • Grpc.AspNetCore.Server.Reflection: Automatic discovery of services contracts for Grpc.Reflection.
    • Grpc.AspNetCore.Web: Grpc.AspNetCore.Web provides middleware that enables ASP.NET Core gRPC services to accept gRPC-Web calls.
    • Grpc.Reflection: Grpc.Reflection contains the reference implementation of gRPC reflection service (gRPC C# Server Reflection).
    • Grpc.StatusProto: This is a prototype NuGet package providing C# and .NET client and server side support for the gRPC richer error model.
    • Grpc.Net.Client: gRPC client library for .NET.
    • Grpc.Net.ClientFactory: gRPC integration with HttpClientFactory offers a centralized way to create gRPC clients. It can be used as an alternative to configuring stand-alone gRPC client instances.
    • Grpc.HealthCheck: Grpc.HealthCheck contains the reference implementation of gRPC health check service.
    • ServiceModel.Grpc: ServiceModel.Grpc enables applications to communicate with gRPC services using a code-first approach (no .proto files), helps to get around limitations of gRPC protocol like "only reference types", "exact one input", "no nulls", "no value-types". Provides exception handling. Helps to migrate existing WCF solution to gRPC with minimum effort.
    • ServiceModel.Grpc.AspNetCore: ServiceModel.Grpc.AspNetCore extensions.
    • ServiceModel.Grpc.AspNetCore.Swashbuckle: Swagger integration, based on Swashbuckle.AspNetCore.

WCF Core

Authentication and Authorization

Caching

Code Analysis

Code Coverage

  • coverlet: A cross-platform code coverage library for .NET Core, supporting integration with build and CI tools.

Compression

  • System.IO.Compression: Native .NET library for handling compressed files (e.g., ZIP).
  • SharpCompress: A fully managed library for working with various archive formats (e.g., ZIP, RAR, TAR).

Compilers, Transpilers, and Languages

  • Roslyn: The .NET Compiler Platform providing C# and Visual Basic compilers along with rich code analysis APIs.

CRM

  • SalesForce Integration: Explore options for integrating Salesforce with .NET applications, including REST API and event-based mechanisms.
    • NetCoreForce: A Salesforce REST API toolkit and wrapper for .NET Core.

Exception Handling

Databases

Drivers

  • MongoDB.Driver: Official MongoDB .NET Driver with BSON serialization support.
    • MongoDB.Bson: Library for BSON serialization and deserialization.

Migrations

  • FluentMigrator: A migration framework for .NET, allowing fluent syntax for database schema changes.
  • MongoDBMigrations: A library for handling migrations in MongoDB with fluent syntax and CI/CD integration.

Diagnostics

Distributed Computing

Features Management

Graphics

Health Checks

Logging

Localization

Metrics

  • AppMetrics: Open-source .NET library for capturing application metrics and reporting health.
  • Audit.NET: Framework for auditing executing operations.

Misc

  • AutoMapper: Convention-based object-to-object mapper.

Validation

Monitoring

ORM

PDF

  • iText for .NET: A comprehensive SDK for creating, editing, and enhancing PDF documents.
  • PdfPig: This project allows users to read and extract text and other content from PDF files. In addition the library can be used to create simple PDF documents containing text and geometrical shapes.
  • Markdown2Pdf: .NET library for converting Markdown to PDF. Uses Markdig for converting markdown to HTML and then Puppeteer Sharp to convert that output to PDF.

Document and Barcode Handling

  • ZXing.Net: A .NET port of the ZXing barcode scanning library.
  • QRCoder: A pure C# implementation for generating QR codes.

Resiliency

Scheduler and Background Tasks

  • Hangfire: A library for fire-and-forget, delayed, and recurring tasks in ASP.NET applications.
  • Quartz.NET: A full-featured, open-source job scheduling system for .NET applications.

Serialization

Serverless

  • Azure Functions: Serverless compute platform for running code without infrastructure management.

Telemetry

Testing

Queue and Messaging

Miscellaneous Libraries

  • Fody: Extensible framework for weaving .NET assemblies.

Workflows

  • DurableTask: Framework for writing long-running, persistent workflows in C# using async/await patterns.