Skills que aprenderás
Convocatorias
No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.
Recursos
No hay recursos disponibles todavía para esta convocatoria
Dirigido a desarrolladores que ya dominan los fundamentos de C# y quieren consolidar un perfil profesional capaz de diseñar software orientado a objetos de calidad, en entornos de trabajo reales. A lo largo de las 8 horas del curso, el participante profundizará en el modelado de tipos mediante herencia, composición e interfaces; aprenderá a seleccionar y operar colecciones genéricas con criterio; construirá flujos asíncronos robustos con async/await y Task<T>; y explotará LINQ para transformar y consultar datos en memoria de forma expresiva y eficiente. El resultado concreto es que el participante será capaz de diseñar, integrar y depurar módulos de mediana complejidad en una aplicación C# real, tomando decisiones de diseño fundamentadas y comunicándolas con claridad técnica.
Task, propagación de excepciones y riesgos de concurrencia— diferenciándolo del modelo síncrono tradicional.Task.Bloque 1 — Diseño orientado a objetos con tipos y encapsulamiento
Este bloque sienta las bases del diseño estructural en C# intermedio. Se aborda cómo modelar un dominio de negocio mediante jerarquías de clases e interfaces, decidiendo en cada nivel cuándo aplicar herencia de implementación frente a composición de comportamiento. A partir de casos prácticos, el participante aprende a justificar el uso de cada modificador de acceso —public, private, protected e internal— razonando sobre qué contratos se exponen hacia el exterior y qué detalles de implementación deben permanecer encapsulados. El bloque cierra con la introducción a los genéricos con restricciones de tipo (where T : ...), mostrando cómo ampliar o adaptar APIs genéricas existentes sin romper el contrato público.
Bloque 2 — Colecciones genéricas y consultas LINQ
El participante analiza comparativamente las colecciones genéricas más utilizadas —List<T>, Dictionary<TKey,TValue> y HashSet<T>— estudiando su semántica y la complejidad de sus operaciones principales para seleccionar la más adecuada ante diferentes escenarios de acceso y búsqueda. Sobre esas colecciones se construyen y evolucionan consultas LINQ, partiendo de expresiones simples de filtrado y proyección hasta llegar a agrupaciones y transformaciones compuestas. Se presta especial atención a la ejecución diferida y a las estrategias para evitar la materialización prematura de colecciones intermedias, manteniendo siempre la legibilidad del código.
Bloque 3 — Programación asíncrona y manejo de errores
Este bloque aborda el modelo asíncrono de C# de forma integral. Se explica el ciclo de vida de Task y Task<T>, la sintaxis async/await y los patrones para encadenar múltiples operaciones asíncronas de manera segura. Se dedica atención explícita al manejo de excepciones en contextos asíncronos —AggregateException, propagación correcta y uso de try/catch dentro de métodos async— y a los errores de concurrencia más frecuentes. El bloque incluye sesiones de depuración guiada sobre fragmentos de código con fallos reales: el participante debe identificar la causa raíz y proponer y argumentar la corrección. Se integra aquí también el diseño de jerarquías de excepciones personalizadas, estableciendo políticas claras de cuándo lanzar, capturar o propagar cada tipo dentro de un flujo asíncrono.
dotnet --version).El participante debe dominar los contenidos cubiertos en CS01 — C# Iniciación: tipos de valor y referencia, estructuras de control, definición básica de clases y métodos, y uso elemental de la biblioteca estándar. Se asume también comodidad operando con Visual Studio o Visual Studio Code y con la CLI de .NET para crear, compilar y ejecutar proyectos de consola.