Plantilla para generar un microservicio con arquitectura Hexagonal (Ports & Adapters) en .NET.
Estructura creada:
- src/
- complementary_service.Domain/
- complementary_service.Application/
- complementary_service.Infrastructure/
- complementary_service.Api/
- tests/
- complementary_service.Domain.Tests/
- complementary_service.Application.Tests/
- complementary_service.Infrastructure.IntegrationTests/
- .template.config/template.json
Cómo usar este repositorio como template
Hay dos formas comunes de usar este repo como plantilla:
-
Usar el repositorio como "GitHub Template" (recomendado si publicas en GitHub):
- En GitHub configura el repositorio como "Template repository" (Settings → Template repository) o usa el botón "Use this template" para crear un nuevo repo basado en esta plantilla.
- Clona el repo resultante localmente y sigue la sección "Instalación local" abajo para instalar el template en tu máquina.
-
Instalación local directa (desarrollo / pruebas):
- Clona este repositorio y luego instala la plantilla desde la carpeta del repo:
git clone https://github.com/<owner>/complementary_service-hexagonal-template-.git
cd complementary_service-hexagonal-template-
# Instalar la plantilla localmente (SDK moderno):
dotnet new install .
# Si ya la tienes instalada y quieres forzar la actualización:
dotnet new install . --forceVer las plantillas instaladas:
dotnet new listGenerar un nuevo microservicio desde la plantilla
# Crea el microservicio (reemplaza "Orders" por el nombre que desees):
dotnet new complementary_service-hex -n Orders -o ./Orders --framework net8.0
cd Orders
dotnet restore
dotnet buildNotas importantes
- El template usa
complementary_servicecomosourceName; al generar el proyecto ese token se sustituye por el nombre que pases con-n. - Los .csproj contienen el token
net8.0que se sustituye por el valor del parámetro--framework(por defectonet8.0). - Si la plantilla está instalada globalmente y haces cambios locales, reinstálala con
--force.
Desinstalar la plantilla (opcional)
# Si la instalaste desde una carpeta local, puedes desinstalar usando la misma ruta o el identificador usado al instalar.
dotnet new uninstall /path/to/complementary_service-hexagonal-template-
# (o) desinstalar por paquete si lo subiste a un feed: dotnet new uninstall <package-or-feed>Problemas comunes
- Si ves errores al compilar la API relacionados con Swagger, asegúrate de restaurar paquetes; la plantilla incluye
Swashbuckle.AspNetCorepor defecto. - Si el comando
dotnet new complementary_service-hexno aparece tras instalar, ejecutadotnet new install . --forcey verifica condotnet new list.
¿Qué sigue?
- Puedes solicitar que añada un
.slna la plantilla, workflows de CI (GitHub Actions) que verifiquen la generación y build, o parámetros adicionales para incluir EF Core / mensajería a la carta.