Skip to content

archi@modular archi

odalet edited this page Aug 9, 2020 · 4 revisions

Modular Architecture & Micro-Services

General

Onion/Clean/Hexa Architecture

Clean Architecture Layers

Declined with ASP.NET Core

Traditional Onion
Traditional Onion

Different views of the same arch (example app is CodeCamp Server):

Flattened Layered
flattened onion

clean

octo1 octo2

Tout dépend du Domain, le Domain ne dépend de rien.

Ports and adapters

octo3 octo4

Une organisation à éviter est de regrouper les classes par types. Par exemple le répertoire des “ports”, ou le répertoire des “repositories” (si vous utilisez ce pattern), ou le répertoire des “services”. Pensez 100 % métier dans votre code métier, y compris pour l’organisation de vos modules ou répertoires ! L’idéal est de pouvoir ouvrir un répertoire ou un module de la logique métier et de comprendre tout de suite les problèmes métier que votre programme résout ; plutôt que de ne voir que des répertoires “repositories”, “services”, ou autre “managers”.

full


TODO

  • Simplifier la paire Module/Definition --> Tout dans Definition
  • Simplifier le fx de validation ?
    • Moins fonctionnel, plus procédural
  • Revoir les interfaces d'exposition des résultats de validation
    • Done: moins d'interfaces ; on renvoie directement des ValidationRule<string>

RPC with gRpc

Threading

Micro-services

Misc

Patterns

Microservices with C# and RabbitMQ

Process Management

Messaging

Process-based Architecture

Command-line

ServiceStack

Actor frameworks

Microsoft Orleans

Microsoft Service Fabric

Akka

Akka.NET

proto.actor

CAF

Interop

Plugins

Clone this wiki locally