
Hace ya tiempo que quería escribir sobre el uso de plantillas en DotNet Core y, de paso, aprovechar para crear y compartir una de ellas. Una que sirva de punto de partida para todos mis proyectos de tipo API Rest; Demos, PoCs y por supuesto, proyectos reales mejorando así en la productividad y evitando tareas repetitivas.
Publiqué la primera versión del paquete nuget hace ya un año», así que no se encuentra en DotNet 5, aun, pero será objeto de siguientes post 😉
DotNet.ApiRest.BasicTemplate
Se trata de un plantilla que proporciona y tiene en cuenta «mucho» de lo que hago en mi día a día.
Desde el punto de vista de desarrollo:
- Incluye buenas practicas,
- Incorpora el uso de OpenApi (Swagger) con «Swashbuckle«.
- Usa ILogger como componente nativo con la potencia y recomendaciones de Serilog, para la escritura de trazas/logging, tanto en Consola, como en Azure Applicatión Insight, Fichero, etc.
- HelthCheck.
- Filters y Middleware.
- Autenticación con Azure Active Directory.
- Entity Framewok.
- En resumen, se trata de una plantilla base para la creación de API RESTs.
- Script «Build.cmd» para la compilación, ejecución de tests y cobertura de código en local como ya vimos en el post «Runing Tests and Code Coverage without Visual Studio. OpenCover con coverlet y ReportGenerator.«.
- Integración con Sonarqube. Como ya vimos en este otro post.
- Tests Unitarios con XUnit y Moq. [AutoFixture y Fluent Assertion en futuras versiones de la plantilla].
- Tests Integrados con XUnit.
- Y, mucho más.
Desde el punto de vista de DevOps (Despliegue, CI/CD, …):
- Docker.
- Kubernetes + Helm.
- Scripts para la Creación y registro de aplicaciones en AAD.
- Azure Pipelines.
- Y, mucho más.
La estructura (o Scaffolding) de proyecto:
- Application
- Models. Models, ViewModels y DTOs usado por los Controllers y los Services..
- Services. Lógica de aplicación.
- Controllers (Think controllers)
- Domain
- Exceptions.
- Interfaces.
- Infrastructure
- ActionResults.
- EntityConfigurations. Configuración EF.
- Filters. Filtros ASPNet Core.
- Http. Cliente para invocar a otras APIs Rest.
- Middlewares.
- Providers.
- Repositories. Repositorios de BD para el uso con EF.
La siguiente imagen muestra esta estructura de proyecto desde Visual Studio, junto a los proyectos de Tests Unitarios y Tests Integrados :

En GitHub puedes encontrar todo el código y más detalle y, en NuGet la versión de la plantilla publicada y lista para ser usada:
Happy Coding
Juanlu
Reblogueó esto en El Bruno.
Me gustaMe gusta