SlideShare una empresa de Scribd logo
1 de 25
PLANIFICACIÓN
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
MÓDULO 1
Angular y .NET,
arquitectura y
buenas prácticas
EL CURSO COMPLETO ESTÁ DISPONIBLE EN YOUTUBE
EN EL CANAL DE “JUAN G CARMONA”:
https://www.youtube.com/channel/UCfVJdXg3Jk3P7ZDpE-D3wXg
FRAMEWORK
DE ANÁLISIS
Angular, arquitectura y buenas prácticas
Juan G Carmona
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
ANÁLISIS
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
¿Por dónde empiezo?
Descripción
General
Requisitos
Funcionales
Requisitos
No Funcionales
Arquitectura Dominio Comunicación
DISEÑO PLANIFICACIÓN
NUESTRA APPLICACIÓN
Angular, arquitectura y buenas prácticas
Juan G Carmona
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
MÓDULO 1
Angular y .NET,
arquitectura y
buenas prácticas
NUESTRA APLICACIÓN
OPCIONES
BLOG TIENDA ONLINE
MARKETPLACE INVENTARIO
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
{{ nStck }}
NUESTRA APLICACIÓN
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
ANÁLISIS
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
INSISTO: ¿por dónde empiezo?
Descripción
General
Requisitos
Funcionales
Requisitos
No Funcionales
Arquitectura Dominio Comunicación
DISEÑO PLANIFICACIÓN
{{ nStck }}
DESCRIPCIÓN Y REQUISITOS
Angular, arquitectura y buenas prácticas
Juan G Carmona
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
MÓDULO 1
Angular y .NET,
arquitectura y
buenas prácticas
Descripción general del problema
 Charlando con “NUESTRO CLIENTE” (en adelante Mike) nos cuenta sus
problemas:
 “A veces no sé de qué material dispongo”
 “Para algunos eventos no sé si voy a tener material suficiente en el almacén”
 “Algunas veces no sé donde están algunos equipos esenciales para el negocio, o
quién ha sido el último que los ha utilizado”
 “Necesito un programa que me ayude con la gestión de mi almacén”
 “Quiero poder planificar eventos con antelación, saber si tengo todo lo que
necesito para el evento y asignar material concreto al evento.”
 “No me vale saber que van tres micros, quiero saber que se han llevado el 13, el 24
y el 25 y no otros”
 “Necesito saber quién se encargó de cada evento, son los técnicos los que reciben
la lista de material, recogen en almacén, montan y desmontan en el evento y
devuelven al almacén.”
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
{{ nStck }}
Descripción general de la solución
 Mike, para empezar te propongo lo siguiente:
 Necesitas gestionar tu inventario:
 Gestionar tu Material (CRUD)
 Crear  IDENTIFICAR (¿QR o etiqueta?)
 También clonar (crear en base a)
 Ver
 Actualizar
 Borrar
 Necesitas gestionar tus eventos (CRUD)
 Necesitas ver y gestionar un calendario de eventos
 Necesitas gestionar a tus técnicos
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
{{ nStck }}
¡PODEMOS HACERLO!
Requisitos funcionales
 Vemos que hay tres grandes bloques funcionales:
 GESTIÓN DE USUARIOS Y PERMISOS
 Registro / login de nuestros clientes
 Más de un usuario por entorno
 GESTIÓN DE MATERIAL
 VER INVENTARIO
 Lista de todo el material (TODO: definir el modelo de datos)
 OPERACIONES CRUD (Create/Clone, Read, Update, Delete)
 GESTIÓN DE EVENTOS
 VER EVENTOS
 Lista de todos los eventos (pasados y futuros) (TODO: definir el modelo de datos)
 Calendario
 OPERACIONES CRUD (Create/Clone, Read, Update, Delete)
 Además esta solución la podemos convertir en un SaaS
 Más de un cliente (multitenant  “Multi Inquilino”)
 Branding básico
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
{{ nStck }}
¡PODEMOS HACERLO!
Requisitos no funcionales
 Necesitamos almacenar los datos de forma estructurada en una DB
 El borrado de elementos en la DB no debe ser físico sino lógico
 La web debe ser responsive (diseñada también para dispositivos móviles)
 Autenticación y autorización
 Identificar a nuestros usuarios
 Permitirles operar sólo con su entorno de trabajo (su inventario y su calendario)
 Roles:
 Manager  el gestor
 Técnico  el encargado de recoger el material en el almacén, llevarlo al evento, traerlo…
 Necesitamos poder almacenar imágenes (y en general ficheros) para cada uno de
