Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

C# — Intermedio

8h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • C#

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la 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.

  1. Conceptual — Comparar los tipos de colección genérica más habituales y los modificadores de acceso disponibles en C#, explicando las implicaciones de semántica, rendimiento y encapsulamiento que justifican la elección de uno u otro en función del contexto de uso.
  2. Conceptual — Distinguir el modelo de ejecución asíncrona de C# —ciclo de vida de una Task, propagación de excepciones y riesgos de concurrencia— diferenciándolo del modelo síncrono tradicional.
  3. Procedimental — Diseñar jerarquías de tipos (clases, interfaces, genéricos con restricciones) y jerarquías de excepciones personalizadas que respondan a los requisitos de un dominio concreto, aplicando herencia y composición donde corresponda y exponiendo únicamente la superficie pública necesaria.
  4. Procedimental — Construir y adaptar consultas LINQ sobre colecciones en memoria para satisfacer requisitos cambiantes —filtros, proyecciones y agrupaciones— sin materializar colecciones intermedias innecesarias.
  5. Integrador — Integrar y depurar flujos de múltiples llamadas asíncronas con manejo correcto de excepciones, identificando la causa raíz de errores de concurrencia y proponiendo correcciones justificadas en términos del modelo de ejecución de 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.

  • Sistema operativo: Windows 10/11, macOS 12+ o Linux (distribución con soporte LTS activo).
  • SDK: .NET 8 o superior instalado y accesible desde terminal (dotnet --version).
  • IDE / editor: Visual Studio 2022 (Community o superior) con la carga de trabajo Desarrollo de escritorio de .NET, o Visual Studio Code con la extensión C# Dev Kit.
  • Control de versiones: Git 2.x instalado; cuenta en GitHub o equivalente para entregar ejercicios.
  • Conexión a internet: necesaria para restaurar paquetes NuGet y acceder a los materiales del curso.

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.