Manual LineaBase Global MVM Guía para implementar un microservicio a partir de la LineaBase en tan solo 15 minutos Proyecto: NewCommercial Autor: Andrés Alzate Echeverry Fecha: 02/02/2026 Página 1 de 24.
Índice de Contenidos 1. Creación de Nuevo Microservicio a partir de LineaBase 2. Ejecución de Pruebas Unitarias 3. Arquitectura del Proyecto Página 2 de 24.
1. Creación de Nuevo Microservicio a partir de LineaBase Paso 1: Clonar repositorio LineaBase Paso 2: Clonar el repositorio de tu nuevo microservicio Clona el repositorio del nuevo microservicio en el que trabajarás. Paso 3: Copiar archivos de LineaBase Copia y pega todos los archivos/carpetas de la carpeta de LineaBase a la carpeta de tu microservicio. Copiando archivos desde LineaBase Nota: Al momento de leer esto puede haber más archivos (es importante pasarlos todos excepto los archivos/carpetas ocultos como el .vs, ese no se debe pasar). Paso 4: Abrir la carpeta en Visual Studio Code Abre la carpeta de tu microservicio en Visual Studio Code. Página 3 de 24 Clona el repositorio LineaBase si no lo tienes aún (puedes descargarlo desde la documentación). Azure DevOps, Documentación (clic aquí).
Abriendo el proyecto en VSCode Paso 5: Buscar y reemplazar '.LineaBase' En el icono de la lupa, busca y reemplaza la siguiente palabra (con el punto al principio, teniendo en cuenta el botón de filtro de 'palabra entera/match whole'): • Palabra: .LineaBase • Remplazo: .[Nombre de la nueva solución, Esquema al que pertenece el nuevo microservicio] Buscando .LineaBase Página 4 de 24.
Confirmando el reemplazo Página 5 de 24.
Paso 6: Buscar y reemplazar variaciones del nombre En el icono de la lupa, busca y reemplaza las siguientes palabras teniendo en cuenta el botón de filtro de 'mayúsculas-minúsculas/match case': Importante: Aplicar el filtro correcto en cada caso. 6.1 - PascalCase: • Palabra: LineaBase • Remplazo: [Nombre de la nueva solución, Esquema al que pertenece el nuevo microservicio (PascalCase)] Reemplazando LineaBase (PascalCase) 6.2 - lowercase: • Palabra: lineabase • Remplazo: [Nombre de la nueva solución, Esquema al que pertenece el nuevo microservicio (lowercase)] Página 6 de 24.
Reemplazando lineabase (lowercase) 6.3 - UPPERCASE: • Palabra: LINEABASE • Remplazo: [Nombre de la nueva solución, Esquema al que pertenece el nuevo microservicio (UPPERCASE)] Reemplazando LINEABASE (UPPERCASE) Página 7 de 24.
Paso 7: Verificar que no queden coincidencias Ahora si buscas la palabra 'lineabase' (sin ningún tipo de filtro) no te aparecería nada. Sin resultados de búsqueda Paso 8: Corrección de codificación UTF-8 Importante: Visual Studio Code tiene un bug de encriptación UTF-8 cuando realiza reemplazos masivos en los archivos por la opción del buscador. Esto normalmente reemplazará todos los caracteres especiales por un símbolo de interrogación en rombo (I) o cuadrado negro. Para solucionar esto, debes ir a la raíz de la carpeta del proyecto, abrir una terminal PowerShell y ejecutar el comando: powershell -ExecutionPolicy Bypass -File .\FixUTF8.ps1 Esto solucionará el problema que inyectó VSCode y restaurará la codificación de los elementos en todos los archivos. Posteriormente elimina el archivo FixUTF8.ps1 de la raíz. Página 8 de 24 (U+FFFD).
Ejecutando script de corrección UTF-8 Página 9 de 24.
Paso 9: Cambiar el nombramiento de los archivos Renombra los archivos, proyectos y solución. Ten cuidado de cambiar solo la palabra clave sin eliminar nada más del nombre. • Dale clic al icono 'Explorer' arriba del icono de búsqueda • Presiona 'Ctrl + T' para abrir el buscador de archivos • Elimina el # y pon la palabra 'LineaBase' • Esto mostrará resaltado todos los archivos con ese nombramiento Buscando archivos con Ctrl+T Da clic a cualquiera de ellos, esto abrirá el archivo y te llevará a la ubicación en el explorador. Allí le darás clic derecho al archivo y posteriormente en 'rename'. Opción de renombrar archivo Página 10 de 24.
Esto te permitirá modificar el nombre del archivo donde solo cambiarás la palabra 'LineaBase' por el [Nombre de la nueva solución, Esquema al que pertenece el nuevo microservicio (PascalCase)]. Renombrando archivo (antes) Renombrando archivo (después) Paso 9.1: Repetir operación Repite esta operación con cada uno de los archivos arrojados en la búsqueda. Al final del proceso si vuelves a buscar con Ctrl + T, ya no te debería arrojar más coincidencias. Sin archivos con nombre LineaBase Página 11 de 24.
Paso 10: Renombramiento manual de las carpetas En este paso simplemente debes renombrar las 8 carpetas de los proyectos. Cambiarás la palabra 'LineaBase' por el [Nombre de la nueva solución, Esquema al que pertenece el nuevo microservicio (PascalCase)]. Renombrando carpetas de proyectos Si has hecho todos los pasos hasta ahora, ya podrás cerrar Visual Studio Code y pasar con la fase de compilación. Paso 10.1: Eliminar carpetas bin y obj En la carpeta donde guardaste la solución, debes eliminar las carpetas 'bin' y 'obj' de todos los proyectos: /src • ES.[Esquema].Api • ES.[Esquema].Application • ES.[Esquema].Domain • ES.[Esquema].Infrastructure Página 12 de 24.
/tests • ES.[Esquema].Api.Tests • ES.[Esquema].Application.Tests • ES.[Esquema].Domain.Tests • ES.[Esquema].Infrastructure.Tests Esto con el fin de evitar errores de caché en tu máquina. Nota: Las carpetas 'bin' y 'obj' a veces están ocultas. Si es tu caso, para eliminarlas en cada proyecto deberás habilitar la vista de carpetas ocultas. Carpetas bin y obj Página 13 de 24.
Mostrando elementos ocultos Página 14 de 24.
Paso 11: Abrir solución en Visual Studio En Visual Studio abre la solución y da clic derecho a la solución para realizar las siguientes tareas: Abriendo solución en Visual Studio • Limpiar solución • Restaurar paquetes NuGet • Recompilar solución • Compilar solución Cada una se debe ejecutar sin errores. Opciones de compilación Página 15 de 24.
Paso 12: Ejecutar el proyecto Al iniciar el proyecto se deberá ejecutar correctamente y abrir el Swagger con un endpoint de ejemplo el cual deberá ejecutarse correctamente. Proyecto compilado correctamente Swagger con endpoint de ejemplo I ¡Felicidades! Ya tienes tu nuevo microservicio configurado, limpio y listo para las nuevas implementaciones. Importante: Recuerda que existe un API de ejemplo, la cual puede servir de guía para la implementación. Cuando consideres necesario, elimina esos archivos de Example y sus tests. Página 16 de 24.
Archivos de ejemplo a eliminar Página 17 de 24.
2. Ejecución de Pruebas Unitarias Las pruebas unitarias deberán mantenerse sobre el 90% del desarrollo implementado. Para ejecutarlas sigue los siguientes pasos: Paso 1: Ejecutar pruebas desde Visual Studio Con el proyecto no inicializado, da clic derecho en la solución y selecciona la opción 'Ejecutar pruebas'. Opción Ejecutar pruebas Esto nos abrirá un proceso el cual ejecutará las pruebas de toda la solución. Es importante que al finalizar este proceso no nos salga ningún error. Página 18 de 24.
Pruebas ejecutándose correctamente Página 19 de 24.
Paso 2: Ver panorama de cobertura Para ver el panorama actual de la cobertura, ejecuta los siguientes pasos: 2.1 - Abrir terminal externa del proyecto Abrir terminal del proyecto 2.2 - Ejecutar comando de cobertura Primero ejecuta el comando de cobertura: dotnet test --collect:"XPlat Code Coverage" --results-directory ./TestResults 2.3 - Generar reporte HTML Luego ejecuta el comando para generar el reporte con el tipo Html: reportgenerator -reports:"**/coverage.cobertura.xml" -targetdir:"./CoverageReport" -reporttypes:Html Ambos deben ejecutar correctamente con las pruebas actuales. Página 20 de 24.
Comandos ejecutándose correctamente Página 21 de 24.
Paso 3: Ver reporte de cobertura Ahora en la raíz del proyecto se generará una carpeta llamada 'CoverageReport'. Ábrela y busca el archivo llamado 'index.html'. Cuando le des clic y lo abras verás el panorama actual de cobertura (útil para monitorear las pruebas localmente antes de subir Pull Request). Carpeta CoverageReport Reporte de cobertura en navegador I ¡Felicidades! Ahora estás listo para integrar tus nuevas pruebas unitarias. Página 22 de 24.
3. Arquitectura del Proyecto A continuación se presenta el diagrama de arquitectura completo del proyecto LineaBase, mostrando todas las capas, componentes y sus relaciones: Diagrama de Arquitectura LineaBase Descripción de la Arquitectura El proyecto LineaBase sigue los principios de Clean Architecture y está dividido en las siguientes capas principales: I API (Presentation Layer) • Controllers: Endpoints HTTP que reciben las peticiones • Middlewares: Validación automática y manejo de excepciones • Extensions: Configuración de servicios y CORS I Application (Business Layer) Página 23 de 24.
• Services: Lógica de negocio principal • Interfaces: Contratos para servicios y repositorios • DTOs: Objetos de transferencia de datos • Validators: Validación con FluentValidation • Dependencies: Inyección de dependencias agrupadas I Infrastructure (Data Access Layer) • Repositories: Acceso a datos (Tables, BlobStorage, Base) • Persistence: DbContext (LineaBase y Transversal) • MultiTenant: Gestión de múltiples tenants • Options: Configuraciones de resiliencia I Domain (Core/Entities) • Entities: Representación de tablas de BD • Interfaces: Contratos CRUD genéricos I Tests (Testing Layer) • Unit Tests: Cobertura del 100% • Integration Tests: Con Testcontainers y Azurite I Características Clave del Proyecto • Multi-Tenancy: Cada tenant tiene su propia base de datos • Azure Key Vault: Cadenas de conexión seguras • Resiliencia: Retry policies y Circuit Breaker • Validación Automática: FluentValidation + Middleware • Clean Architecture: Separación clara de capas • Dependency Injection: Contenedor IoC nativo de .NET • Unit of Work: Transacciones coordinadas • Repository Pattern: Abstracción de acceso a datos • 100% Code Coverage: Tests exhaustivos • Testcontainers: Integración con Docker (Azurite) Página 24 de 24.