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 FILE SYSTEM 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.