Introducción al lenguaje C# y .NET Core por Diego Ponce de León para la EOI
Archivos y documentación del curso en https://github.com/xleon/CursoLeonEoiDotNetCore
- Dotnet CLI
- Visual Studio Code
- Visual Studio Community edition
- Nuget
- Git por línea de comandos
- Git desde Visual Studio Code
- Git desde Visual Studio
- Github
- GitKraken
- Postman
- Value types
- Declaración y utilización de variables
- Comandos de selección (if, else if, else, switch)
- Operadores comunes
- Operador ternario
- Comandos de iteración (while, do while, for, foreach)
- Comandos de salto (break, continue)
- Declaración y utilización de propiedades de clase
- Métodos de clase
- Parámetros de método
- Arrays
- Colecciones
- LINQ + Lambda
- Clases y objetos
- Herencia
- Polimorfismo
- Encapsulación
- Miembros estáticos
- Programación asíncrona con async, await, Task
- Lanzamiento y manejo de excepciones
- Breve historia de C#
- Introducción a .NET Framework
- Introducción a .NET Core
- Los lenguajes de programación disponibles en .NET Core
- Diferencias entre .NET Framework y .NET Core
- NET Standard
- Instalación entorno de trabajo para .NET Core (SDK)
- Crear proyectos de consola, librería NET Standard y Web API con .NET Core desde línea de comandos (CLI) y desde Visual Studio
- Instalación, configuración y uso de Visual Studio Code para editar proyectos C#
- Instalación, configuración y uso de Visual Studio Community para editar proyectos C#
- Crear dependencias entre proyectos dentro de una misma solución
- Añadir paquetes nuget a un proyecto
- Utilización de librerías de terceros a través de nuget
- Depurar código C# en Visual Studio Code
- Depurar código C# en Visual Studio Community
- Interacción de usuario (entrada y salida de datos) en un proyecto de Consola
- Comandos básicos para flujo de trabajo con Git
- Operaciones básicas de Git desde Visual Studio
- Crear y trabajar con un repositorio Git en GitHub
- Introducción a REST
- Métodos básicos REST (get, post, put, delete)
- Probar una API REST con Postman
- Consumir una API REST desde C# con
HttpClient
- Crear una API REST con Asp.NET Core y Visual Studio
- Usar respuestas de Web API y sus códigos de error
- Crear un modelo de datos relacional
- Usar inyección de dependencias para el uso de servicios en controladores Web API
- Introducción a ORM (Object Relational Mapper)
- Introducción al ORM Entity Framework
- Usar base de datos en memoria
- Consultas a la base de datos de forma síncrona con Entity Framework y LINQ
- Consultas a la base de datos de forma asíncrona con Entity Framework y LINQ
- Microsoft Virtual Academy: Curso ASP.NET Core (12 horas, en inglés)
- Migraciones del modelo de datos
- Guía de programación C#
- Pequeño libro de Asp.NET Core (en inglés)
- Proveedores de base de datos para Entity Framework
- Arquitectura de aplicaciones con .NET
- Desplegar aplicaciones .NET Core en Azure
- Introducción a ASP.NET Core MVC y Visual Studio
- Autenticación / autorización en ASP.NET Core
Todo el código se encuentra en distintos proyectos pero dentro de una misma solución de Visual Studio. Para usar el código solo hace falta clonar este repositorio:
git clone https://github.com/xleon/CursoLeonEoiDotNetCore.git
y luego hacer doble click en CursoLeonEoiDotNetCore.sln
(con Visual Studio instalado).
Para lanzar proyectos podeís hacerlo de dos maneras:
- Click derecho en el proyecto > Establecer proyecto por defecto y luego darle al play (botón verde)
- Click derech en el proyecto > Depurar > Crear nueva instancia
Mini juego de peleas por turnos desarrollado durante las clases. Se trata de una aplicación de consola que descarga lista de personajes desde la API REST de StarWars. Cada vez que se teclea la función "Luchar", se eligen dos contrincantes aleatoriamente. El daño que ocasionan o reciben también es aleatorio. Todos van perdiedo poder y vidas. Cuando se agotan sus vidas quedan fuera de juego. Así sucesivamente hasta que queda un único superviviente o ganador. Tiene otra función "Estatus" con la cuál podemos ver una tabla de texto de los jugadores y el detalle de cada uno.
La lógica del juego es muy simplista y esta aplicación ha servido básicamente para tocar varios puntos importantes del lenguaje C#, al mismo tiempo que hemos aprendido a manejar entrada y salida de datos en aplicaciones de consola.
Se trata de una API REST muy simple, desarrollada en Visual Studio, con dos modelos de datos (lista de tareas y tarea) que están relacionados entre sí. Hemos hecho un recorrido por los métodos REST más relevantes para entender el concepto CRUD (Create Retrieve Update Delete). Para ello hemos utilizado un servicio que se utiliza en el controlador mediante inyección de dependencias. En dichos métodos se controlan errores y que los parámetros recibidos en la llamada sean correctos. También se consulta una base de datos con LINQ y finalmente se devuelven las respuestas correspondientes y típicas de REST, con su código de estado y su cuerpo en formato json. Toda la API web ha sido probada con Postman.
Hay un archivo en el proyecto que se llama Lista de tareas.postman_collection.json que podeís importar directamente desde Postman dándole al botón "Import" en la parte superior. Una vez hecho eso, todas las llamadas a la API estarán disponibles para probar.