.Net University (@dotnetes) 's Twitter Profile
.Net University

@dotnetes

Comunidad de Desarrollo .NET 🖥️ Plataforma de Cursos .NET : netuniversity.org ▶️ Youtube: youtube.com/@NetUniversity

ID: 1647061970938413057

linkhttps://www.netuniversity.org calendar_today15-04-2023 02:19:21

482 Tweet

748 Followers

14 Following

.Net University (@dotnetes) 's Twitter Profile Photo

Newtonsoft.Json fue clave durante años en el ecosistema .NET Pero hoy, en proyectos nuevos, System.Text.Json ya no es solo la opción nativa: en muchos casos, es la opción más adecuada ✔️ Mejor rendimiento ✔️ Menor consumo de memoria ✔️ Mejor integración con .NET #dotnet

.Net University (@dotnetes) 's Twitter Profile Photo

¿Te falló un token en la URL después de codificarlo en Base64? El problema es que Base64 usa caracteres como +, / y = que pueden romper la URL. La solución en .NET: Base64Url.EncodeToString(...) ✅ #dotnet #csharp #backend

.Net University (@dotnetes) 's Twitter Profile Photo

¿Procesas archivos de Excel en .NET? Cuando algo falla, saber en qué fila ocurrió es clave Con Index en LINQ puedes obtener el elemento junto con su índice en una tupla, sin contadores manuales Código más limpio y errores más fáciles de rastrear #dotnet #csharp #linq

.Net University (@dotnetes) 's Twitter Profile Photo

.NET 11 Preview 2 me dejó sorprendido con los Union Types Ahora podemos modelar resultados como ✅ Compra exitosa ⚠️ Stock insuficiente 💳 Error de pago De forma mucho más clara, tipada y expresiva, sin sobrecomplicar con jerarquías innecesarias #dotnet #csharp

.Net University (@dotnetes) 's Twitter Profile Photo

En .NET 11 preview, las Collection Expressions ahora permiten pasar argumentos al constructor con with(...). Una mejora imprescindible para todo developer que necesita procesar grandes volúmenes de datos con un código más claro y expresivo. #dotnet #csharp

En .NET 11 preview, las Collection Expressions ahora permiten pasar argumentos al constructor con with(...).

Una mejora imprescindible para todo developer que necesita procesar grandes volúmenes de datos con un código más claro y expresivo.

#dotnet #csharp
.Net University (@dotnetes) 's Twitter Profile Photo

En el modelo actual de desarrollo con IA en .NET, los roles evolucionan: 1️⃣ Arquitecto/Tech Lead define reglas 2️⃣ Developer delega y supervisa 3️⃣ El agente de código ejecuta 4️⃣ Las instrucciones de repo guían 5️⃣ El pipeline valida #dotnet #AI #arquitectura

En el modelo actual de desarrollo con IA en .NET, los roles evolucionan:

1️⃣ Arquitecto/Tech Lead define reglas
2️⃣ Developer delega y supervisa
3️⃣ El agente de código ejecuta
4️⃣ Las instrucciones de repo guían
5️⃣ El pipeline valida

#dotnet #AI #arquitectura
.Net University (@dotnetes) 's Twitter Profile Photo

EF Core 9 por fin simplifica el seeding de datos Con UseSeeding y UseAsyncSeeding ahora puedes cargar registros iniciales directamente desde el DbContext Menos código manual y una configuración mucho más limpia #dotnet #efcore #csharp

EF Core 9 por fin simplifica el seeding de datos

Con UseSeeding y UseAsyncSeeding ahora puedes cargar registros iniciales directamente desde el DbContext

Menos código manual y una configuración mucho más limpia

#dotnet #efcore #csharp
.Net University (@dotnetes) 's Twitter Profile Photo

🔥DataAnnotations vs FluentValidation 1⃣ DataAnnotations también puede validar contra BD con un atributo personalizado + IUserRepository. 2⃣ Pero cuando la regla crece, FluentValidation suele quedar más limpio, desacoplado y testeable. #dotnet #csharp

🔥DataAnnotations vs FluentValidation

1⃣ DataAnnotations también puede validar contra BD con un atributo personalizado + IUserRepository. 

2⃣ Pero cuando la regla crece, FluentValidation suele quedar más limpio, desacoplado y testeable. 

#dotnet #csharp
.Net University (@dotnetes) 's Twitter Profile Photo

En EF Core, Add() y AddAsync() no insertan en la BD Solo marcan la entidad para inserción El INSERT real ocurre en SaveChanges() o SaveChangesAsync() AddAsync() solo tiene sentido en casos especiales como HiLo, donde EF Core puede obtener el ID antes de guardar #dotnet #efcore

En EF Core, Add() y AddAsync() no insertan en la BD
Solo marcan la entidad para inserción

El INSERT real ocurre en SaveChanges() o SaveChangesAsync()

AddAsync() solo tiene sentido en casos especiales como HiLo, donde EF Core puede obtener el ID antes de guardar

#dotnet #efcore
.Net University (@dotnetes) 's Twitter Profile Photo

Hoy se lanzó .NET 11 Preview 3 Y una de las mejoras que me llamó la atención es Zstandard Solo configurando el Program.cs, puedes acelerar tus APIs hasta 30% sin tocar endpoints ni lógica de negocio Un cambio pequeño en configuración, pero con impacto en producción #dotnet

Hoy se lanzó .NET 11 Preview 3

Y una de las mejoras que me llamó la atención es Zstandard

Solo configurando el Program.cs, puedes acelerar tus APIs hasta 30% sin tocar endpoints ni lógica de negocio

