Je ne vois que des avantages à l'architecture d'oignon sur l'architecture à 3 couches où le BL avait la responsabilité d'appeler des méthodes sur DAL (ou une interface de DAL) pour faire crud. L'oignon a une meilleure séparation des préoccupations, de la qualification, de la maintenabilité et est plus propre.
Ainsi, l'architecture d'oignon est effectivement meilleure dans tous les aspects et une architecture à 3 couches n'est qu'une ancienne façon de faire des choses, ou il y a des scénarios où je préférerais utiliser l'architecture à 3 couches, si oui?
couches, oignons, ports, adaptateurs: tout de même
Étant donné que cet article précise que l'oignon équivaut à 3 couches + application du principe d'inversion de dépendance (DIP), la question devient alors "où devrais-je préférer utiliser la trempette?" Je dirais n'importe quel projet de non-jouet. L'utilisation de DIP permet au cœur de votre code d'être plus isolé, testable et maintenu. Lorsque vous ne vous souciez vraiment pas de cela, c'est quand c'est un projet de jeton ou lorsque vous négociez une main-d'œuvre pour la performance.
également, ne confondez pas la trempette avec des conteneurs DI (injection de dépendance). On n'implique pas l'autre.