nuestros usuarios:
 Para su Branding
 Para su material
 Para los eventos
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
{{ nStck }}
ARQUITECTURA DE NUESTRA SOLUCIÓN
Angular, arquitectura y buenas prácticas
Juan G Carmona
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
MÓDULO 1
Angular y .NET,
arquitectura y
buenas prácticas
App Service
App Service
Arquitectura del sistema
ngular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
{{ nStck }}
AAD
Storage
SQL
Modelos de Datos  DDD
 Hablamos de ARTÍCULO
 En vez de decir “material” o “equipo”
(puede generar confusión)
 “Artículos en el inventario” “Artículos en
Almacén”, “Artículos para el evento”
 Hablamos de ALMACÉN
 Para esta versión sólo contemplamos un
almacen
 Hablamos de EVENTOS
 De forma genérica
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
{{ nStck }}
Domain Driven Design
 Hablamos de TENANT (BRAND)
 Será cada espacio de gestión en nuestra
plataforma (“Inquilino”)
 Hablamos de CUENTA
 Son cuentas en Active Directory,
necesarias para la autenticación
 Hablamos de USUARIO
 Perfil del usuario vinculado a esa
cuenta (siempre 1 a 1)
 ROL ( Manager o Técnico)
 En combinación con los perfiles nos da
la autorización
Modelos de Datos  Entidades
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
{{ nStck }}
CONTROLLERS
SERVICES
Comunicación
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
{{ nStck }}
API
WEB
ARTICLE
EVENT
USER
ARTICLE
EVENT
USER
ANÁLISIS
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
INSISTO: ¿por dónde empiezo?
Descripción
General
Requisitos
Funcionales
Requisitos
No Funcionales
Arquitectura Dominio Comunicación
DISEÑO PLANIFICACIÓN
{{ nStck }}
DISEÑO Y PLANIFICACIÓN
Angular, arquitectura y buenas prácticas
Juan G Carmona
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
MÓDULO 1
Angular y .NET,
arquitectura y
buenas prácticas
DISEÑO
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
{{ nStck }}
PLANIFICACIÓN
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
{{ nStck }}
Project
Scaffolding
App
+
Core
Account Brand
User
Events Articles
Refinement
{{nStock}}
v1
RELEASE
PROJECT SETUP
Angular, arquitectura y buenas prácticas
Juan G Carmona
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
MÓDULO 1
Angular y .NET,
arquitectura y
buenas prácticas
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
{{ nStck }}
Project Setup  Entorno Colaborativo
 Proyecto público de Azure DevOps
 https://dev.azure.com/jgcarmona/nStck
 Requiere invitación para acceder a toda la funcionalidad:
 https://docs.microsoft.com/en-
us/azure/devops/organizations/public/invite-users-public
 https://docs.microsoft.com/en-
us/azure/devops/organizations/security/get-started-stakeholder
 Requiere una cuenta Microsoft
 https://docs.microsoft.com/es-es/azure/devops/user-
guide/sign-up-invite-teammates
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
{{ nStck }}
 juan@jgcarmona.com
 jgcarmona.pro@gmail.com
Angular, arquitectura y buenas prácticas
Juan G Carmona
Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
MÓDULO 1
Angular y .NET,
arquitectura y
buenas prácticas

Más contenido relacionado

Similar a Como planificar la arquitectura de nuestras aplicaciones

Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_seleniumTech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_seleniumEduardo Riol
 
Implementación del programa de admin. para mejorar la seguridad de la empresa...
Implementación del programa de admin. para mejorar la seguridad de la empresa...Implementación del programa de admin. para mejorar la seguridad de la empresa...
Implementación del programa de admin. para mejorar la seguridad de la empresa...Dharma Consulting
 
Establecimiento del Area de Egresos - Iniciación
Establecimiento del Area de Egresos - IniciaciónEstablecimiento del Area de Egresos - Iniciación
Establecimiento del Area de Egresos - IniciaciónDharma Consulting
 
Frameworks y herramientas de desarrollo ágil para emprendedores y startups
Frameworks y herramientas de desarrollo ágil para emprendedores y startupsFrameworks y herramientas de desarrollo ágil para emprendedores y startups
Frameworks y herramientas de desarrollo ágil para emprendedores y startupsMario Jose Villamizar Cano
 
Diseño y construcción de un software para una tienda
Diseño y construcción de un software para una tiendaDiseño y construcción de un software para una tienda
Diseño y construcción de un software para una tiendaOscar Hernando Sanchez Roa
 