Un cambio pequeño en configuración, pero con impacto en producción

#dotnet
.Net University (@dotnetes) 's Twitter Profile Photo

🚀 .NET 11 Preview 3 trae algo clave en EF Core: Ahora puedes consultar JSON en SQL Server directamente desde LINQ 😮 ❌ Antes: SQL manual + JSON_VALUE ✅ Ahora: JsonContains Menos código, más limpio, más mantenible. 👉 NetUniversity.org #dotnet #efcore #csharp

🚀 .NET 11 Preview 3 trae algo clave en EF Core:

Ahora puedes consultar JSON en SQL Server directamente desde LINQ 😮

❌ Antes: SQL manual + JSON_VALUE
✅ Ahora: JsonContains 

Menos código, más limpio, más mantenible.

👉 NetUniversity.org

#dotnet #efcore #csharp
.Net University (@dotnetes) 's Twitter Profile Photo

Dos retiros al mismo tiempo desde una misma cuenta bancaria ¿qué podría salir mal? Si no controlas bien la concurrencia, el resultado puede ser desastroso: 👉 retiros duplicados 👉 pérdida de dinero 💸 Desde .NET 9 usa Lock y controla el acceso concurrente #dotnet #csharp

Dos retiros al mismo tiempo desde una misma cuenta bancaria ¿qué podría salir mal?

Si no controlas bien la concurrencia, el resultado puede ser desastroso:
👉 retiros duplicados
👉 pérdida de dinero 💸

Desde .NET 9 usa Lock y controla el acceso concurrente
#dotnet #csharp
.Net University (@dotnetes) 's Twitter Profile Photo

💥 El 90% de devs usa LINQ mal… y pierde performance 😱 🚨 Si repites cálculos en tu query, estás haciendo trabajo doble 🔥 Usa let y optimiza TODO 👉 1 cálculo 👉 + rendimiento 👉 + claridad 👉 NetUniversity.org #dotnet #csharp #LINQ #EFCore

.Net University (@dotnetes) 's Twitter Profile Photo

🔥EF Core ya permite hacer GroupBy() usando Complex Types 👉 Agrupas por el objeto completo 👉 EF lo traduce a SQL GROUP BY real 👉 Código más limpio y alineado al dominio 👉 Menos columnas… más intención de negocio #dotnet #efcore #csharp

🔥EF Core ya permite hacer GroupBy() usando Complex Types 

👉 Agrupas por el objeto completo
👉 EF lo traduce a SQL GROUP BY real
👉 Código más limpio y alineado al dominio
👉 Menos columnas… más intención de negocio 

#dotnet #efcore #csharp
.Net University (@dotnetes) 's Twitter Profile Photo

🚀 ¿Sigues desarrollando APIs “a mano”? Estás en el pasado. Con .NET Aspire orquestas servicios, logs, métricas y dependencias desde el día 1 🔥 Deja de pelear con infraestructura y construye sistemas reales. 👉 netuniversity.org/courses/aspire #dotnet #backend #microservices

🚀 ¿Sigues desarrollando APIs “a mano”? Estás en el pasado.

Con .NET Aspire orquestas servicios, logs, métricas y dependencias desde el día 1 🔥

Deja de pelear con infraestructura y construye sistemas reales.

👉 netuniversity.org/courses/aspire

#dotnet #backend #microservices
.Net University (@dotnetes) 's Twitter Profile Photo

required string vs string? En EF Core no es solo sintaxis 👇 🔹 required → obliga inicialización + NOT NULL en DB 🔹 string? → permite null + NULL en DB 💡 Define tu dominio correctamente y refuérzalo con Fluent API #dotnet #efcore #backend

required string vs string? 
En EF Core no es solo sintaxis 👇

🔹 required → obliga inicialización + NOT NULL en DB
🔹 string? → permite null + NULL en DB

💡 Define tu dominio correctamente y refuérzalo con Fluent API

#dotnet #efcore #backend
.Net University (@dotnetes) 's Twitter Profile Photo

.NET 9 cambió el juego👇 Swagger ya no viene por defecto en Web API Ahora NET Core apuesta por OpenAPI como contrato real de tus endpoints Para pruebas yo uso .http files y para ver la documentacion el "Endpoints Explorer" de Visual Studio ¿Tú qué usas? #dotnet #swagger

.Net University (@dotnetes) 's Twitter Profile Photo

En Event-Driven Architecture: 👉 Servicios NO se llaman entre sí 👉 Reaccionan a eventos 👉 El estado es consecuencia 👉 Los eventos son la verdad Con Event Sourcing guardas la historia, no solo el estado actual Curso completo en: 👉NetUniversity.org #dotnet #backend

En Event-Driven Architecture:
👉 Servicios NO se llaman entre sí
👉 Reaccionan a eventos 
👉 El estado es consecuencia 
👉 Los eventos son la verdad  

Con Event Sourcing guardas la historia, no solo el estado actual

Curso completo en:
👉NetUniversity.org

#dotnet #backend
.Net University (@dotnetes) 's Twitter Profile Photo

Pasé de desconfiar de la IA a resolver en 30 min lo que me tomaba 4 días con Github Copilot Pero el Vibe Coding rompe arquitecturas: parche sobre parche. Recuerda la IA no reemplaza la arquitectura, la necesita La solucion: usar Spec-Driven Development

Pasé de desconfiar de la IA a resolver en 30 min lo que me tomaba 4 días con Github Copilot

Pero el Vibe Coding rompe arquitecturas: parche sobre parche.

Recuerda la IA no reemplaza la arquitectura, la necesita

La solucion: usar Spec-Driven Development