Esta discusión la tuve cuando entré a trabajar a la empresa donde estoy ahora.
Donde estaba antes, laburabamos con 3 o 4 capas de componentes:
- Presentación (HTML o WinForms)
- Facade (solo si la aplicación era ENORME)
- Lógica
- DB
La presentación eran los ASPx y JS que fueran necesarios tener. La capa de Facade se usaba para hacer transformaciones, o tocar, si era necesario, la información que llegaba desde la capa de Presentación para pasar a la capa de Lógica. La de Lógica se encargaba de cualquier transformación a nivel lógico de la información, y por último, la capa de DataBaseAccess, que se comunicaba contra las Application Data Blocks de Microsoft (en esa época se llamaban distinto, pero whatever, era el objeto que en realidad tiraba la info a la DB, y se encargaba de las transacciones, etc).
Usando un ejemplo gráfico, quedaría de esta forma (no pongo facade aca, y es algo muy basico).
- La página default.aspx es la presentación
- La clase user.cs se encarga de verificar y transformar la información
- La clase userDB.cs se engarga de preparar la info para pasarle a las DataBlock
- La DataBlock ejecuta y devuelve True si todo salió bien
Sin embargo, aca en esta empresa sacan una capa (la de lógica) porque dicen que pasar entre capas tiene “mas peso”…
Alguien sabe si esto es verdad? O es un capricho? O sea, entiendo que una llamada a una capa mas pueden ser algunos milisegundos, pero a mi gusto, queda mucho mas prolijo de la primer manera.