WSO2 Guest Webinar: Creando un Backend de Servicios y/o API con WSO2
WSO2 Guest Webinar: Creando un Backend de Servicios y/o API con WSO2 WSO2 Guest Webinar: Creando un Backend de Servicios y/o API con WSO2
WSO2 Guest Webinar: Creando un Backend de Servicios y/o API con WSO2 WSO2
 
RoadShow-Azure-PartnersMicrosoft-Nov-2010-Caso de éxito de Softeng Portal Bul...
RoadShow-Azure-PartnersMicrosoft-Nov-2010-Caso de éxito de Softeng Portal Bul...RoadShow-Azure-PartnersMicrosoft-Nov-2010-Caso de éxito de Softeng Portal Bul...
RoadShow-Azure-PartnersMicrosoft-Nov-2010-Caso de éxito de Softeng Portal Bul...SOFTENG
 
Gestion_de_Proyectos.ppt
Gestion_de_Proyectos.pptGestion_de_Proyectos.ppt
Gestion_de_Proyectos.pptssuser73f459
 
ficha del proyecto Computec
ficha del proyecto Computec ficha del proyecto Computec
ficha del proyecto Computec Aleja Patiño
 
Proyecto de innovacion senati copia
Proyecto de innovacion senati   copiaProyecto de innovacion senati   copia
Proyecto de innovacion senati copiavictor huayanca
 
[Webinar] Creando un "backend" con WSO2
[Webinar] Creando un "backend" con WSO2 [Webinar] Creando un "backend" con WSO2
[Webinar] Creando un "backend" con WSO2 Roger CARHUATOCTO
 
Arquitectura de Empresa TOGAF
Arquitectura de Empresa TOGAFArquitectura de Empresa TOGAF
Arquitectura de Empresa TOGAFnetmind
 
Presentacion 2
Presentacion 2Presentacion 2
Presentacion 2yoarean
 
Selfware presentacion
Selfware presentacionSelfware presentacion
Selfware presentacionzuart
 
Selfware
SelfwareSelfware
Selfwarezuart
 
Taller Web 2010
Taller Web 2010Taller Web 2010
Taller Web 2010portclick
 
Informe tecnico gpl
Informe tecnico gplInforme tecnico gpl
Informe tecnico gplYenny Aldana
 

Similar a Como planificar la arquitectura de nuestras aplicaciones (20)

Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_seleniumTech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
 
Implementación del programa de admin. para mejorar la seguridad de la empresa...
Implementación del programa de admin. para mejorar la seguridad de la empresa...Implementación del programa de admin. para mejorar la seguridad de la empresa...
Implementación del programa de admin. para mejorar la seguridad de la empresa...
 
Establecimiento del Area de Egresos - Iniciación
Establecimiento del Area de Egresos - IniciaciónEstablecimiento del Area de Egresos - Iniciación
Establecimiento del Area de Egresos - Iniciación
 
Computec modi
Computec modiComputec modi
Computec modi
 
Frameworks y herramientas de desarrollo ágil para emprendedores y startups
Frameworks y herramientas de desarrollo ágil para emprendedores y startupsFrameworks y herramientas de desarrollo ágil para emprendedores y startups
Frameworks y herramientas de desarrollo ágil para emprendedores y startups
 
Diseño y construcción de un software para una tienda
Diseño y construcción de un software para una tiendaDiseño y construcción de un software para una tienda
Diseño y construcción de un software para una tienda
 
WSO2 Guest Webinar: Creando un Backend de Servicios y/o API con WSO2
WSO2 Guest Webinar: Creando un Backend de Servicios y/o API con WSO2 WSO2 Guest Webinar: Creando un Backend de Servicios y/o API con WSO2
WSO2 Guest Webinar: Creando un Backend de Servicios y/o API con WSO2
 
RoadShow-Azure-PartnersMicrosoft-Nov-2010-Caso de éxito de Softeng Portal Bul...
RoadShow-Azure-PartnersMicrosoft-Nov-2010-Caso de éxito de Softeng Portal Bul...RoadShow-Azure-PartnersMicrosoft-Nov-2010-Caso de éxito de Softeng Portal Bul...
RoadShow-Azure-PartnersMicrosoft-Nov-2010-Caso de éxito de Softeng Portal Bul...
 
Gestion_de_Proyectos.ppt
Gestion_de_Proyectos.pptGestion_de_Proyectos.ppt
Gestion_de_Proyectos.ppt
 
ficha del proyecto Computec
ficha del proyecto Computec ficha del proyecto Computec
ficha del proyecto Computec
 
