Tổng hợp các kiến thức và các thư viện phổ biến

Dưới đây là tổng hợp các kiến thức cần thiết, thư viện và các công cụ nên tìm hiểu cho các lập trình viên khi xây dựng các ứng dụng Web trên nền tảng .NET của Microsoft.


Các kiến thức chung

Operating Systems
Basic Terminal
Protocols (HTTP, FTP, SSH ...)
HTTP, HTTP/2, HTTPS, DNS, Networking, Hosting
Web Server
Character Encodings
OOP
Data Structures and Algorithms
Software Design (Logical, Process, Development, Physical, Use Case View)
Software Design (Class, Database, Flow, Sequence Diagram)
Design Patterns (Creational, Structural, Behavioral)
Design Patterns (Repository, Unit of Work, Specification, Service Locator, CQRS, Event Sourcing)
Domain Driven Design (Domain Complexity, Technical Complexity, Seperation of Concerns, Sub-domains, Bounded Contexts, Context Maps, Context Boundaries, Ubiquitous Language)
Domain Driven Design (Entities, Value Objects, Domain Services, Aggregates, Repositories, Anti-corruption Layers, Domain Events, Anemic vs Rich Models)
Architecture Patterns (Layered, Modular, Service-Oriented, Microservices, Serverless)
SOLID, KISS, YAGNI, DRY
Git, Github
CI/CD
HTML, CSS, Javascript
SQL Database (SQL, ORM, Indexes, Transactions, Normalization,  Replication, Sharding, CAP)
SQL Server (Views, Functions, Stored Procedures, Triggers, Indexes, ...)
NoSQL Database
Dependency Injection
APIs (REST, gRPC, GraphQL, Open API, Swagger)
Authentication (Cookies, Basic, Windows, Token, JWT, OAuth2, OpenID)
Authorization (Roles, Claims, Attributes, Policies)
Localization, Globalization
Caching
Search
Web Socket
Load Balancing
Web Securies (HTTPS, SSL/TLS, CORS, Hashing)
Testing (Unit, Behavior, Integration, E2E)
Single Page Application (Angular, React, Vue)
Package Managers
Serverless
Microservices
Cloud


Các kiến thức liên quan đến nền tảng  .NET

C# (OOP, Generics, Linq, Collections, Attributes, Reflection, Delegate, Event, Extension Method, Anomymous Methods, Lamda Expression, Expression Tree, Async/Await, Multi-Threading, Regular Expressions, Reflection, Dynamics, Cryptography)
Package Manager (Nuget)
ASP .NET Core (Application Settings, Configurations ...)
ASP .NET Core MVC (Models-Views-Controllers, Request Life Cycle, Middlewares, Routing, Model Binding, Model Validation, Action, Filters, View Engines, View Components, Tag Helpers, Action Results, Global Exception Handler, Attributes, ...)
ASP .NET Core Razor Pages
Blazor ( Server Side, WebAssembly)
Profiler
Dotnet CLI
Blazor

Các kiến thức liên quan đến triển khai trên mô hình Microservices

Container (Docker)
Kubernetes
Messaging Patterns (Fire - Forget, Send - Receive, Request - Response, Publish - Subscribe)
Message Broker
Message Bus
API Gateway
Service Discovery
Service Proxy
Monitoring
Tracing
Service Mesh
Cloud Native

Một số thư viện, công cụ hỗ trợ phân theo các nhóm chủ đề khác nhau

CQRS

MediatR

Mapping

AutoMapper

Validation

FluentValidation
Ensure.That
Dawn.Guard
Ardalis.GuardClauses

Datetime

Nodatime

Depencency Injection

Microsoft.Extensions.DependencyInjection + Scrutor
Autofac
Unity
NInject
Castle.Windsor
CommonServiceLocator
Structuremap
SimpleInjector
DryIoc

Database

Relational Database
SQL Server (ADO.NET, System.Data.SqlClient, Microsoft.EntityFrameworkCore.SqlServer)
SQLite
MySQL, MariaDB (MySqlConnector, MySql.Data, Pomelo.EntityFrameworkCore.MySql)
PostgreSQL (Npgsql.EntityFrameworkCore.PostgreSQL, Marten)


NoSQL Databases
MongoDB (MongoDB.Driver, MongoDB.Driver.GridFS)
CouchDB (CouchDB.NET)
Cassandra (CassandraCSharpDriver)
RavenDB (RavenDB.Client)

Cloud Databases
Azure CosmosDB
Amazon DynamoDB


Dapper
EF Core
NHibernate


GraphQL

HotChocolate
GraphQL .NET
Tanka.graphql

GraphQL.Server.Ui.Playground
GraphQL.Server.Ui.Voyager
GraphQL.Server.Ui.GraphiQL

Apollo

APIs

ASP .NET Core

Swashbuckle, NSwag

ServiceStack


File 

CsvHelper, EPPlus, ClosedXML, ExcelDataReader

Itextsharp, PdfSharp, DinkToPdf, IronPdf

SharpZipLib, System.IO.Compression.ZipFile, SharpCompress, DotNetZip
DocX
GemBox.Document

Json

Newtonsoft.Json, System.Text.Json, Utf8Json, ServiceStack.Text

