What you'll learn:
- Fundamentos de programación y con ello la adquisición de bases sólidas para aprender muchas más tecnologÃas de Microsoft u otras plataformas.
- Dominio en temas básicos como flujo de programa, algoritmos y estructuras de datos, manejo de errores y depuración, programación orientada a objetos y mucho más
- Dominio de temas intermedios y avanzados como seguridad de aplicaciones, rendimiento de aplicaciones, gestión de memoria, multithreading y mucho más
- Excelente dominio de Visual Studio como herramienta principal de desarrollo (IDE) en su versión más reciente para el desarrollo de software con C#.
- Dominio de Microsoft .NET
- Bases de .NET 5, .NET 6 y .NET 7
- Bases de Windows Presentation Fundation (WPF)
- Creación de aplicaciones de escritorio con WPF
En este curso aprende a programar con C#, uno de los lenguajes de programación mas sencillos y a su vez robustos que existentes actualmente. Además C# cuenta con el respaldo de Microsoft al ser parte de .NET
NOTA: Este curso se actualiza constantemente y en este momento ya está actualizado a .NET 8
También aprenderás de la mano con Visual Studio, uno de los IDE más potentes en la actualidad, que proporciona las mejores herramientas en su categoría para cualquier desarrollador. Además permite simplificar muchas tareas que en otros lenguajes y entornos de programación podría ser hasta tortuoso. Visual Studio nos permite desarrollar con un conjunto de herramientas completo, desde el diseño inicial hasta la implementación final.
Irás paso a paso conociendo desde cero el lenguaje y los conceptos de programación necesarios para convertirte en un buen programador, con bases sólidas y logrando posteriormente incluso penetrar en cualquier otro lenguaje o plataforma.
Si ya cuentas con las bases de programación, podrás brincarte los fundamentos y pasar directo a la acción, éste curso esta diseñado para iniciar en el nivel que te encuentras.
Tambien aprende a crear excelentes aplicaciones de escritorio con Windows Presentation Fundation (WPF), la mejor plataforma para crear aplicaciónes llamativas sobre Windows.
El curso incluirá los siguientes temas de estudio :
Fundamentos
i. Introducción.
Presentación
ii. Introducción a .NET y Visual Studio
Objetivo
Introducción a .NET Framework
Introducción a Visual Studio
Práctica: Instalación de Visual Studio
SDK de .NET
Creación de proyectos con Visual Studio
Práctica: Analizando un proyecto de consola
iii. Introducción a los conceptos básicos de programación
Lógica de programación
Procesamiento y almacenamiento de datos informáticos
Hardware
Software
Ciclo de vida de la aplicación
Tipos de aplicación
Práctica: Tipos de aplicación
Compilación de código
Práctica: Compilación
Resumen
iv. Conceptos básicos del lenguaje de programación
Introducción
Sintaxis
Práctica: Sintaxis
Tipos de datos
Variables y constantes
Práctica: Tipos, variables y constantes
Resumen
v. Flujo de programa
Introducción a los conceptos de programación estructurada
Introducción a la ramificación
Funciones
Practica: Aplicando programación estructurada
vi. Algoritmos y estructuras de datos
Algoritmos
Estructura de datos
Práctica. Matrices.
Práctica. Colas y pilas.
Practica. Listas
Práctica. Otras colecciones.
vii. Manejo de errores y depuración
Introducción a los errores del programa
Introducción al manejo estructurado de errores
Práctica. Depuración con Visual Studio.
Práctica. Try Catch Finally.
viii. Introducción a la programación orientada a objetos
Introducción a estructuras y clases.
Clases
Encapsulación
Herencia
Enumeraciones
Práctica. Clases, encapsulación y herencia
Práctica. Clases, encapsulación y herencia. Continuación
Polimorfismo
Vistazo a la biblioteca de clases base de .NET
Tipo Record
ix. Programación Entrada/Salida fundamental
Uso de la E/S de la consola
Práctica. Usando E/S en consola
Usando E/S en archivos
x. Rendimiento de aplicaciones y gestión de memoria
Tipos de valor vs tipos de referencia
Tipos de conversión - Implícitas
Tipos de conversión – Explícitas
Tipos de conversión – System.Convert
El recolector de elementos no utilizados
INTERMEDIO-AVANZADO
xi. Implementando multiprocesamiento y procesamiento asíncrono
Usando Delegados y Lambda fácilmente
Entendiendo hilos (Threads)
Usando la clase Thread
Usando la clase Thread - ParameterizedThreadStart
Usando la clase Thread – ThreadStatic
Usando la clase Thread – ThreadLocal
Usando ThreadPool
Usando Tareas
Usando Tareas – ContinueWith
Usando Tareas – TaskFactory
Usando Tareas - WaitAll
Usando la clase PARALLEL
Usando ASYNC y AWAIT
Usando ASYNC y AWAIT – Ecalabilidad
Usando ASYNC y AWAIT - SynchronizationContext
Usando Parallel Language Integrated Query (PLINQ)
Usando colecciones concurrentes
xii. Administrando subprocesos múltiples (multithreading)
Objetivo de la sección.
Sincronizando recursos
La clase Volatile
La clase Interlocked
Cancelando tareas
xiii. Crear e implementar eventos (EVENTS) y devoluciones de llamada (CALLBACK).
Objetivo de la sección.
Entendiendo delegados (DELEGATES)
Usando expresiones LAMBDA
Usando eventos (EVENTS)
xiv. Usando Tipos en modo avanzado
Objetivo de la sección.
Creando enumeraciones
Usando tipos genéricos (GENERICS)
Extendiendo tipos existentes
Usando tipos dinámicos
xv. Programación orientada a objetos avanzada
Objetivo de la sección.
Diseñando e implementando interfaces
Creando y Usando clases base
Práctica: Interfaces y Clases Base
Clases base abstractas y selladas
Principio de sustitución de Liskov
Implementando interfaces estándar de .NET
Práctica: Usando IDisposable.
xvi. Utilizando Reflection
Objetivo de la sección
Creando y usando atributos
Ejercicio: Usando atributos localmente
Usando Reflection
Usando CodeDOM y expresiones Lambda para generar código.
xvii. Usando Strings en modo avanzado.
Objetivo
Usando strings en .NET
Manipulando Strings
Buscando y enumerando Strings
Formateando Strings
Ejercicio. Formateo de Strings
xviii. Validando la entrada de aplicación
Objetivo
¿Por qué es importante validar las entradas de una aplicación?
Usando Parse, TryParse y Convert
Usando Expresiones Regulares
Validando JSON y XML
Ejercicio. Validando JSON
xix. Ejecutando encriptación simétrica y asimétrica
Objetivo
Usando encriptación simétrica y asimétrica
Trabajando con encriptación en .NET
Usando Hashing
Administrando y creando certificados.
Usando SecureString
xx. Administrando ensamblados (ASSEMBLIES)
Objetivo
¿Qué es un ensamblado?
Firmando ensamblados usando STRONG NAME
El Global Assembly Cache (GAC)
Versionando ensamblados
xxi. Depuración (DEBUG) avanzada
Objetivo
Configuración de compilación
Crear y administrar directivas de compilación
Gestión de archivos PDB y símbolos
xxii. Implementando el diagnóstico en una aplicación.
Objetivo
LOGIN y TRACING 1
LOGIN y TRACING 2
Perfilando tu aplicación
Creando y monitoreando contadores de rendimiento.
xxiii. Entrada/Salida avanzada
Objetivo
Archivos - Usando Drives
Archivos - Usando Directorios
Archivos - Usando Archivos
Archivos - Usando Paths
El FILESYSTEM no es solo para tí
Comunicándonos a través de la RED.
Implementando E/S asíncrona
xxiv. Consumiendo datos
Objetivo
¿Que es una base de datos?
Instalando Sql Server
Instalando Microsoft Sql Server Management Studio
Trabajando con base de datos - Conexión
Trabajando con base de datos - Consulta
Trabajando con base de datos - Actualización
Trabajando con base de datos - Parámetros
Trabajando con base de datos - Transacciones
Trabajando con base de datos - ORM - Entity Framework
Usando WEB SERVICE - WCF
Consumiendo XML
Consumiendo XML - Clases de .NET
Consumiendo JSON
xxv. Consultando y manipulando datos y objetos usando LINQ
Objetivo
Conceptos LINQ: Explicit Typing
Conceptos LINQ: Sintaxis de inicialización de objetos
Conceptos LINQ: Expresiones LAMBDA
Conceptos LINQ: Métodos de extensión
Conceptos LINQ: Tipos anónimos
Usando queries LINQ
Operadores estándar de LINQ
¿Cómo funciona LINQ?
Usando LINQ para XML
xxvi. Serializar y deserializar datos
Objetivo
Usando serialización y deserialización
Usando XmlSerializer
Usando serialización binaria
Usando DataContract
Usando JSON Serializer
WINDOWS PRESENTATION FUNDATION (WPF) PARA PRINCIPIANTES
xxvii. WPF: Introducción
Objetivo
Mi primer aplicación WPF
¿Qué es WPF?
XAML
Codigo subyacente
Controles
Layouts
Data binding
Gráficos y animación
Tipografía y texto
Personalización - Content Model
Personalización - Plantillas y Triggers
Personalización - Estilos
Personalización - Controles
xxviii. WPF: XAML
Objetivo
¿Qué es XAML?
Sintaxis XAML - Elementos
Sintaxis XAML - Atributos
Sintaxis XAML - Propiedades
Sintaxis XAML - Colecciones
Sintaxis XAML - Propiedades de Contenido
Sintaxis XAML - Texto como contenido
Sintaxis XAML - Eventos
Case y espacio en blanco en XAML
Extensiones de marcado
Convertidores de tipo
Elementos raíz XAML y espacios de nombres XAML
Prefijos personalizados y tipos personalizados en XAML
Eventos y código subyacente XAML
Elementos con nombre XAML
Propiedades adjuntas y eventos adjuntos
Tipos base y XAML
Seguridad XAML
Cargando XAML desde el código
xxix. WPF: Code Behind
Objetivo
¿Qué es Code Behind?
Cosas a tener en cuenta al manejar Code Behind
x: Código y Limitaciones del código en línea
xxx. WPF: Windows
Objetivo
La clase Window
Implementando Window
Abriendo una ventana
Ventana propietaria
Activación de una ventana
Cerrar una ventana
Ciclo de vida de una ventana
Ubicación y tamaño de una ventana
Estado de una ventana
Apariencia de una ventana
xxxi WPF: Cuadros de diálogo.
Objetivo
Cuadros de mensaje
Cuadros de diálogo comunes
Cuadros de diálogo personalizados
Elementos de la interfaz de usuario que abren un cuadro de diálogo
Devolver un resultado
xxxii WPF: Controles
Objetivo
Jerarquia de clases para los controles
Layouts. Border
Layouts. StackPanel y ScrollViewer
Layouts. Grid
Layouts. Canvas
Layouts. BulletDecorator
Layouts. DockPanel
Layouts. Expander
Layout. GridSplitter
Layouts. GroupBox
Layouts. Thumb And ScrollBar
Layouts. WrapPanel and ViewBox
Botones. Button
Botones. RepeatButton
Vizualización de datos. DataGrid
Vizualización de datos. TreeView y ListView
Fechas. Calendar y DatePicker
Menus. ContextMenu
Menus. Menu
Menus. ToolBar
Selección. CheckBox
Selección. ComboBox
Selección. ListBox
Selección. RadioButton
Selección. Slider
Navegación. Frame
Navegación. NavigationWindow
Navegación. TabControl
Información de usuario. AccessText
Información de usuario. Label
Información de usuario. Popup
Información de usuario. ProgressBar
Información de usuario. StatusBar
Información de usuario. TextBlock y Tooltip
Documentos. Varios
Entrada. Varios
Media. Varios
Entrada Digital. Varios.
xxxiii WPF: Propiedades de Dependencia
Objetivo.
¿Qué es una propiedad de dependencia?
Definición de una propiedad de dependencia
Registro de una propiedad de dependencia
Wrapper de una propiedad de dependencia
¿Cómo usa WPF las propiedades de dependencia?
Validación de una propiedad de dependencia
xxiv WPF: Bindings
Objetivo.
Propiedades de dependencia.
Enlace entre elementos.
Enlace de elementos con código.
Enlace de objetos que no son elementos.
xxxv WPF: Comandos
Objetivo.
Entendiendo comandos.
Biblioteca de comandos.
Orígenes de comandos.
Enlaces de comandos.
Orígenes múltiples.
Texto de comandos.
Invocando comandos.
Desactivando comandos.
Controles con comandos incorporados.
xxxvi WPF: Recursos
Objetivo.
Colección de recursos
Jerarquía de recursos
Recursos dinámicos y estáticos
Recursos de aplicación y de sistema
Diccionario de recursos
xxxvii WPF: Estilos
Objetivo.
Conceptos básicos
Estableciendo propiedades
Adjuntando controladores de eventos
Capas de estilos
Aplicación automática de estilos
Un Trigger simple
Trigger de eventos
Behaviors
Usando Behaviors
Y más.