Proyecto de innovacion senati copia
Proyecto de innovacion senati   copiaProyecto de innovacion senati   copia
Proyecto de innovacion senati copia
 
Diagnóstico empresarial.
Diagnóstico empresarial.Diagnóstico empresarial.
Diagnóstico empresarial.
 
[Webinar] Creando un "backend" con WSO2
[Webinar] Creando un "backend" con WSO2 [Webinar] Creando un "backend" con WSO2
[Webinar] Creando un "backend" con WSO2
 
Arquitectura de Empresa TOGAF
Arquitectura de Empresa TOGAFArquitectura de Empresa TOGAF
Arquitectura de Empresa TOGAF
 
Presentacion 2
Presentacion 2Presentacion 2
Presentacion 2
 
Selfware presentacion
Selfware presentacionSelfware presentacion
Selfware presentacion
 
Como Migrar a la Nube AWS
Como Migrar a la Nube AWSComo Migrar a la Nube AWS
Como Migrar a la Nube AWS
 
Selfware
SelfwareSelfware
Selfware
 
Taller Web 2010
Taller Web 2010Taller Web 2010
Taller Web 2010
 
Informe tecnico gpl
Informe tecnico gplInforme tecnico gpl
Informe tecnico gpl
 

Último

Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 

Último (7)

Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 

