Programando en C# 10: De cero a profesional
Curso de C#.
1.1. Introducción y bienvenida
1.2. Qué es dotNet
1.3. Qué es C-sharp
1.4. Visual Studio y VSCode
1.5. Instalando VIsualStudio
1.6. Instalando Visual Studio Code
1.7. Creación de app de consola con Visual Studio
1.8. Creación de app de consola con Visual Studio Code y dotnet CLI
1.9. La Estructura de Nuestra Solución
1.10. Resumen
1.11. Ejercicios - Explicación
Repositorio del curso
2.1. Variables
2.2. Creando el proyecto
2.3. Sentencias de alto nivel
2.4. Sintaxis Básica de Csharp
2.5. Dónde Encontrar el Código del Curso
2.6. Introducción a las Variables - Números Enteros
2.7. Otros Tipos de Dato de Números Enteros
2.8. Números Reales o Punto-Flotantes
2.9. Booleanos
2.10. char y strings - Secuencias de Escape
2.11. Strings Verbatim
2.12. Introducción a DateTime
2.13. Nombres de variables
2.14. Variables Implícitamente Tipadas
2.15. Valores por Defecto
2.16. Nulo - Tipos de Valor y Tipos de Referencia
2.17. Nulificables - Tipos de Referencia no Nulos
2.18. Operaciones Binarias
2.19. Otras Operaciones Binarias
2.20. Operaciones Binarias y Aproximaciones
2.21. Overflow Aritmético
2.22. Interpolación de strings
2.23. Operaciones Unarias
2.24. Expresiones void
2.25. Operaciones de Asignación
2.26. Orden de Precedencia de las Operaciones - Legibilidad
2.27. Constantes y Valores Mágicos
2.28. Advertencias y Errores
2.29. Resumen
3.1. Introducción
3.2. Creando la app del módulo
3.3. Lógica Booleana
3.4. Operadores Condicionales Booleanos
3.5. Condicional if
3.6. Operador Ternario
3.7. Sentencia Switch
3.8. Patrones Relacionales
3.9. Patrones Lógicos
3.10. Expresiones Switch y Discard
3.11. Bucle while
3.12. Bucle do-while
3.13. Bucle for
3.14. Bucle for each
3.15. Sentencias de Saltos - Break y Continue
3.16- Bucles infinitos
3.17. Resumen
4.1. Introducción
4.2. Creando la app
4.3. ToString
4.4. Casteos
4.4.Parse y TryParse
4.5. Enums
4.6. Introducción a los arreglos
4.7. Índices
4.8. Rangos
4.9. Arreglos multidimensionales
4.10. Arreglos de arreglos
4.11. Manipulando strings
4.12. Resumen
5.1. Introducción
5.2. Creando la app
5.3. Declarando Funciones
5.4. Alcance de las variables
5.5. Parámetros
5.6. Parámetros opcionales
5.7. Arreglos como parámetros
5.8. Pasando Tipos de Referencia
5.9. Parámetros out
5.10. Tuplas
5.11. Funciones locales
5.12. Expresiones lambda
5.13. Action
5.14. Func
5.15. Predicados
5.16. Delegados
5.17. Funciones anónimas
5.18. Función Main
5.19. Funciones
6.1. Introducción
6.2. Creando la App
6.3. Clases y Campos
6.4. Propiedades
6.5. Métodos
6.6. Constructores
6.7. Clases como Valores de Salida
6.8. Deconstructores
6.9. Clases y Miembros Estáticos
6.10. Métodos de Extensión
6.11. Patrones de Propiedad
6.12. Tipos Anónimos
6.13. Namespaces y la directiva using
6.14. Using-s Implícitos y Globales
6.15. Clases Parciales
6.16. Structs
6.17. Igualdad - Clases y Structs
6.18. Introducción a los Records
6.19. Creando un Record
6.20. Records Posicionales
6.21. Clonando Records - Mutación no Destructiva
6.22. Propiedades Inmutables en Clases con Init
6.23. El operador de Elvis
6.24. El Operador de Coalescencia Nula
6.25 Perdonando el Nulo y nameof
116- Resumen
7.1. Introducción
7.2. ¿Qué es la Programación Orientada a Objetos_
7.3. Creando la App
7.4. Introducción a la Herencia
7.5 Sobrescribiendo Métodos_ Virtual
7.6. Clases Abstractas
7.7. Sellando Clases con Sealed
7.8. Constructor en la Clase Base
7.9. La Clase Base de Todas las Clases_ Object
7.10. Casteando a Object
7.11. Límites de Herencia
7.12. Herencia con Records
7.13. Herencia con Structs
7.14. Introducción a los Modificadores de Acceso
7.15. Public
7.16. Private
7.17. Internal
7.18. Protected
7.19. Protected Internal
7.20. Private Protected
7.20. Introducción a las Interfaces
7.21. Nuestra Primera Interfaz
7.22. Polimorfismo Con Interfaces
7.23. Compartiendo Código de una Manera Flexible
7.24. Introducción a la Inyección de Dependencias
7.25. Inyección por el Constructor
7.26. Contenedor de Inversión de Controles
7.27. Implementaciones por Defecto en Interfaces
7.28. Sobrecarga de Operadores
7.29. Igualdad de Structs
7.30. Igualdad de Clases
7.31. Resumen
8.1. Introducción
8.2. Creando la App
8.3. Debug WriteLine
8.4. Mensajes de Log con Tracepoints
8.5. Breakpoint Normal
8.6. Breakpoint Temporal
8.7. Breakpoint Condicional
8.8. Breakpoint dependiente
8.9. Valores de Variables
8.10. Ventana Inmediata
8.11. Ventana Call Stack
8.12. Lanzando Excepciones
8.13. Atrapando Excepciones con try-catch
8.14. Bloque finally
8.15. Excepciones por defecto
8.16. Excepciones Personalizadas
8.17. Filtros de Excepción
8.18. Relanzando Excepciones
8.19. Resumen
9.1. Introducción
9.2. Creando la App
9.3. Introducción a los Genéricos
9.4. Restricciones a los Genéricos
9.5. Colecciones - Listado
9.6. Diccionarios
9.7. GetHashCode
9.8. IEnumerable
9.9. yield y Ejecución Diferida
9.10. yield y Bucles Infinitos
9.11. Comparaciones Personalizadas con IComparable y IComparer
9.12. Resumen
10.1. Introducción
10.2. Creando la App
10.3. ¿Qué es LINQ_
10.4. Ejecución Diferida
10.5. Filtrando con la Función Where
10.6. First y FirstOrDefault
10.7. Ordenando con OrderBy
10.8. Proyectando con Select
10.9. Haciendo Productos Cartesianos con SelectMany
10.10. Funciones Escalares_ Conteo, Sumar, Mínimo, Máximo y Promedio
10.11. MinBy y MaxBy
10.12. Cuantificadores Universales_ All, Any y Contains
10.13. Take y Skip
10.14. Agrupando con GroupBy
10.15. Eliminando Repetidos con Distinct y DistinctBy
10.16. Función Chunk
10.17. Resumen
11.1. Introducción
11.2. Creando la App
11.3. Clase File
11.4. Clase Directory
11.5. Clase Path
11.6. Introducción a los Streams
11.7. Escribiendo Archivos con StreamWriter
11.8. Introducción al IDisposable
11.9. De Listado a Archivo de Texto
11.10. Creando un CSV
11.11. StreamReader y Stopwatch - Lectura Rápida
11.12. Serializando y Deserializando - Formato JSON
11.13. Resumen
12.1. Introducción
12.2. Qué es la Concurrencia
12.3. Introducción a la Programación en Paralelo
12.4. Introducción a la Programación Asíncrona
12.5. Operaciones I/O vs CPU
12.6. Creando la App de WinForms
12.7. UI Que Se Congela
12.8. async-await
12.9. Ejemplo de Programación Asíncrona
12.10. Introducción a Task
12.11. Tareas Simultáneas con Task.WhenAll
12.12. Descargando Imágenes de Manera Simultánea
12.13. ¿Qué es el Parallel.For?
12.14. Multiplicar Matrices en Paralelo
12.15. Task.WhenAll vs Parallel.For
12.16. Métodos Atómicos
12.17. Seguridad en Hilos
12.18. Condición de Carrera
12.19. Interlocked
12.20. Lock
12.21. Resumen
13.1. Introducción
13.2. Qué es ADO.NET
13.3. Instalando SQL Server
13.4. Creando la Base de Datos
13.5. Creando la App del Módulo
13.6. Creando la Cadena de Conexión
13.7. Conectándonos a la Base de Datos Desde Nuestra App de C-
13.8. Usando Proveedores de Configuración
13.9. Insertando Datos en una Tabla
13.10. Pasando Parámetros a un Query
13.11. Invocando un Procedimiento Almacenado de Insercion de Datos
13.12. Parámetros OUTPUT
13.13. Obteniendo un Escalar
13.14. Usando un DataTable
13.15. DataTables y Procedimientos Almacenados
13.16. Convirtiendo un DataTable a Listado
13.17. Usando un DataSet
13.18. Resumen
14.1. Introducción
14.2. Creando la App
14.3. ¿Qué es la Reflexión_
14.4. Propiedades de Type - Obteniendo un Campo con Reflexión
14.5. Instanciando Tipos Usando Reflexión
14.6. Invocando Métodos Usando Reflexión
14.7. Obteniendo Tipo Base e Interfaces - IsAssignableFrom y IsAssignableTo
14.8. Introducción a los Atributos
14.9. Atributos Personalizados
14.10. Utilizando dynamic
14.11. Utilizando ExpandoObject
14.12. Introducción a los Generadores de Código
14.13. Ejemplo de Generador de Código
14.14. Resumen
15.1. Introducción
15.2. Creando la App del Módulo
15.3. Introducción al HttpClient - GetAsync y GetStringAsync
15.4. Usando GetFromJsonAsync
15.5. Haciendo un HTTP Post
15.6. Parseando los Errores del Web API
15.7. Enviando Cabeceras
15.8. Introducción al HttpClientFactory
15.9. Clientes Nombrados
15.10. Clientes Tipados
15.11. Enviando un Archivo
15.12. Descargando un Archivo
15.13. Introducción a los Eventos
15.14. Eventos y Timers
15.15. Alias de Namespaces
15.16. Operador Calificador de Alias de Namespace
15.17. Resumen