Organizar el código en capas separadas es una de las mejores prácticas para construir aplicaciones mantenibles y escalables. Cuando ya se cuenta con una capa de acceso a datos y una capa de entidades, el siguiente paso natural es crear una capa de negocio (business layer) que actúe como intermediaria entre la interfaz de usuario y la base de datos.
¿Qué es la capa de negocio y por qué es necesaria?
La capa de negocio es una capa intermedia encargada de estructurar y organizar las consultas que viajan desde un formulario hacia la base de datos, y viceversa [00:20]. En lugar de mezclar la lógica de acceso a datos directamente en la capa de presentación, se centraliza todo en esta capa para lograr una separación clara de responsabilidades.
Aunque técnicamente se podría colocar esta lógica dentro de la misma librería de Data Access, hacerlo así no sería organizado [01:27]. Separar en una librería independiente permite:
- Localizar rápidamente la lógica de cada operación.
- Mantener un código más limpio y comprensible.
- Facilitar el trabajo en equipo y el mantenimiento a largo plazo.
¿Cómo se crea la librería de clases para la capa de negocio?
Desde el explorador de soluciones, se hace clic derecho sobre la solución y se selecciona agregar nuevo proyecto [00:55]. Se elige la plantilla Librería de clases de .NET Core con C# y se le asigna el nombre Business. Por defecto, esta plantilla incluye una clase llamada Class1 que puede eliminarse sin problema, ya que se construirán clases propias [01:15].
¿Qué dependencias necesita la capa de negocio?
La capa de negocio representa una integración entre la capa de presentación y la capa de acceso a datos, y la información se transmite a través de la capa de entidades [01:38]. Por eso, dentro de las dependencias del proyecto Business se agregan referencias tanto a Data Access como a Entities.
Además, en la capa final de presentación (el proyecto de inventario) se asocian las dependencias hacia Negocios y hacia Entidades [01:55]. De esta forma, toda la relación entre capas queda correctamente establecida.
¿Cómo se estructuran las clases dentro de la capa de negocio?
Se crea una clase por cada entidad del modelo de datos [02:10]. Esto permite que cada clase se encargue del llamado y el cargue de información correspondiente a su entidad. La convención de nombres utilizada es colocar la letra B seguida de un guion bajo y el nombre de la entidad. Por ejemplo:
B_Category para la entidad de categoría.
B_Product para producto.
B_Warehouse para bodega.
B_Storage para almacenamiento.
B_InputOutput para entradas y salidas.
Esta nomenclatura hace evidente que la clase pertenece a la capa de negocio cada vez que se referencia en el código [02:35].
¿Qué es el CRUD y cómo se implementa en estas clases?
Cada clase de negocio maneja sus operaciones a través de métodos que corresponden al patrón conocido como CRUD [02:55]:
- C – Create: crear registros.
- R – Read: leer o consultar información.
- U – Update: actualizar registros existentes.
- D – Delete: eliminar información.
Estos métodos se conectan con el contexto de datos (Inventory Context) proporcionado por Entity Framework, aprovechando toda la configuración de acceso a datos ya construida [03:10].
¿Qué buenas prácticas aplicar al crear archivos y clases?
Un detalle importante es la diferencia entre el nombre del archivo y el nombre de la clase [03:50]. Dentro de un solo archivo es posible incluir múltiples clases, pero esta práctica no es recomendable porque dificulta encontrar una clase específica. Lo ideal es mantener una clase por archivo, facilitando la búsqueda y el mantenimiento del código.
Cuando se renombra un archivo en Visual Studio, el IDE pregunta si también se desea renombrar la clase interna, lo cual es muy útil para mantener la coherencia [03:40]. Todas las clases deben marcarse como public para que sean accesibles desde las demás capas del proyecto [04:25].
Con estas cinco clases públicas creadas y las dependencias correctamente configuradas, la base está lista para implementar las operaciones CRUD. ¿Qué entidad de tu proyecto consideras la más compleja para implementar sus operaciones de negocio?