Como planificar la arquitectura de nuestras aplicaciones

  • 1. PLANIFICACIÓN Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 MÓDULO 1 Angular y .NET, arquitectura y buenas prácticas EL CURSO COMPLETO ESTÁ DISPONIBLE EN YOUTUBE EN EL CANAL DE “JUAN G CARMONA”: https://www.youtube.com/channel/UCfVJdXg3Jk3P7ZDpE-D3wXg
  • 2. FRAMEWORK DE ANÁLISIS Angular, arquitectura y buenas prácticas Juan G Carmona Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
  • 3. ANÁLISIS Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 ¿Por dónde empiezo? Descripción General Requisitos Funcionales Requisitos No Funcionales Arquitectura Dominio Comunicación DISEÑO PLANIFICACIÓN
  • 4. NUESTRA APPLICACIÓN Angular, arquitectura y buenas prácticas Juan G Carmona Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 MÓDULO 1 Angular y .NET, arquitectura y buenas prácticas
  • 5. NUESTRA APLICACIÓN OPCIONES BLOG TIENDA ONLINE MARKETPLACE INVENTARIO Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
  • 6. {{ nStck }} NUESTRA APLICACIÓN Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0
  • 7. ANÁLISIS Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 INSISTO: ¿por dónde empiezo? Descripción General Requisitos Funcionales Requisitos No Funcionales Arquitectura Dominio Comunicación DISEÑO PLANIFICACIÓN {{ nStck }}
  • 8. DESCRIPCIÓN Y REQUISITOS Angular, arquitectura y buenas prácticas Juan G Carmona Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 MÓDULO 1 Angular y .NET, arquitectura y buenas prácticas
  • 9. Descripción general del problema  Charlando con “NUESTRO CLIENTE” (en adelante Mike) nos cuenta sus problemas:  “A veces no sé de qué material dispongo”  “Para algunos eventos no sé si voy a tener material suficiente en el almacén”  “Algunas veces no sé donde están algunos equipos esenciales para el negocio, o quién ha sido el último que los ha utilizado”  “Necesito un programa que me ayude con la gestión de mi almacén”  “Quiero poder planificar eventos con antelación, saber si tengo todo lo que necesito para el evento y asignar material concreto al evento.”  “No me vale saber que van tres micros, quiero saber que se han llevado el 13, el 24 y el 25 y no otros”  “Necesito saber quién se encargó de cada evento, son los técnicos los que reciben la lista de material, recogen en almacén, montan y desmontan en el evento y devuelven al almacén.” Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 {{ nStck }}
  • 10. Descripción general de la solución  Mike, para empezar te propongo lo siguiente:  Necesitas gestionar tu inventario:  Gestionar tu Material (CRUD)  Crear  IDENTIFICAR (¿QR o etiqueta?)  También clonar (crear en base a)  Ver  Actualizar  Borrar  Necesitas gestionar tus eventos (CRUD)  Necesitas ver y gestionar un calendario de eventos  Necesitas gestionar a tus técnicos Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 {{ nStck }} ¡PODEMOS HACERLO!
  • 11. Requisitos funcionales  Vemos que hay tres grandes bloques funcionales:  GESTIÓN DE USUARIOS Y PERMISOS  Registro / login de nuestros clientes  Más de un usuario por entorno  GESTIÓN DE MATERIAL  VER INVENTARIO  Lista de todo el material (TODO: definir el modelo de datos)  OPERACIONES CRUD (Create/Clone, Read, Update, Delete)  GESTIÓN DE EVENTOS  VER EVENTOS  Lista de todos los eventos (pasados y futuros) (TODO: definir el modelo de datos)  Calendario  OPERACIONES CRUD (Create/Clone, Read, Update, Delete)  Además esta solución la podemos convertir en un SaaS  Más de un cliente (multitenant  “Multi Inquilino”)  Branding básico Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 {{ nStck }} ¡PODEMOS HACERLO!
  • 12. Requisitos no funcionales  Necesitamos almacenar los datos de forma estructurada en una DB  El borrado de elementos en la DB no debe ser físico sino lógico  La web debe ser responsive (diseñada también para dispositivos móviles)  Autenticación y autorización  Identificar a nuestros usuarios  Permitirles operar sólo con su entorno de trabajo (su inventario y su calendario)  Roles:  Manager  el gestor  Técnico  el encargado de recoger el material en el almacén, llevarlo al evento, traerlo…  Necesitamos poder almacenar imágenes (y en general ficheros) para cada uno de nuestros usuarios:  Para su Branding  Para su material  Para los eventos Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 {{ nStck }}
  • 13. ARQUITECTURA DE NUESTRA SOLUCIÓN Angular, arquitectura y buenas prácticas Juan G Carmona Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 MÓDULO 1 Angular y .NET, arquitectura y buenas prácticas
  • 14. App Service App Service Arquitectura del sistema ngular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 {{ nStck }} AAD Storage SQL
  • 15. Modelos de Datos  DDD  Hablamos de ARTÍCULO  En vez de decir “material” o “equipo” (puede generar confusión)  “Artículos en el inventario” “Artículos en Almacén”, “Artículos para el evento”  Hablamos de ALMACÉN  Para esta versión sólo contemplamos un almacen  Hablamos de EVENTOS  De forma genérica Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 {{ nStck }} Domain Driven Design  Hablamos de TENANT (BRAND)  Será cada espacio de gestión en nuestra plataforma (“Inquilino”)  Hablamos de CUENTA  Son cuentas en Active Directory, necesarias para la autenticación  Hablamos de USUARIO  Perfil del usuario vinculado a esa cuenta (siempre 1 a 1)  ROL ( Manager o Técnico)  En combinación con los perfiles nos da la autorización
  • 16. Modelos de Datos  Entidades Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 {{ nStck }}
  • 17. CONTROLLERS SERVICES Comunicación Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 {{ nStck }} API WEB ARTICLE EVENT USER ARTICLE EVENT USER
  • 18. ANÁLISIS Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 INSISTO: ¿por dónde empiezo? Descripción General Requisitos Funcionales Requisitos No Funcionales Arquitectura Dominio Comunicación DISEÑO PLANIFICACIÓN {{ nStck }}
  • 19. DISEÑO Y PLANIFICACIÓN Angular, arquitectura y buenas prácticas Juan G Carmona Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 MÓDULO 1 Angular y .NET, arquitectura y buenas prácticas
  • 20. DISEÑO Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 {{ nStck }}
  • 21. PLANIFICACIÓN Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 {{ nStck }} Project Scaffolding App + Core Account Brand User Events Articles Refinement {{nStock}} v1 RELEASE
  • 22. PROJECT SETUP Angular, arquitectura y buenas prácticas Juan G Carmona Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 MÓDULO 1 Angular y .NET, arquitectura y buenas prácticas
  • 23. Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 {{ nStck }}
  • 24. Project Setup  Entorno Colaborativo  Proyecto público de Azure DevOps  https://dev.azure.com/jgcarmona/nStck  Requiere invitación para acceder a toda la funcionalidad:  https://docs.microsoft.com/en- us/azure/devops/organizations/public/invite-users-public  https://docs.microsoft.com/en- us/azure/devops/organizations/security/get-started-stakeholder  Requiere una cuenta Microsoft  https://docs.microsoft.com/es-es/azure/devops/user- guide/sign-up-invite-teammates Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 {{ nStck }}  juan@jgcarmona.com  jgcarmona.pro@gmail.com
  • 25. Angular, arquitectura y buenas prácticas Juan G Carmona Angular, arquitectura y buenas prácticas © 2021 by Juan G Carmona is licensed underCC BY-NC 4.0 MÓDULO 1 Angular y .NET, arquitectura y buenas prácticas