<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Dotnet on Avenger Developer</title><link>https://www.theavenger.dev/tags/dotnet/</link><description>Recent content in Dotnet on Avenger Developer</description><generator>Hugo -- gohugo.io</generator><language>es</language><copyright>© 2026 Adrián Díaz Cervera</copyright><lastBuildDate>Sun, 24 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.theavenger.dev/tags/dotnet/index.xml" rel="self" type="application/rss+xml"/><item><title>Cómo adoptar la IA en tu ciclo de desarrollo</title><link>https://www.theavenger.dev/posts/adoptar-ia-desarrollo/</link><pubDate>Sun, 24 May 2026 00:00:00 +0000</pubDate><guid>https://www.theavenger.dev/posts/adoptar-ia-desarrollo/</guid><description>&lt;p&gt;La IA ha dejado de ser un hype. Hemos pasado de que la usaban cuatro valientes a que hoy en día prácticamente nadie en el sector se queda al margen. Se habla mucho de que seremos la última generación de desarrolladores que hemos escrito código de verdad, de que la IA lo puede hacer todo&amp;hellip; pero ¿cuál es la realidad hoy? ¿Cómo la podemos ir integrando de forma sensata? En esta serie de posts voy a ir contando cómo lo uso yo en mi día a día con proyectos .NET.&lt;/p&gt;</description></item><item><title>Rate Limiting en .NET: Protegiendo tu API desde el Principio</title><link>https://www.theavenger.dev/posts/security-developers/</link><pubDate>Sat, 30 Aug 2025 00:00:00 +0000</pubDate><guid>https://www.theavenger.dev/posts/security-developers/</guid><description>&lt;p&gt;En el mundo del desarrollo de software moderno, la seguridad y el rendimiento no deben ser una ocurrencia tardía, sino pilares fundamentales desde el inicio del proyecto. Ignorar estos aspectos puede llevar a vulnerabilidades críticas y a un deterioro del rendimiento que afecte directamente la experiencia del usuario y, en última instancia, la viabilidad de un producto. Una de las estrategias más efectivas y sencillas para mitigar estos riesgos es la implementación de Rate Limiting.
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt="image"
 src="https://www.theavenger.dev/posts/images/security-developers/ratelimit.png"
 &gt;&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Sobre HybridCache y cómo sacar más partido a DotNet</title><link>https://www.theavenger.dev/posts/dotnet9hybridcache/</link><pubDate>Sun, 08 Dec 2024 00:00:00 +0000</pubDate><guid>https://www.theavenger.dev/posts/dotnet9hybridcache/</guid><description>&lt;p&gt;Recientemente se ha lanzado .NET 9, que no es una versión de soporte extendido (LTS). Ya compartí mi opinión sobre el tema del versionado y cómo lo gestionamos en ocasiones en el artículo que escribí para &lt;a href="https://www.compartimoss.com/revistas/numero-59/dotnet8/" target="_blank" rel="noreferrer"&gt;CompartiMOSS&lt;/a&gt; hace un tiempo. Si me preguntáis si en los proyectos en los que trabajamos vamos a migrar a .NET 9, mi respuesta es un rotundo &lt;strong&gt;SÍ&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Analizando tu código sin morir en el intento</title><link>https://www.theavenger.dev/posts/analyzers-csharp/</link><pubDate>Wed, 11 Sep 2024 00:00:00 +0000</pubDate><guid>https://www.theavenger.dev/posts/analyzers-csharp/</guid><description>&lt;p&gt;A lo largo de mi trayectoria profesional, siempre he sido y sigo siendo un firme defensor de las buenas prácticas de programación, esforzándome para que los proyectos en los que participo sean motivo de orgullo. Sin embargo, quienes llevamos tiempo en proyectos sabemos que, por muy bueno que sea alguien o por mucho conocimiento que tenga, no puede hacer que un proyecto sea excelente por sí solo. Todo ese conocimiento debe compartirse entre los miembros del equipo para que puedan aplicarlo y así evitar cometer errores.
