Las personas a menudo afirman que están siguiendo una 'arquitectura de 3 niveles (o n-niveles)', y a veces afirman que están cambiando a un Modelo de dominio. Pero realmente nunca he entendido qué es esta mítica 'arquitectura de 3 niveles'. Parece no tener una definición formal. Si bien existen numerosas referencias y ejemplos que explican y demuestran el patrón del Modelo de dominio, cualquier referencia a 3 niveles simplemente sugiere que debe separar su código en UI, lógica de negocios y capas de acceso a datos. Y eso es todo lo que parecen decir.
Lo que me parece particularmente extraño es que, para mí, el Modelo de dominio es la encarnación perfecta de este paradigma de 3 niveles. el ORM y los archivos de mapeo son la capa de acceso a datos, el dominio es la lógica de negocios y la interfaz de usuario es, bueno, la interfaz de usuario. Entonces, ¿por qué la gente habla como si fuera algo nuevo y diferente, y algo a lo que deberían cambiarse?
Antes de ver personas que implementaban el Modelo de dominio, la mayoría de las aplicaciones eran UI que accedían a procedimientos almacenados con la lógica dividida en la UI y los SP. A veces había algunos ensamblajes llamados 'UI', 'BLL' y 'DLL', pero generalmente estos eran solo mediadores entre las UI y los SP, dejando más lugares para que la lógica se extendiera aleatoriamente.
Entonces, ¿qué es esta arquitectura mítica de '3 niveles'? ¿Realmente existe? y si es así, ¿dónde se implementan bien algunos ejemplos?
fuente