Testing

xUnit, NUnit
Moq, NSubstitute, FakeItEasy, AutoFixture, JustMock
FluentAssertions, Shouldly

OpenCover, AxoCover, dotCover

WebApplicationFactory, TestServer

Selenium, PuppeteerSharp

Genfu
Bogus
Faker-cs
NBuilder

Security

IdentityServer4
Microsoft.IdentityModel.JsonWebTokens
System.IdentityModel.Tokens.Jwt
Microsoft.IdentityModel.Tokens
Microsoft.AspNetCore.Authentication.JwtBearer
Microsoft.AspNetCore.Authentication.OpenIdConnect
Microsoft.AspNetCore.Authentication.Cookies
Microsoft.AspNetCore.Authentication.OAuth
Microsoft.AspNetCore.Authentication.Google
Microsoft.AspNetCore.Authentication.Facebook
Microsoft.AspNetCore.Authentication.Twitter
Microsoft.AspNetCore.Authentication.MicrosoftAccount
Microsoft.AspNetCore.Authorization
Microsoft.AspNetCore.Identity

FusionAuth
Keycloak

Logging

Serilog, Nlog, log4net
Fluentd, Logtash, Seq, Grafana Loki, Sentry.io, Graylog, Splunk, Loggly



Caching

Memory caching
Distributed caching (Redis, Memcached)
Database Caching

StackExchange.Redis
CacheManager
EasyCaching

Monitoring

App Metrics
Prometheus (Prometheus-net)
Grafana

Tracing

OpenTelemetry, OpenCensus, OpenTracing
Zipkin, Jaeger

Webocket 

SignalR

Sync Messaging (REST)

RestSharp
System.Net.Http
Microsoft.AspNet.WebApi.Client
Refit
System.Net.Http.Json
RestEase
ServiceStack.HttpClient
RestClient.Net
Flurl.Http


Polly

Sync Messaging (RPC)

gRPC
Google.Protobuf
Grpc
Grpc.Core
Grpc.Reflection
Google.Api.Gax.Grpc
Grpc.Tools
Grpc.AspNetCore

Async Messaging

Message Broker
RabbitMQ (RabbitMQ.Client, RawRabbit)
Apache Kafka (Confluent.Kafka)
ActiveMQ
Azure Service Bus
Amazon SQS
MQTT (MQTTnet)
CloudEvents + NATS

Message Bus
CAP
EasyNetQ
Rebus
MassTransit
NServiceBus

API Gateway

Ocelot , Kong, Ntrada
Envoy

Background Tasks

HangFire, Quartz.NET, Coravel, FluentScheduler, Ncrontab
Worker Service

Search

ElasticSearch (Elasticsearch.Net, NEST)
Solr
Sphinx

Service Discovery

Consul
Neflix Eureka (Steeltoe.Discovery.ClientCore)

Service Mesh

Linkerd, Istio, Consul Connect, Kuma

Service Proxy, Load Balancer

Envoy
Nginx
HAProxy
Traefik

Kubernetes

Helm
Portainer, Rancher

Storing secrets 

Azure Key Vault
Vault (VaultSharp)

CI/CD

AppVeyor, Travis CI, GitLab CI, Bitbucket Pipelines, Azure Pipeline

Source Control

Git
Github, GitLab, Bitbucket

Web  Server

Nginx, Apache

Email, SMS 

MailKit, SendGrid, FluentEmail
Twilio

Health Checks

AspNetCore.HealthChecks.*

JetBrains Tools

Rider IDE
ReSharper
dotCover
dotPeek
dotTrace
dotMemory

Microservice Framework

Steeltoe


Graphics, Image Processing

SkiaSharp
EMGU.CV, OpenCVSharp
ImageProcessor
ImageResizer
ZXing.Net
Magick.NET

AWS

AWSSDK.*


Azure

Azure Active Directory
Azure SignalR Service
Azure App Service
Azure Functions
Azure Kubernetes Service

Utilities

DynamicExpresso
GlobalExceptionHandler
Figgle
SmartFormat.NET
ReflectionMagic
Dbup, FluentMigrator, Redgate Flyway
System.ValueTuple
MessagePack
System.Reactive
Humanizer.Core
Nancy
Pipelines.Sockets.Unofficial
DnsClient
JetBrains.Annotations
SmartSql
LetsEncrypt
BenchmarkDotNet
ProxyKit
NewId
Morelinq, LinqKit
MetadataExtractor
Wangkanai.Detection
WebEssentials.AspNetCore.ServiceWorker
NetEscapades.AspNetCore.SecurityHeaders
Joonasw.AspNetCore.SecurityHeaders
NWebsec
WebMarkupMin
MiniProfiler
IPNetwork2
Exceptionless
AspNetCoreRateLimit
FluentFTP
WinSCP
Njsonschema
Xabe.FFmpeg
SSH.NET
StyleCop.Analyzers
FastMember
AngleSharp
NUglify
TimeZoneConverter
BCrypt.Net
QRCoder
NBitcoin
YamlDotNet
ReportGenerator
CommandLineParser
Antlr
WebGrease
MedallionShell
GMap.NET



Tiếp tục cập nhật ...