Widzę tylko zalety architektury cebulowej w porównaniu z architekturą 3-warstwową, w której BL miał obowiązek wywoływać metody na DAL (lub interfejs DAL) w celu wykonania CRUD. Cebula ma lepszą separację problemów, testowalność, łatwość konserwacji i jest czystsza.
Czy architektura cebuli jest rzeczywiście lepsza pod każdym względem, a architektura trójwarstwowa to po prostu stary sposób robienia rzeczy, czy też istnieją scenariusze, w których wolałbym używać architektury trójwarstwowej, jeśli tak - które?