
Explicación de la estructura del curso de Arquitectura Hexagonal.
En esta clase veremos lo que son los paradigmas de programación.
En esta clase veremos que es la programación estructurada.
En esta clase veremos cómo crear un proyecto de C#.
En esta clase veremos el concepto de variable, las cuales nos acompañarán a lo largo de todo código que hagamos en C#.
En esta clase veremos lo que son los arrays, los cuales nos permitirán guardar colecciones de valores.
En esta clase veremos las sentencias condicionales, las cuales nos servirán para dar nuevos escenarios al flujo de nuestro programa.
En esta clase veremos las sentencias de iteración o repetición.
En esta clase veremos el concepto de funciones en programación.
En esta clase veremos un ejemplo de programa utilizando solo programación con él paradigma estructurado.
En esta clase veremos que es el paradigma orientado a objetos
En esta clase veremos lo que son las clases y objetos
En esta clase veremos los métodos constructores de clases
En esta clase vamos a ver que son los campos y propiedades, estas segundas algo que existe en C# y nos dan flexibilidad a la hora de manejar la información de nuestros objetos.
En esta clase veremos los espacios de nombres.
En esta clase veremos el concepto de herencia en programación orientada a objetos.
En esta clase veremos el concepto de encapsulamiento en programación orientada a objetos.
En esta clase veremos la sobrecarga de métodos, una cualidad de la programación orientada a objetos que permite tener métodos con el mismo nombre, pero con distinto comportamiento.
En esta clase veremos la sobreescritura de métodos, una característica que tiene la programación orientada a objetos para poder remplazar métodos de las clases padres.
En esta clase veremos el concepto de abstracción y el uso de clases abstractas.
En esta clase veremos el polimorfismo con clases abstractas, una forma de tener comportamientos distintos en nuestros objetos.
En esta clase vamos a ver el concepto de Interface, las cuales son la base de la Arquitectura de Software.
En esta clase veremos los Generics, un mecanismo para reutilizar funcionamiento sin estar ligado al tipo de dato.
En esta clase veremos la definición static, con la cual las propiedades y métodos pertenecen a la clase y no al objeto.
En esta clase veremos que es el paradigma funcional
En esta clase veremos lo que define a una función pura en programación funcional.
En esta clase veremos que es una función de primera clase.
En esta clase veremos los delegados, un tipo de mecanismo que tiene C# para definir tipos de funciones.
En esta clase veremos las expresiones lambda, útiles para crear funciones anónimas.
En esta clase veremos como definir tipos de funciones que retornan siempre un valor utilizando el delegado definido Func.
En esta clase vamos a ver lo que es una función de orden superior.
En esta clase veremos el tipo de delegado Predicate, el cual es utilizado para condiciones.
En esta clase veremos que son los principios SOLID.
En esta clase veremos el Principio de responsabilidad única.
En esta clase veremos el principio abierto/cerrado con el cual permitiremos la creación de nuevo funcionamiento, sin necesidad de modificar el código ya escrito.
En esta clase vamos a ver el principio de sustitución de Liskov, con el cual protegemos nuestros sistemas de herencias innecesarias y comportamientos no esperados.
En esta clase aprenderemos que es el principio de segregación de interfaces.
En esta clase vamos a ver el principio de inversión de dependencia, el cual hace que dependamos de abstracciones y no de implementaciones.
En esta clase veremos que es Arquitectura de Software
En esta clase veremos que es el concepto de capa en Arquitectura de Software.
En esta clase veremos que es un componente.
En esta clase vamos a programar un componente.
En esta clase veremos cómo los componentes interactúan.
En esta clase veremos que es el acoplamiento entre componentes.
En esta clase veremos cómo hacer que los componentes tengan un acoplamiento débil, haciendo que dependan de abstracciones.
En esta clase veremos que es la inyección de dependencias.
En esta clase veremos el objetivo principal de la Arquitectura Hexagonal, y el significado de dominio.
En esta clase vamos a ver que es la infraestructura.
En esta clase veremos que son los Puertos en la Arquitectura Hexagonal.
En esta clase veremos que son los Adaptadores.
En esta clase veremos una aclaración sobre como iremos tomando los ejemplos de código, viendo primero una Arquitectura Hexagonal con 2 capas, y posterior veremos otras alternativas donde se usan más capas en este tipo de Arquitectura.
En esta clase veremos un ejemplo con código de los Entities encontrados en la capa de Domain de Arquitectura Hexagonal.
En esta clase veremos que es un puerto de Salida o un puerto Secundario.
En esta clase vamos a ver que son los puertos de Entrada o puertos Primarios.
En esta clase vamos a implementar el puerto primario, por medio de una clase Servicio.
En esta clase vamos a crear un proyecto en infraestructura.
En esta clase vamos a codificar un Adaptador Secundario.
En esta clase vamos a programar el Adaptador Primario.
En esta clase vamos a realizar inyección de dependencias, para preparar el proyecto con Arquitectura Hexagonal.
En esta clase vamos a hacer la ejecución del Programa utilizando Arquitectura Hexagonal.
En esta clase crearemos un nuevo Adaptador Primario para ejecutar nuestro código por medio de un API Web.
En esta clase instalaremos Swagger, necesario para documentar APIs.
En esta clase vamos a hacer inyección de dependencias en el proyecto de API.
En esta clase vamos a realizar la ejecución del API, con los elementos del Dominio inyectados.
En esta clase vamos a crear un nuevo adaptador secundario con nuevo comportamiento.
En esta clase vamos a implementar el funcionamiento que exige el puerto IRepository en el nuevo Adaptador XMLProductRepository para que tenga el comportamiento real.
En esta clase vamos a realizar la comprobación de nuestra API con la implementación de la nueva funcionalidad puesta en el nuevo Adaptador Secundario.
En esta clase veremos una introducción a la Arquitectura Hexagonal con 3 capas.
En esta clase analizaremos en lugar correcto donde deben ir los puertos primarios y puertos secundarios en una Arquitectura Hexagonal de 3 capas.
En esta clase vamos a crear el Entity Item, que representará la unidad de
En esta clase vamos a crear el puerto secundario IRepository en la capa de Dominio.
En esta clase vamos a describir las responsabilidades que tiene la capa Aplicación.
En esta clase vamos a crear el Puerto Primario IService en la capa Aplicación.
En esta clase vamos a implementar el Puerto Primario, lo cual esería la creación de un Caso de Uso que orqueste el flujo de trabajo.
En esta clase te explicaré como organizaremos el Adaptador Secundario de Persistencia en la Capa Infraestructura.
En esta clase vamos a crear la Base de Datos.
En esta clase vamos a crear el componente Repository e instalar Entity Framework, el ORM de .NET
En esta clase vamos a crear el Modelo ItemModel, el cual representará la tabla Item de la Base de Datos.
En esta clase vamos a crear el Context de Entity Framework, donde configuraremos las tablas que representan la base de datos por medio de Models.
En esta clase vamos a crear el Adaptador Secundario ItemRepository, el cual hara el funcionamiento de guardado en Base de Datos.
Llegado a este punto, es hora de programar el Adaptador primario el cual se encuentra en la capa infraestructura, y es quien va a tener interacción con el usuario.
En esta clase vamos a crear la aplicación de consola e instalar todas las dependencias que vamos a necesitar en nuestro proyecto.
En esta clase vamos a crear el Archivo de Configuración, donde pondremos la cadena de conexión a la Base de Datos.
En esta clase vamos a inyectar las implementaciones por medio de inyección de dependencias.
En esta clase vamos a ejecutar la aplicación de consola, para probar todo lo programado en las otras capas de nuestra Arquitectura Hexagonal.
En este curso de Arquitectura Hexagonal, te voy a enseñar cómo dejar atrás esos proyectos donde todo está acoplado, donde si cambias una línea en el servicio, se rompe el controlador, la base de datos y hasta el login de tu app. ¡Basta de eso!
Vas a Aprender Arquitectura de Software Hexagonal: el dominio por un lado, los casos de uso bien claros, y todo lo externo (frameworks, bases de datos, APIs) en su lugar. Nada entra al núcleo sin permiso. Y sí, también veremos cómo adaptar esto a proyectos reales, no solo dibujitos bonitos en una pizarra.
Aprenderás a:
Diseñar tu aplicación con independencia tecnológica.
Separar dominio, aplicación e infraestructura.
Aplicar principios SOLID de forma natural (sin que suene a teoría aburrida).
Usar puertos y adaptadores para conectar todo.
Este curso es para devs que quieren llevar su backend al siguiente nivel, no importa si no usas C#, el objetivo del curso es aprender los fundamentos de Arquitectura Hexagonal para que puedas implementarlos sin importar el lenguaje de programación.
Este curso te dará el conocimiento necesario para que des tu paso de programador al nivel de Arquitecto de Software, aplicando el conocimiento en sistemas reales que tendrás que diseñar en tu labor real como programador.