Aprende C# desde cero. Incluye las novedades de C#13

Why take this course?
¡Hola! Vamos a abordar cada uno de los puntos listados para que puedas entender y aplicar los conceptos de C# que te has propuesto. Hemos comenzado con los métodos, funciones y recursividad, y ahora continuaremos con los siguientes temas:
E) Excepciones y Tratamiento de Errores
- Gestión de excepciones: Aprenderás cómo manejar errores en tu código utilizando bloques
try
,catch
yfinally
. C# utiliza un sistema basado en clases derivadas deException
para representar y manejar errores. - Lanzamiento de excepciones: Aprenderás a lanzar tus propias excepciones utilizando el método
throw
. - Personalización de mensajes de excepción: Podrás personalizar los mensajes que se muestran cuando se lanza una excepción.
- Excepciones asincrónas en .NET async-await: Entenderás cómo manejar excepciones en un contexto asincrónno.
- Operadores de seguridad:
try-catch
conusing
. - Excepciones no manejadas (Unhandled Exceptions): Aprenderás qué son y cómo evitarlas.
F) Patrones de Diseño
- Singleton: Un patrón que asegura que una clase tenga únicamente una instancia y proporcionar un punto de acceso global a esa instancia.
- Observer/Publish-Subscribe: Permite una clase para definir un tipo de eventos y notificar todas las suscriptores registrados cuando se produce uno de estos eventos.
- Factory Method: Métodos que encapsulan la lógica de creación para un objeto, permitiendo elegir entre varios tipos derivados de una clase base.
- Abstract Factory: Permite crear conjuntos de objetos dependientes/relacionados bajo el mismo principio de abstracción.
- Strategy Pattern: Permite definir una familia de algoritmos, encapsular cada uno de ellos y hacerlos intercambiables.
- Command Pattern: Encapsula una solicitud como un objeto, permitiendo parametrizar métodos con llamadas y antes de ejecutarlos.
- Decorator Pattern: Añade responsabilidades adicionales a un objeto de manera dinámica.
- State Pattern: Representa los estados de un objeto, permite que el objeto altere su comportamiento cuando su estado cambia.
- Chain of Responsibility Pattern: Pasa una solicitud a lo largo de una cadena de manejadores potenciales.
- Repository Pattern: Proporciona una capa de abstracción sobre la capa de acceso a datos, separando la lógica de negocio de las consultas y operaciones de base de datos.
- Unit of Work Pattern: Aumenta el granularidad de las transacciones al nivel de las operaciones en un conjunto de objetos agregados.
G) Ejemplo Práctico con Patrones de Diseño
Tomaré uno o varios ejemplos para ilustrar cómo se aplican los patrones de diseño en la práctica. Esto te ayudará a entender mejor su implementación y cómo pueden resolver problemas comunes en el diseño de software.
H) Excepciones, Readonly y const
- Excepciones: Profundizaremos en el tratamiento de excepciones, incluyendo manejo de excepciones avanzado, gestión de errores asincrónicos y cómo crear y personalizar tus propias excepciones.
- Clases estáticas y métodos estáticos: Aprenderás cómo definir métodos y clases que no requieren instanciar una clase.
- Fields
readonly
vsconst
: Entenderemos la diferencia entre ambos y cuándo usarlos correctamente.
I) Acceso a Datos Básico
- LINQ (Language Integrated Query): Aprenderás cómo realizar consultas y operaciones en objetos de C#, incluyendo bases de datos.
- Entity Framework Core: Una biblioteca que facilita el acceso a datos utilizando un modelo de programación orientado a objetos.
- ADO.NET: Las tecnologías básicas para trabajar con datos, como
SqlDataReader
,SqlCommand
y otros componentes del proveedor ADO.NET.
J) Concurrency & Parallelism
- async/await: Para escribir código asincrónico que no bloquea el hilo principal, permitiendo una mejor utilización de los recursos y una mejor experiencia de usuario.
- Parallel Programming: Aprenderás a ejecutar múltiples tareas en paralelo utilizando
Task.Run
,Parallel
y elDataParallelism
. - Concurrency issues and synchronization: Entenderemos los problemas que surgen al trabajar con múltiples hilos y cómo sincronizar estos para evitar condiciones indeseables como las carreras de condicionales.
K) Dependency Injection (DI) & Inversion of Control (IoC)
- IoC Containers: Herramientas como Castle Windsor, Unity o el soporte integrado en .NET Core para configurar y crear instancias de clases sin acoplarse estrictamente su código a cómo se crean.
- Dependency Injection in ASP.NET Core: Configuración y uso de DI en aplicaciones web con ASP.NET Core.
- Interfaces and abstractions: Cómo definir interfaces y abstract classes para facilitar la inyección de dependencias.
L) Testing
- Unit tests with MSTest, NUnit or xUnit: Herramientas y prácticas para escribir y ejecutar pruebas unitarias en C#.
- Mocking frameworks like Moq or NSubstitute: Para simular comportamientos de dependencias durante las pruebas.
- Test-driven development (TDD): Aprenderás a escribir primero los casos de prueba antes del código que se supone que falle.
M) .NET Core and .NET 5/6+
- Cross-platform: Entenderemos cómo .NET Core permite ejecutar la misma aplicación en diferentes sistemas operativos como Windows, Linux y macOS.
- Microservices with .NET Core: Aprenderás a diseñar y construir microservicios con .NET Core.
- ASP.NET Core: Exploraremos las capacidades de creación de APIs web, MVC y Blazor con ASP.NET Core.
- Entity Framework Core in .NET Core: Aprenderás cómo utilizar EF Core en aplicaciones .NET Core para trabajar con bases de datos.
- Configuration and Dependency Injection in .NET Core: Configuración de servicios y dependencias en aplicaciones de consola, web y microservicios.
N) C# 9+ Features
- C# 9.0 and above: Aprenderemos las nuevas características del lenguaje, como los récords, inicialización colectiva, inference de tipo y más.
- Pattern Matching with switch expressions: Una forma más expresiva y potente de usar
switch
. - Immutable Records and Init-only members: Estructuras de datos immutables y propiedades que se pueden inicializar una sola vez.
- Async Streams: Manipulación de secuencias de operaciones asíncronas.
- Index and Range Types for memory access patterns: Acceso más seguro y eficiente a arrays y matrices.
- Conceptual programming with structs and interfaces: Usando estructuras y interfaces para modelar conceptos en lugar de implementaciones con clases.
O) DevOps and CI/CD Pipeline
- Azure DevOps or GitHub Actions: Herramientas para configurar flujos de trabajo continuos de integración y entrega (CI/CD).
- Automated deployments to Azure App Service, Kubernetes, or Docker Containers: Despliegue automático de aplicaciones en diferentes entornos y plataformas.
- Monitoring and logging with Application Insights, Prometheus, Grafana, etc.: Monitoreo y registro de las aplicaciones para obtener insights sobre el rendimiento y la salud del sistema.
Este es un resumen general de los temas que podrías explorar en profundidad mientras aprendes a trabajar con C# y .NET. Cada uno de estos temas tiene su propio conjunto de subtemas y matiz, por lo que te recomendaría enfocarte en aquellos que más se alinean con tus objetivos profesionales o personales.
Course Gallery




Loading charts...