©2024 Escuela Tecnologías de la Información S.L. Todos los derechos reservados.
Curso de C#
Domina C#, el lenguaje multiplataforma de Microsoft
Material disponible
Con este Curso de C# aprenderás los fundamentos de uno de los lenguajes más usados a nivel mundial. C# es un lenguaje consolidado, orientado a objetos y con un altísimo grado de innovación. Capaz de casi cualquier cosa.
Con C# puedes crear aplicaciones para una gran variedad de plataformas. Desde aplicaciones web a aplicaciones de escritorio para Windows usando .NET. Pero ahora, gracias a .Net Core, es también indicado para el desarrollo de aplicaciones que se ejecutan en Linux, Mac y Windows.
Con C# puedes hacer también aplicaciones nativas móviles, para iOS y Android, usando Xamarin y, por si fuera poco, también puedes usarlo para desarrollar videojuegos usando el famoso motor Unity 3D.
Con C# puedes hacer también aplicaciones nativas móviles, para iOS y Android, usando Xamarin y, por si fuera poco, también puedes usarlo para desarrollar videojuegos usando el famoso motor Unity 3D.
Qué aprenderé en el Curso de C#
Objetivos del curso
Qué tengo que saber
El curso de C# se podrá realizar por usuarios de cualquier sistema operativo, ya que todas las herramientas necesarias para seguir el curso son multiplataforma:
- Editor de código Visual Studio Code: https://code.visualstudio.com/
- Para ejecutar los ejemplos se usará el SDK de netcore, disponible tanto para Mac, Windows y Linux: https://www.microsoft.com/net/download/
Para el acceso a este curso no es necesario tener conocimientos previos en .NET o C#. Sin embargo sí es necesario saber programar. El estudiante debe ser capaz de realizar las operaciones básicas con código, como condicionales, bucles, etc. aunque es indiferente el lenguaje de programación que haya podido conocer en el pasado.
Aunque se repasarán los conceptos de orientación a objetos, sería recomendable disponer al menos de un conocimiento mínimo sobre este paradigma de la programación, de modo que le resulte más sencillo el aprendizaje a lo largo del curso. En este sentido puedes consultar el Curso de Programación Orientada a Objetos de EscuelaIT.
Clases y contenidos
Primeros pasos con C# y .NET
Fundamentos de C#, introducción a las plataformas de ejecución y aplicaciones que podemos desarrollar.
En este vídeo veremos todo lo que necesitamos para comenzar a usar C#, a fin de seguir este curso. Veremos los primeros pasos con el editor Visual Studio Code y cómo comenzar un proyecto de C#.
Ahora vamos a hacer nuestra primer programa. Como C# es orientado a objeto, todo debe de comenzar con una clase y su método main. Veremos cómo ejecutar el código de nuestro primer programa y cómo depurar usando el debugger de Visual Studio Code.
Este es un Hola Mundo en C# ejecutado en la plataforma .NET Core. Es un Hola Mundo bastante completo, pues explicaremos también cómo ejecutar y depurar el programa que se va a realizar, usando el debugger incorporado en Visual Studio Code.
Cómo son las variables en C#, un lenguaje de tipado estático. Así que conocemos también un resumen de los tipos que podemos usar en el lenguaje. Vemos acerca del ámbito de las variables y su visibilidad en el código.
Clase básica para empezar a programar con C#. Veremos qué son las variables, cómo es el tipado estático, algunos de sus tipos disponibles con sus particularidades y finalmente qué es el ámbito de las variables y cómo se define su visibilidad en C#.
En este vídeo ahondamos en los primeros pasos con C# y en conceptos de programación orientada a objetos que aplican en este lenguaje. Veremos qué son clases, creando un segundo ejemplo, crearemos métodos y aprenderemos a declarar y usar variables privadas (que no son lo mismo que propiedades en C#). Qué son clases, cómo definirlas en C#. Qué son métodos, cómo implementarlos dentro de las clases. Veremos qué son las variables privadas dentro de las clases, que es algo más propio de .NET y C# (parecen propiedades pero no lo son exactamente)
En este vídeo se explica el concepto de propiedad, que es similar al de otros lenguajes orientados a objeto, pero que tiene particularidades muy específicas de C# y debemos de conocer. Explicamos como realizar los get y set y los mecanismos de las propiedades autoimplementadas.
- Constructores, cómo crear constructores para tus clases.
- Sobrecarga y cómo implementarla en los constructores.
- Parámetros por defecto de los métodos y cómo usarlos, en lugar de la sobrecarga.
- Cómo llamar de unos constructores a otros constructores sobrecargados, para apoyarnos en el trabajo que ya está implementado en constructores existentes.
- Explicamos la clase Object de C#, que es una clase de la cual heredan todas las otras clases que podamos generar en nuestro código.
- Vemos que incluso los tipos primitivos en C# tienen como clase padre a la clase Object.
- Vemos todos los métodos que existen en la clase Object y que por tanto están disponibles en todos los objetos de C#, incluso en los tipos primitivos.
En este vídeo se explica el programa planificado para el resto del curso de C# y resolución de dudas.
Programando con C#
- En este vídeo comenzamos un proyecto práctico que se irá realizando a medida que vayamos conociendo más cosas de C#.
- En este primer paso se explica cómo será este proyecto y se construye su primera parte, un menú de entrada de opciones, por consola.
- Cómo declarar arrays de objetos, algo básico y necesario en nuestro proyecto, ya que tendremos diversas figuras en cada dibujo y cada figura será un objeto.
- Cómo declarar propiedades con arrays en clases de C#.
Aprendemos a crear propiedades de solo lectura. Veremos que ésto no es lo mismo que tener getters y setters privados, que es algo que el lenguaje también permite.
En este vídeo creamos nuestra primera clase de un dibujo genérico, de la que heredarán los distintos tipos de dibujos que se pueden hacer en la aplicación.
Por qué es necesario tener clases bases y cómo hacer clases abstractas cuando hay métodos que no somos capaces de implementar en cierto nivel de la jerarquía de clases.
Aunque pueda parecer una tarea muy trivial, los recorridos a arrays de objetos son importantes de ver, pues difieren de lo que posiblemente estamos acostumbrados en otros lenguajes, sobre todo en los de tipado dinámico. Cómo optimizar el código del bucle, con azúcar sintáctico, para no tratar los elementos del array que están a null.
Vemos cómo es el operador ternario, que existe en muchos lenguajes de programación, junto con algunos consejos de utilización. Además conocemos el operador de doble interrogación, propio de C#, que nos puede resumir todavía más ciertas sentencias de código.
Ejemplo sobre cómo sustituir un bucle for tradicional por un bucle foreach, ganando claridad y síntesis en el código.
El compilador de C# es capaz de realizar inferencia de tipos, es decir, deducir el tipo de variables en función de aquello que se le asigne. Esto nos ayuda a tener un código más sencillo de leer y quitarnos trabajo de encima como programadores.
En este vídeo conocemos dos conceptos fundamentales en los lenguajes de programación, como el paso por referencia y el paso por valor. Es importante prestarle atención porque hay algunas cosas específicas de C# en la utilización de estos mecanismos del lenguaje.
Qué son las estructuras, definiciones struct, en C#. En qué difieren de las clases. Cómo optimizan el rendimiento de las aplicaciones complejas en C#.
Aprendemos a crear una lista de objetos genérica, que nos evite tener que lidiar con las dimensiones marcadas de casillas de arrays y donde podamos albergar cualquier tipo de datos. Es por ello que se declara la lista con casillas de tipo Object.
Tipos de casting que podemos hacer en C#, un casting tradicional y un casting inteligente. Es importante en este punto, dado que los objetos incorporados en nuestra lista de Object se tienen que castear, para que podamos usarlos de nuevo como el tipo de datos original que tenían. Esto nos lleva a la necesidad de usar genéricos, que será materia de estudio para la siguiente clase. Además se resuelven preguntas finales de la clase.
Cómo utilizar nuevas características y herramientas en C#
Vemos un repaso de las clases anteriores y en especial al tema de las interfaces, que habíamos visto muy por encima. Usaremos mucho las interfaces a partir de ahora, por lo que es importante repasarlas bien.
En este vídeo vemos cómo se puede usar Visual Studio, edición 2017 en adelante, para el desarrollo con C# en .NET Core.
Explicaciones sobre cómo se llega a genéricos en C# y la importancia de esta herramienta del lenguaje.
Implementar una clase genérica, visto paso a paso.
Una alternativa de implementación de generics en C# que será útil y necesaria cuando partamos de un código base que queramos extender a través de tipos genéricos.
Vemos cómo se comportan los tipos al usar generics.
Cómo podemos aplicar generics en el caso de las interfaces.
Una interfaz muy útil en C#, IEnumerable, que nos permite hacer clases que se pueden iterar. Cómo realizar una implementación básica de IEnumerable.
Solución específica para implementación de la interfaz IEnumerable El código de implementación de IEnumerable anterior era un poco complejo, así que nos aprovechamos de una característica del lenguaje para mejorar lo presente gracias a yield.
Qué es la varianza de genéricos, explicaciones y detalles de implementación. Con este vídeo finaliza la presente sesión.
Delegados en C#
- Delegados en C#.
- Caso de uso de delegados.
Realizamos la implementación de un delegado. Pasamos un delegado con un método de la misma clase, que es la manera más sencilla de pasar un delegado.
Crearemos delegados mediante métodos anónimos, con una sintaxis que hoy ya no se usa mucho, pero que nos llevará a entender mejor las ventajas y usos de las expresiones lambda para la definición de delegados.
Aprendemos el uso de delegados multiuso que nos ofrece el framework y que nos evitan tener que declararlos nosotros mismos en nuestro código.
Qué son los métodos de extensión. Cómo podemos extender clases del framework. Cómo podemos extender nuestro propio código con métodos de extensión.
Se formulan y responden dudas que tienen que ver con los métodos de extensión.
Conocemos Linq, una colección de métodos de extensión muy potente sobre IEnumerable.
Ampliación LINQ y serialización de datos a JSON
Qué son los métodos indizadores, cómo implementarlos en C#.
Cómo mejorar ciertas partes de creación de objetos, eliminando complejidad que dejamos a cargo de una factoría.
Dos alternativas para usar nuestra factoría, contrastadas e implementadas. Explicamos por qué es mejor el patrón singleton.
Qué son las restricciones a genéricos y un caso de uso en el que podemos usarlas.
Ejemplo de aplicación de otros métodos disponibles en LINQ
Instalamos la dependencia JSON.NET, que no depende de Microsoft y el framework ,NET CORE. Por lo tanto tenemos que agregarlo como dependencia. Implementamos una serialización a JSON simple.
Qué son los tipos anónimos, que nos permiten crear objetos anónimos con cualquier conjunto arbitrario de datos. Los usamos para mejorar y hacer más compleja la serialización a JSON.
En este vídeo vemos cómo realizar una escritura en disco de un objeto JSON serializado, que contiene datos de aplicación.
Vemos cómo declarar variables con tipado dinámico en C#, algo que permite el lenguaje si llega a ser necesario.
Características asíncronas de C# y creación de APIs REST
Creación de tuplas y desestructuración de tuplas.
Una nueva característica del lenguaje que nos permite aplicar en las estructuras switch.
Comenzamos con un bloque dedicado a las operaciones asíncronas dentro de C#.
- Seguimos avanzando con varias operaciones básicas que querremos realizar en el tratamiento de operaciones asíncronas.
- Problema de la pirámide de callbacks.
Como trabajar con async / await, una herramienta del lenguaje que nos permite el desarrollo de código asíncrono lo más parecido a como se escribiría el código con su versión síncrona.
Comenzamos el proyecto de un API REST con C#. Creamos las primeras respuestas a rutas a las que se accede mediante el método GET.
Cómo se implementan otros métodos de acceso al API REST, en concreto veremos cómo recibir datos por POST.
En este vídeo realizamos un pequeño ejemplo sobre cómo consumir un API REST, usando los métodos de HttpClient, proporcionado por el framework ,NET CORE.
Funciones Lambda para resumir el código de métodos simples y de getters de propiedades
Valoraciones
Javier Arenales
Curso para un nivel intermedio sobre C#, bien explicado y con abundantes ejemplos. El profesor tiene un gran conocimiento sobre la materia y explica bien el contenido.
Víctor Cara Rodríguez
El curso está bastante bien. La persona que lo imparte se nota que domina el lenguaje.
Manuel Bermejo
Lorenzo
Muy bueno
Ana Santamaría Aparicio
Martin Cabello
Excelente curso. Me gusta mucho el nivel y las explicaciones.
Veiko Deniss Quiroz Vásquez
Samuel Maillo Cabrerizo
Jonatan Terrazas Ayala
Christian Barrios Fragozo
Lorenzo Eizmendi
Muy bueno
Jose Joaquin Meseguer Jimenez
Excelente curso de C#
Ingrid Carolina Peláez
Muy buen nivel del profesor, y los detalles del curso. 100% recomendado
Xavier Lamiel
Ana
rafael torrado
muy bueno
Cesar Abraham Saavedra Drouet
Luis Fernández Liesa
Jaime Cabrera Flores
Alvaro Landa Hidalgo
Está bastante bien, aunque me hubiera gustado que estuviera mas estructuradas las lecciones. Además algunos conceptos va demasiado rápido o muy por encima
Monica Fernández
Ejemplos interesantes y bien explicados por el profesor.
Luis Javier Gutiérrez Llamazares
Curso muy interesante para tener un vistazo general de todas las posibilidades que nos ofrece el lenguaje C# con ejemplo prácticos sencillos. Echo muy en falta documentación escrita de la teoría que se trata en los videos del curso.
Blas López
Explciaciones claras con ejemplos sencillos pero completos
Pilar Guzman
Martín Caliba
Muy bueno, completo y bien explicado cada tema.
Valeria Occhiuzzi
bueno
Adrián Rodríguez
Me gusta mucho el contenido y la estructura del curso
Daniel Martínez Priego
Muy bueno curso para tener una idea general de C#, sus estructuras y técnicas específicas.
Daniel Bustillo Cancelas
jv10
Buena introducción al lenguaje, aunque se ha quedado algo desfasado en cuanto al ejemplo del API REST
Luis Gabiña
Muy bueno para tener una visión completa del lenguaje o asentar conocimientos
¿Conoces nuestra tarifa plana?
Toda la formación de EscuelaIT, con más de 200 cursos completos para aprender las más variadas tecnologías de programación, diseño y marketing online. Todo! con tu suscripción.