C#
Desde los fundamentos del lenguaje hasta LINQ, async/await y el ecosistema .NET; características modernas y buenas prácticas para aplicaciones listas para producción.
¿Qué es C#?
C# es un lenguaje de tipado estático desarrollado por Microsoft que combina características orientadas a objetos y funcionales. Con .NET 8 es multiplataforma (Windows, Linux, macOS) y se utiliza para APIs web, aplicaciones de escritorio, servicios en la nube, trabajos en segundo plano y juegos (Unity) en un amplio rango.
Ecosistema: ASP.NET Core (web), Entity Framework Core (acceso a datos), xUnit/NUnit (pruebas), NuGet (gestión de paquetes) y la CLI de dotnet (línea de comandos).
TL;DR
- C# moderno:
records, pattern matching,async/awaity span/memory para rendimiento. - REST rápidas con Minimal APIs; CRUD eficiente y LINQ con EF Core.
- Arquitectura en capas + inyección de dependencias para un diseño testeable.
Fundamentos del lenguaje
Los fundamentos de la sintaxis de C#, el sistema de tipos y el flujo de control. El primer paso para comprender la lógica del lenguaje.
Introducción a C# y al ecosistema .NET
C# es un lenguaje moderno, seguro y orientado a objetos. Con el ecosistema .NET es posible desarrollar aplicaciones web, móviles, de escritorio y juegos.
Primer proyecto en C#
Primera aplicación de consola en C# con Visual Studio 2022: uso de WriteLine, ReadKey y ReadLine.
Tipos de datos básicos en C#
Tipos de datos básicos en C#: numéricos, de texto, lógicos, orientados a objetos y anulables.
Estructura de sintaxis de C#
Aprende los fundamentos de la sintaxis de C#, incluyendo bloques de código, comentarios y reglas de nombrado de variables.
Operadores y expresiones en C#
Operadores y expresiones en C#: uso de operadores aritméticos, de comparación, lógicos, de incremento/decremento, ternario y null-coalescing.
Estructuras condicionales en C# (if, else, switch)
Estructuras de decisión en C#: aprende a usar if, else if, else y switch para ejecutar acciones diferentes según las condiciones.
Bucles en C# (for, foreach, while, do-while)
Aprende a usar los bucles for, foreach, while y do-while en C# para gestionar acciones repetitivas con ejemplos prácticos.
Comandos de consola en C#
Aprende a trabajar con aplicaciones de consola en C#, mostrando mensajes, leyendo entradas del usuario y formateando la salida.
Operaciones con cadenas en C#
Apprenez à manipuler les chaînes de caractères en C#, y compris la concaténation, la recherche, substring, IndexOf et plus encore.
Conversiones de tipos en C#
Aprende las conversiones de tipos en C#, incluyendo casting implícito y explícito, Parse, TryParse y métodos Convert con ejemplos.
Uso de constantes y enumeraciones en C#
Aprende a usar constantes y enumeraciones en C# para escribir código más limpio, seguro y fácil de mantener con ejemplos prácticos.
Biblioteca Math en C#
Aprende a usar la biblioteca Math en C#, incluyendo Pow, Sqrt, Round, Abs y otros métodos matemáticos con ejemplos prácticos.
Operaciones booleanas en C#
Aprende las operaciones booleanas en C#, incluyendo el tipo bool, comparaciones y operadores lógicos como &&, || y ! con ejemplos.
Operaciones con DateTime y TimeSpan en C#
Aprende a usar DateTime y TimeSpan en C# para realizar operaciones de fecha y hora como comparación, cálculo y formateo.
Operaciones aleatorias en C#
Aprende a usar la clase Random en C# para generar números, valores y selecciones aleatorias con Next, NextDouble y ejemplos.
Métodos y uso de parámetros en C#
Aprende a definir métodos y usar parámetros en C#, incluyendo parámetros por valor y referencia, parámetros opcionales y ejemplos.
Manejo de excepciones en C# (try, catch, finally)
Aprende a manejar excepciones en C# usando bloques try, catch y finally para gestionar errores de forma segura con ejemplos.
Namespaces y ensamblados en C#
Aprende los conceptos de namespaces y ensamblados en C# para organizar el código y gestionar dependencias correctamente.
Programación orientada a objetos (POO) y patrones
Clases, herencia, interfaces y patrones de diseño para escribir código reutilizable y mantenible en C#.
Clases, Objetos, Propiedades y Métodos en C#
Aprende cómo las clases, objetos, propiedades y métodos en C# forman la base de la programación orientada a objetos.
Structs en C# – Diferencias con las clases
Aprende las diferencias entre structs y clases en C#, incluyendo modelo de memoria, herencia y rendimiento.
Constructores, Destructores y this en C#
Aprende a usar constructores, destructores y la palabra clave this en C# para gestionar el ciclo de vida del objeto.
Clases Sealed, Static y Partial en C#
Aprende el propósito, las diferencias y los casos de uso de las clases sealed, static y partial en C#.
Tipos Record y Objetos Inmutables en C#
Aprende record types y objetos inmutables en C#, incluyendo igualdad por valor, expresiones with y ejemplos prácticos.
Encapsulación, Herencia y Polimorfismo en C#
Aprende encapsulación, herencia y polimorfismo en C# con ejemplos claros para dominar los principios básicos de la POO.
Interfaces y Clases Abstractas en C#
Aprende interfaces y clases abstractas en C#, sus diferencias y cuándo usar cada una para diseñar código limpio y extensible.
Delegados y Eventos en C#
Aprende delegados y eventos en C# para crear aplicaciones basadas en eventos con callbacks y ejemplos prácticos.
Expresiones Lambda en C#
Aprende expresiones lambda en C#, incluyendo sintaxis concisa, delegados Func y Action y ejemplos prácticos con LINQ.
Métodos de Extensión en C#
Aprende métodos de extensión en C# para añadir nuevas funcionalidades a tipos existentes sin modificar su código.
Fundamentos de Inyección de Dependencias en C#
Aprende los fundamentos de Inyección de Dependencias en C#, gestionando dependencias y logrando bajo acoplamiento.
Principios SOLID en C#
Aplicación de los principios SOLID en C# con ejemplos: código más flexible, mantenible y comprobable.
Patrones de diseño en C# (Factory, Singleton, Repository, Observer)
Aprende patrones de diseño en C#, como Factory, Singleton y Repository, para desarrollar aplicaciones escalables y mantenibles.
Interop en C# (Uso de bibliotecas C/C++)
Aprende Interop en C# para trabajar con bibliotecas C/C++, incluyendo P/Invoke y código no administrado.
Datos y colecciones
Arreglos, colecciones, genéricos y LINQ para gestionar y consultar datos de manera eficaz en C#.
Arreglos (Arrays) en C#
Aprende arreglos en C#: declaración, índices, recorridos con bucles y operaciones básicas con ejemplos prácticos.
Colecciones en C#: Lista, Diccionario, Cola, Pila
Aprende colecciones en C# como List, Dictionary, Queue y Stack para gestionar datos de forma eficiente con ejemplos.
Genéricos en C# (List<T>, Dictionary<TKey,TValue>)
Aprende genéricos en C# (List<T>, Dictionary<TKey,TValue>) para escribir código reutilizable y seguro de tipos con ejemplos.
Fundamentos de LINQ en C# (Where, Select, OrderBy)
Aprende fundamentos de LINQ en C# con Where, Select y OrderBy para consultar, filtrar y ordenar colecciones con ejemplos.
Crear un ZIP de una carpeta con progreso en .NET (ejemplo WPF)
Genera un ZIP desde una carpeta en .NET y actualiza una ProgressBar en WPF usando ZipArchive e IProgress para una UI fluida.
Formato estándar de respuesta API en ASP.NET Core (Result)
Estandariza las respuestas de éxito y error en ASP.NET Core con un wrapper Result
Rate Limiting por IP en ASP.NET Core (.NET 8): 429 Too Many Requests
Limita solicitudes por IP con el rate limiting integrado de .NET 8 y devuelve 429 con Retry-After para proteger tu API del abuso.
ProblemDetails en ASP.NET Core: errores limpios con TraceId
Mapea excepciones a ProblemDetails (RFC 7807) y devuelve un traceId para errores consistentes y para localizar la petición exacta en los logs.
Paginación limpia en ASP.NET Core Web API (Headers + Link)
Devuelve solo los items en el body y mueve los metadatos de paginación a headers. Añade el Link header RFC 5988 (next/prev) para navegar.