Los 10 mejores paquetes nuget que tienes que instalar

por:

Los 10 mejores paquetes nuget que tienes que instalar

Cuando empiezas un proyecto hay una serie de aspectos comunes que suelen ser resueltos mediante la instalación de una serie de paquetes básicos. Hoy te vengo a hablar de los que yo uso de manera habitual. Aunque lo primero que te recomiendo es configurar bien tu Visual Studio.

 

Logs con Serilog

Serilog el mejor framework de logs para .NET

Para mí Serilog es un paquete indispensable para gestionar los logs de una aplicación en .NET. Este paquete tiene varias características por las que lo considero imprescindible:

  • Gran integración con el framework
  • Está especialmente pensado para usar logs estructurados
  • Configuración flexible, tanto por código como por fichero de configuración
  • Puede exportar o enviar estos logs a muchos proveedores
  • Gran flexibilidad debido a la multitud de extensiones que tiene

Pruebas unitarias

Creo que todo proyecto si quiere tener un mínimo de calidad, debe incluir pruebas unitarias para las partes más complejas y con mayor lógica del proyecto. Para este apartado suelo utilizar siempre el siguiente conjunto de paquetes:

  • xUnit o nUnit como framework de test unitarios
  • NSubstitute es la herramienta para crear mocks que estoy usando últimamente y me tiene muy contento, antes utilizaba Moq que es otro gran conocido.
  • Autofixture para generar datos de prueba, algo normal cuando tus entidades son complejas.
  • Coverlet para conseguir el tan ansiado valor de cobertura de código

 

Feature toggles

Esta característica cada vez la considero más importante para cualquier tipo de desarrollo, ya que permite realizar pruebas e incorporar nuevas características parcialmente. Para ello suelo usar Esquio, este paquete contiene:

  • La librería para implementar los feature toggles
  • Gestion del almacenamiento de los mismos en fuentes externas
  • Interfaz de usuario para gestionarlos

Aspectos generales

Bajo este epígrafe voy a encuadrar aquellos paquetes más generales que sirven para cualquier caso de uso:

  • Dapper para gestionar las llamadas a cualquier tipo de base de datos.
  • Polly para conseguir reintentos en las llamadas HTTP y otros patrones de resilencia

Desarrollo de APIs

Una de las cosas que últimamente más hago, es crear APIs utilizando .NET Core o .NET 5 y ASP.NET Core como framework para desarrollar el backend de muchas APIs, estas luego son consumidas por otros servicios. Este tipo de desarrollos tienen unas características específicas relativas a la seguridad, la gestión de las peticiones o la documentación, a continuación te dejo los paquetes que suelo usar:

  • AspNetCoreRateLimit este paquete lo uso, como su propio nombre indica, para limitar el número de peticiones que un cliente puede hacerme. Cuando tu API es pública, es muy importante controlar cómo se está consumiendo.
  • Swashbuckle como generador de la documentación de la API bajo el estándar Swagger / OpenAPI

 

Microservicios

Los microservicios han llegado para quedarse, aunque no siempre sean la mejor opción, pero debido a su complejidad de uso hay una serie de paquetes que considero muy interesantes añadir siempre.

  • Open Telemetry, el paquete oficial para conseguir una telemetría siguiendo un estándard en .NET, muy importante si los microservicios usan distintos lenguajes o buscas uniformizar el stack. Si quieres más información sobre este asunto, me parece muy interesante el siguiente recurso.
  • Dapr puede ser muy interesante que lo integres si tu arquitectura de microservicios es realmente compleja. Intenta solucionar multitud de problemas comunes pero todavía está un poco verde.

 

Gestion de los paquetes

Además de los paquetes anteriormente mencionados, hay una serie de herramientas y técnicas muy útiles para la gestión de los paquetes de tus proyectos, lo cual se vuelve bastante complejo cuando tienes una solución grande.

The following two tabs change content below.

Jorge Durán

Entusiasta de la tecnología desde los 10 años, desarrollador y creador de varios proyectos de software y autodidacta por naturaleza. Ingeniero Informático por la USAL

Deja una Respuesta