¿Cómo se puede lograr esto? Hace tiempo, era un firme defensor de herramientas de análisis estático de código, como SonarQube o Kiwan. Estas herramientas analizaban el código una vez que lo subías a la rama y te mostraban sugerencias/recomendaciones para mejorarlo. No obstante, hay aspectos que no terminan de encajar en los equipos. El primero es el tiempo: tienes que subir tu código y luego consultar qué cosas puedes mejorar. ¿Qué ocurría la mayoría de las veces? Que, al final, los últimos días del proyecto se dedicaban a &amp;ldquo;solucionar&amp;rdquo; lo que, según estas herramientas, estaba mal, pero el objetivo no es solo corregir, sino aprender. Y cuando el equipo lo hace de esta manera en el último día, no se aprende realmente (es como cuando estudiabas todo la noche antes de un examen, ¿sinceramente, te acordabas de lo que habías estudiado una semana después?).
Además, hay otro motivo por el cual actualmente tampoco confío tanto en estas herramientas: además de ser un análisis sintáctico, el código tiene un contexto, un &amp;ldquo;por qué&amp;rdquo;. A veces, haces las cosas de cierta forma porque lo consideras necesario. Un ejemplo trivial: si hacemos un proyecto con una arquitectura Vertical Slice, independientemente de si el equipo lo hace mejor o peor, la herramienta probablemente señalará que hay código repetido o que se podría refactorizar. Pero, según Vertical Slice, cada &amp;ldquo;feature&amp;rdquo; debe tener todo lo necesario para ser independiente de las otras, y no podemos reutilizar una clase modelo (DTO), aunque la base sea la misma (se podría, pero entonces no lo llamaríamos Vertical Slice aunque esa conversación daría para otro post). Está claro que este es un ejemplo muy obvio, pero puede haber decisiones que se toman debido a la casuística de ese desarrollo, y aunque no sean la mejor opción desde el punto de vista estático, sí lo son para cumplir con los requisitos de la aplicación.
Además, he visto proyectos con una puntuación &amp;ldquo;A&amp;rdquo; en Sonar que eran, sinceramente, de los más chapuceros que he visto, mientras que otros con una &amp;ldquo;C&amp;rdquo; mostraban un rendimiento espectacular gracias a las decisiones que se tomaron.&lt;/p&gt;</description></item><item><title>gRPC &amp; Dotnet por dónde empezar?</title><link>https://www.theavenger.dev/posts/grpc-dotnet-i/</link><pubDate>Wed, 04 Jan 2023 00:00:00 +0000</pubDate><guid>https://www.theavenger.dev/posts/grpc-dotnet-i/</guid><description>&lt;p&gt;gRPC es un mecanismo moderno de invocación de métodos remotos (RPC) entre procesos/sistemas/servicios, desarrollado por Google. Utiliza como transporte HTTP/2 y Protocol Buffers como lenguaje de descripción de interfaz&lt;/p&gt;</description></item><item><title>Como implementar el patrón FallBack con Polly</title><link>https://www.theavenger.dev/posts/polly-fallback/</link><pubDate>Sun, 24 Jan 2021 00:00:00 +0000</pubDate><guid>https://www.theavenger.dev/posts/polly-fallback/</guid><description>&lt;p&gt;Cuando nos enfrentamos con procesos que son susceptibles de emitir excepciones existen varios patrones o estrategias que podemos seguir para gestionar el comportamiento ante el error. En este articulo vamos a ver como usando la librería Polly podemos llevar a cabo un patrón de Fallback para poder dar respuesta a nuestras necesidades.&lt;/p&gt;</description></item><item><title>OData y como beneficiar nuestro perfomance con Entity Framework</title><link>https://www.theavenger.dev/posts/odata-dotnet-entityframework/</link><pubDate>Tue, 14 Jul 2020 00:00:00 +0000</pubDate><guid>https://www.theavenger.dev/posts/odata-dotnet-entityframework/</guid><description>&lt;p&gt;A la hora de hacer las consultas sobre nuestras WebApi OData es un estandar propio de Microsoft que estan adoptando la mayoria de API&amp;rsquo;s de los productos punteros para establecer su comunicación con el Front. Apps como Twitter, Facebook y naturalmente Microsoft Graph utilizan esta forma para realizar las consultas a sus objetos de négocio. Como desarrolladores muchas veces no ponemos OData por el miedo al performance que ocasiona en el Backend. ¿Como lo podemos solucionar? En este articulo vemos como cuidar las consultas para de esta forma evitar matar muchos gatitos y ahorrarnos esfuerzos en el desarrollo.&lt;/p&gt;</description></item><item><title>Que herramientas usamos para hacer test de integración en DotNet</title><link>https://www.theavenger.dev/posts/tooling-testing-integration-dotnet/</link><pubDate>Mon, 22 Jun 2020 00:00:00 +0000</pubDate><guid>https://www.theavenger.dev/posts/tooling-testing-integration-dotnet/</guid><description>&lt;p&gt;A la hora de empezar con los test de integración tenemos varias formas de realizarlos, en este artículo os enseñare las utilidades que utilizamos para hacer testing de integración desde Visual Studio y con DotNet Core.&lt;/p&gt;</description></item><item><title>Como inyectar las dependencias de Dotnet Core en nuestros procesos de Hangfire</title><link>https://www.theavenger.dev/posts/dependency-hangfire-dotnet/</link><pubDate>Mon, 15 Jun 2020 00:00:00 +0000</pubDate><guid>https://www.theavenger.dev/posts/dependency-hangfire-dotnet/</guid><description>&lt;p&gt;Hangfire es una librería en la que podemos ejecutar nuestros procesos en Background en nuestros desarrollos en .NET y .NET Core. En este articulo vamos a ver como poder utilizar la inyección que trae .NET Core de serie en nuestros proyectos y con esto nos evitamos el deber tener otro aspecto de configuración adicional, con esto nuestros procesos de Background son mucho más sencillo de configurar y sobre todo podemos testearlos al igual que cualquier otro elemento.&lt;/p&gt;</description></item><item><title>Como crear un template Dotnet para nuestras soluciones</title><link>https://www.theavenger.dev/posts/template-dotnet-nuget/</link><pubDate>Mon, 08 Jun 2020 00:00:00 +0000</pubDate><guid>https://www.theavenger.dev/posts/template-dotnet-nuget/</guid><description>&lt;p&gt;A la hora de empezar nuestros desarrollos en C# en la mayoria de los veces hay una serie de pasos manuales que se repiten proyecto tras proyecto y que nos hacen perder un poco de tiempo en diversas tareas repetitivas y que al final nos hacen perder un valioso tiempo. En este articulo vamos a ver como usar el sistema de templates que nos proporciona DotNet y como la podemos publicar en un repositorio Nuget para ser accessible por todos los miembros del equipo.&lt;/p&gt;</description></item></channel></rss>