SlideShare a Scribd company logo
1 of 41
Download to read offline
INTRODUCCIÓN A
MVU CON COMET
3º EDICIÓN
INTRODUCCIÓN A
MVU CON COMET
Luis Beltrán
Investigador – TBU
@darkicebeam
luis@luisbeltran.mx
¿Quiénes somos?
Humberto Jaimes
Software Developer
@HJaimesDev
humberto@humbertojaimes.net
Cristian González
Software Developer
@DarryStonem
alex@darry.dev
Agenda
Introducción
¿Qué es MVU? Conceptos, Frameworks
01
02
Comet, un nuevo MVU UIToolkit03
Demos04
Luis Beltrán | Cristian González| Humberto Jaimes
Slides disponibles en
http://bit.ly/XamarinAssembleMVU
Introducción1
.NET La plataforma para construir todo
DESKTOP CLOUDWEB MOBILE ML
.NET
IoTGAMING
.NET MAUI
• La evolución de Xamarin.Forms
• UI nativa y multiplataforma
• Crea apps multiplataforma para
móviles, escritorio y dispositivos
• Un solo proyecto, una sola base de
código
Construye UI hermosas y nativas
para cualquier dispositivo
github.com/dotnet/maui
The Journey to One .NET
https://aka.ms/ScottBuildSessions
Para saber más acerca de .NET MAUI:
https://www.humbertojaimes.net/maui/
La visión para un solo .NET incluye proporcionar al desarrollador
diversas opciones para elevar la productividad:
• IDE:
• Visual Studio 2019
• Visual Studio for Mac
• Visual Studio Code
• Patrones:
• MVVM
• XAML
• Blazor
• MVU
¿Qué es MVU?
Conceptos, Frameworks
2
MVU (Model-View-Update)
• Un patrón para escribir código de UI
• Promueve un flujo unidireccional para la gestión de datos y estado
• También conocido como La Arquitectura Elm
Model El estado de tu aplicación
View Una forma de convertir el estado en UI (HTML por ejemplo)
Update Una forma de actualizar el estado por medio de mensajes
Estos 3 conceptos son el núcleo de La Arquitectura Elm
El estado actual
de la aplicación
Renderiza la UI
basado en el
modelo
Crea un modelo
actualizado
Model View Update
se pasa a envía
mensaje
MVU Hot Reload
MVU promueve una experiencia de desarrollo code-first en la que la UI
se actualiza inmediatamente, aplicando solo los cambios necesarios
https://thomasbandt.com/model-view-update
• Program: La unidad autónoma más pequeña que puede ser ejecutada.
• Model: define el estado de tu programa.
• Command: Código para realizar una acción de forma (a)síncrona.
• Message: define lo que la función de Update necesita realizar.
• Init() function: el punto de entrada de un programa.
• Update() function: el único lugar que manipula el modelo de forma
directa.
• View() function: es responsible de describir la UI
Conceptos importantes
Centralización del estado y Update
La inmutabilidad del estado es el principal beneficio de MVU.
No hay problemas de concurrencia
Actualizando el estado solo a través de mensajes permite al framework aplicar mensajes
concurrentes en forma consecutiva.
Views explícitas en cada Update
En MVU, el framework toma la responsabilidad de actualizar la UI cada vez que el estado es
modificado.
Views reproducibles
Puedes escribir funciones libres de efectos colaterales, generando
vistas específicas con estados concretos.
Ventajas
Elm
• Un lenguaje functional que compila a JavaScript
• Destinado a la creación de sitios y apps web.
• Hace un fuerte énfasis en la simplicidad.
• En Elm, un programa produce HTML que es
renderizado en pantalla, y el equipo envía
mensajes de vuelta informando lo que sucede,
por ejemplo ”se ha hecho click en un botón"
https://guide.elm-lang.org/
https://elm-lang.org/examples/text-fields
https://elmprogramming.com/model-view-update-part-1.html
• Un framework para desarrollo de apps móviles funcionales con F#
utilizando UI declarativa dinámica.
• Diseñado/mantenido por Don Syme (Microsoft PM y arquitecto F#) y
Timothé Larivière
• Una variante de Elmish, una arquitectura Elm implementada en F#
• “La UI se convierte en cálculo e información, no un estado”
• “Las Views son recalculadas y aplicadas diferencialmente”
https://fsprojects.github.io/Fabulous/
Introduction to Fabulous a F# MVU Framework for Xamarin | The Xamarin Show
https://channel9.msdn.com/Shows/XamarinShow/Introduction-to-Fabulous-
a-F-MVU-Framework-for-Xamarin--The-Xamarin-Show
https://timothelariviere.com/2019/12/21/how-to-become-a-fabulous-developer/
Un Framework MVU en F# para construir apps cross-platform para
iOS, Android, Mac, WPF y más utilizando Xamarin.Forms.
View functions:
• DynamicView à UI en F#
• StaticView à UI en XAML
• AdaptiveView à UI en F# con bindings inmediatos
https://github.com/fsprojects/Fabulous/tree/master/Fabulous.XamarinForms
F# Fabulous – Beyond MVU Basics | The Xamarin Show
https://www.youtube.com/watch?v=CGSYyK8-sik
Three ways to write Xamarin Apps in F#
https://thomasbandt.com/writing-xamarin-apps-in-fsharp
MVU for Native Xamarin Apps
https://thomasbandt.com/mvu-for-native-xamarin-apps
Fabulous – F# for cross-platform mobile apps – Don Syme
https://www.youtube.com/watch?v=ZCRYBivH9BM
Más información
https://thomasbandt.com/microsoft-maui-mvu
https://github.com/dotnet/maui/issues/118
¿El MVU de Microsoft es realmente MVU?
https://github.com/dotnet/maui/issues/40
¿El MVU de Microsoft es realmente MVU?
https://twitter.com/dsymetweets/status/1262797500949331976
Comet, un nuevo MVU UIToolkit3
¿Qué es Comet ?
• Comet es un prototipo de un nuevo
framework UI o patrón para hacer UI de
nuestras apps utilizando C#.
• Creado por James Clancey, PM
Architect de Microsoft.
https://github.com/Clancey/Comet
¿Qué es Comet ?
Está basado en una implementación del patron MVU (Model-
View-Update).
MSBuild 2020, .NET MAUI, MVU, Renders, PropertyMappers
https://www.youtube.com/watch?v=_MGh3xipWm4
¿Qué es Comet ?
Está basado en una implementación del patron MVU (Model-
View-Update).
¿Qué es Comet ?
Está basado en una implementación del patron MVU (Model-
View-Update).
¿Qué es Comet ?
¡Y podemos usar Hot Reload!
Getting Started with Comet
https://github.com/Clancey/Comet/wiki/Getting-Started
¿Cómo funciona State ?
Actualmente hay dos formas de utilizarlo:
Agregando State<T> a un View
Implementando BindingObject a un View y
después añadiendo [State] como atributo
¿Cómo puedo usar Comet ?
• Necesitas VS Code, .NET Core y Xcode.
• Instalar los Templates de Comet:
• Y las herramientas de Debug del Marketplace de VS Code.
https://marketplace.visualstudio.com/items?itemName=Clancey.comet-debug
¿Cómo puedo usar Comet ?
Inicias un nuevo proyecto desde terminal:
Abres el proyecto y luego restauras los paquetes nuget.
¡Y listo!
Comet UI Demo
https://www.youtube.com/watch?v=-Ieg9UadN8s
Demo4
Para aprender más sobre Comet
Introduction to Comet and MVU
https://www.youtube.com/watch?v=s6WslQhDnT0
#XamarinSaturday: Comet – A .NET UI Experiment – David Ortinau
https://www.youtube.com/watch?v=pnZQosclItg
Comet MVU Toolkit!
https://www.youtube.com/watch?v=mGq1v_n4xgc
Comet Discord Server
https://discord.gg/7Ms7ptM
Únete a la Comunidad Xamarin en Español
https://www.facebook.com/groups/xamarindiplomadoitc
https://www.youtube.com/c/ComunidadXamarinenEspañol/
Luis Beltrán
@darkicebeam
luis@luisbeltran.mx
Humberto Jaimes
@HJaimesDev
humberto@humbertojaimes.net
Cristian González
@DarryStonem
alex@darry.dev

More Related Content

What's hot

Cahier des charges pour la conception du robot
Cahier des charges pour la conception du robotCahier des charges pour la conception du robot
Cahier des charges pour la conception du robotJeff Simon
 
Comment visualiser le informations de pilotage (courbe en S) ?
Comment visualiser le informations de pilotage (courbe en S) ?Comment visualiser le informations de pilotage (courbe en S) ?
Comment visualiser le informations de pilotage (courbe en S) ?Chef De Projet Détendu
 
Conception d'un batiment R+1 (Eurocode )
Conception d'un batiment R+1 (Eurocode )Conception d'un batiment R+1 (Eurocode )
Conception d'un batiment R+1 (Eurocode )Seckou Fossar SOUANE
 
MS Project et le management de projet
MS Project et le management de projetMS Project et le management de projet
MS Project et le management de projetMichel Estève
 
Chapitre 10 flambement
Chapitre 10 flambementChapitre 10 flambement
Chapitre 10 flambementMouna Souissi
 
conduite des camions citernes.
conduite des camions citernes.conduite des camions citernes.
conduite des camions citernes.Mamane Bachir
 
Exercice ms project 2020
Exercice ms project 2020Exercice ms project 2020
Exercice ms project 2020Mourad EL BAZ
 
Catalogue formation Autodesk Robot Structural Analysis
Catalogue formation Autodesk Robot Structural AnalysisCatalogue formation Autodesk Robot Structural Analysis
Catalogue formation Autodesk Robot Structural AnalysisFrancois PEDEBOSCQ
 
Examens électronique analogique
Examens électronique analogiqueExamens électronique analogique
Examens électronique analogiqueSalah-Eddine MAAFI
 
Rapport Dimensionnement BA
Rapport Dimensionnement BARapport Dimensionnement BA
Rapport Dimensionnement BAClément Lay
 
Microo exercices 16f877/877A
Microo exercices 16f877/877AMicroo exercices 16f877/877A
Microo exercices 16f877/877Aomar bllaouhamou
 
La maintenance preventive
La maintenance preventiveLa maintenance preventive
La maintenance preventiveHubert Faigner
 
03 régime de neutre
03 régime de neutre03 régime de neutre
03 régime de neutreAhmed Tahar
 
calcul des éléments de bâtiments selon NF
calcul des éléments de bâtiments selon NF calcul des éléments de bâtiments selon NF
calcul des éléments de bâtiments selon NF koulounté BIRREGAH
 

What's hot (20)

TP C++ : enoncé
TP C++ : enoncéTP C++ : enoncé
TP C++ : enoncé
 
Cahier des charges pour la conception du robot
Cahier des charges pour la conception du robotCahier des charges pour la conception du robot
Cahier des charges pour la conception du robot
 
Comment visualiser le informations de pilotage (courbe en S) ?
Comment visualiser le informations de pilotage (courbe en S) ?Comment visualiser le informations de pilotage (courbe en S) ?
Comment visualiser le informations de pilotage (courbe en S) ?
 
Cours pics16 f877
Cours pics16 f877Cours pics16 f877
Cours pics16 f877
 
Chapitre05 : Les tableaux
Chapitre05 : Les tableauxChapitre05 : Les tableaux
Chapitre05 : Les tableaux
 
Bus presentation
Bus presentationBus presentation
Bus presentation
 
Conception d'un batiment R+1 (Eurocode )
Conception d'un batiment R+1 (Eurocode )Conception d'un batiment R+1 (Eurocode )
Conception d'un batiment R+1 (Eurocode )
 
MS Project et le management de projet
MS Project et le management de projetMS Project et le management de projet
MS Project et le management de projet
 
Chapitre 10 flambement
Chapitre 10 flambementChapitre 10 flambement
Chapitre 10 flambement
 
conduite des camions citernes.
conduite des camions citernes.conduite des camions citernes.
conduite des camions citernes.
 
Exercice ms project 2020
Exercice ms project 2020Exercice ms project 2020
Exercice ms project 2020
 
Catalogue formation Autodesk Robot Structural Analysis
Catalogue formation Autodesk Robot Structural AnalysisCatalogue formation Autodesk Robot Structural Analysis
Catalogue formation Autodesk Robot Structural Analysis
 
Examens électronique analogique
Examens électronique analogiqueExamens électronique analogique
Examens électronique analogique
 
Rapport Dimensionnement BA
Rapport Dimensionnement BARapport Dimensionnement BA
Rapport Dimensionnement BA
 
Le diagramme de gantt slide share
Le diagramme de gantt slide shareLe diagramme de gantt slide share
Le diagramme de gantt slide share
 
Microo exercices 16f877/877A
Microo exercices 16f877/877AMicroo exercices 16f877/877A
Microo exercices 16f877/877A
 
La maintenance preventive
La maintenance preventiveLa maintenance preventive
La maintenance preventive
 
03 régime de neutre
03 régime de neutre03 régime de neutre
03 régime de neutre
 
7 poutre
7 poutre7 poutre
7 poutre
 
calcul des éléments de bâtiments selon NF
calcul des éléments de bâtiments selon NF calcul des éléments de bâtiments selon NF
calcul des éléments de bâtiments selon NF
 

Similar to Introduccion a MVU con Comet

MVVM vs MVU en NET MAUI.pptx
MVVM vs MVU en NET MAUI.pptxMVVM vs MVU en NET MAUI.pptx
MVVM vs MVU en NET MAUI.pptxicebeam7
 
Apps para mejorar tus proyectos Web
Apps para mejorar tus proyectos WebApps para mejorar tus proyectos Web
Apps para mejorar tus proyectos WebSocialmood
 
DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!Javier Suárez Ruiz
 
Visual Studio 2017 Launch Event Sevilla
Visual Studio 2017 Launch Event SevillaVisual Studio 2017 Launch Event Sevilla
Visual Studio 2017 Launch Event SevillaJavier Suárez Ruiz
 
Web camp el_poder_de_los_cms_umbraco_13_04_13
Web camp el_poder_de_los_cms_umbraco_13_04_13Web camp el_poder_de_los_cms_umbraco_13_04_13
Web camp el_poder_de_los_cms_umbraco_13_04_13yolss12
 
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...Javier Suárez Ruiz
 
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...Sorey García
 
MVVM en Windows Phone
MVVM en Windows PhoneMVVM en Windows Phone
MVVM en Windows Phoneirega
 
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
 
Llevando tu startup a las tres principales plataformas móviles
Llevando tu startup a las tres principales plataformas móvilesLlevando tu startup a las tres principales plataformas móviles
Llevando tu startup a las tres principales plataformas móvilesJosué Yeray Julián Ferreiro
 
Arquitectura xamarin - Nuestra primera app
Arquitectura xamarin - Nuestra primera appArquitectura xamarin - Nuestra primera app
Arquitectura xamarin - Nuestra primera appBorja García Cueto
 
Microservicios y contenedores Docker
Microservicios y contenedores DockerMicroservicios y contenedores Docker
Microservicios y contenedores DockerPlain Concepts
 

Similar to Introduccion a MVU con Comet (20)

MVVM vs MVU en NET MAUI.pptx
MVVM vs MVU en NET MAUI.pptxMVVM vs MVU en NET MAUI.pptx
MVVM vs MVU en NET MAUI.pptx
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
Apps para mejorar tus proyectos Web
Apps para mejorar tus proyectos WebApps para mejorar tus proyectos Web
Apps para mejorar tus proyectos Web
 
Introducción a Live XAML
Introducción a Live XAMLIntroducción a Live XAML
Introducción a Live XAML
 
Extendiendo Xamarin.Forms
Extendiendo Xamarin.FormsExtendiendo Xamarin.Forms
Extendiendo Xamarin.Forms
 
DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!
 
Visual Studio 2017 Launch Event Sevilla
Visual Studio 2017 Launch Event SevillaVisual Studio 2017 Launch Event Sevilla
Visual Studio 2017 Launch Event Sevilla
 
Introducción a xamarin
Introducción a xamarinIntroducción a xamarin
Introducción a xamarin
 
primera aplicacion Xamarin.pptx
primera aplicacion Xamarin.pptxprimera aplicacion Xamarin.pptx
primera aplicacion Xamarin.pptx
 
Web camp el_poder_de_los_cms_umbraco_13_04_13
Web camp el_poder_de_los_cms_umbraco_13_04_13Web camp el_poder_de_los_cms_umbraco_13_04_13
Web camp el_poder_de_los_cms_umbraco_13_04_13
 
Barcamp Mobile Web
Barcamp Mobile WebBarcamp Mobile Web
Barcamp Mobile Web
 
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...
 
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
 
MVVM en Windows Phone
MVVM en Windows PhoneMVVM en Windows Phone
MVVM en Windows Phone
 
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
 
Llevando tu startup a las tres principales plataformas móviles
Llevando tu startup a las tres principales plataformas móvilesLlevando tu startup a las tres principales plataformas móviles
Llevando tu startup a las tres principales plataformas móviles
 
Arquitectura xamarin - Nuestra primera app
Arquitectura xamarin - Nuestra primera appArquitectura xamarin - Nuestra primera app
Arquitectura xamarin - Nuestra primera app
 
Microservicios y contenedores Docker
Microservicios y contenedores DockerMicroservicios y contenedores Docker
Microservicios y contenedores Docker
 
Servicios Nativos MAUI
Servicios Nativos MAUIServicios Nativos MAUI
Servicios Nativos MAUI
 
Native Service With .NET MAUI
Native Service With .NET MAUINative Service With .NET MAUI
Native Service With .NET MAUI
 

More from Luis Beltran

AI for Accessibility.pptx
AI for Accessibility.pptxAI for Accessibility.pptx
AI for Accessibility.pptxLuis Beltran
 
NET Conf Bhubaneswar - Migrating your Xamarin.Forms app to .NET MAUI.pptx
NET Conf Bhubaneswar - Migrating your Xamarin.Forms app to .NET MAUI.pptxNET Conf Bhubaneswar - Migrating your Xamarin.Forms app to .NET MAUI.pptx
NET Conf Bhubaneswar - Migrating your Xamarin.Forms app to .NET MAUI.pptxLuis Beltran
 
03 GlobalAIBootcamp2020Lisboa-Rock, Paper, Scissors.pptx
03 GlobalAIBootcamp2020Lisboa-Rock, Paper, Scissors.pptx03 GlobalAIBootcamp2020Lisboa-Rock, Paper, Scissors.pptx
03 GlobalAIBootcamp2020Lisboa-Rock, Paper, Scissors.pptxLuis Beltran
 
BI LATAM Summit 2022 - Creación de soluciones de automatización serverless-...
BI LATAM Summit 2022 - Creación de soluciones de automatización serverless-...BI LATAM Summit 2022 - Creación de soluciones de automatización serverless-...
BI LATAM Summit 2022 - Creación de soluciones de automatización serverless-...Luis Beltran
 
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdf
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdfCEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdf
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdfLuis Beltran
 
Computo en la Nube con Azure - AI Gaming Panama.pptx
Computo en la Nube con Azure - AI Gaming Panama.pptxComputo en la Nube con Azure - AI Gaming Panama.pptx
Computo en la Nube con Azure - AI Gaming Panama.pptxLuis Beltran
 
5StarsConf - Serverless Machine Learning con Azure Functions y ML.NET .pptx
5StarsConf - Serverless Machine Learning con Azure Functions y ML.NET .pptx5StarsConf - Serverless Machine Learning con Azure Functions y ML.NET .pptx
5StarsConf - Serverless Machine Learning con Azure Functions y ML.NET .pptxLuis Beltran
 
ACW - Azure Speaker Recognition Biometria de Voz.pptx
ACW - Azure Speaker Recognition Biometria de Voz.pptxACW - Azure Speaker Recognition Biometria de Voz.pptx
ACW - Azure Speaker Recognition Biometria de Voz.pptxLuis Beltran
 
UNICABA - Azure Machine Learning.pptx
UNICABA - Azure Machine Learning.pptxUNICABA - Azure Machine Learning.pptx
UNICABA - Azure Machine Learning.pptxLuis Beltran
 
Azure Talks Bolivia - Aumente la confiabilidad de su negocio con Azure Anomal...
Azure Talks Bolivia - Aumente la confiabilidad de su negocio con Azure Anomal...Azure Talks Bolivia - Aumente la confiabilidad de su negocio con Azure Anomal...
Azure Talks Bolivia - Aumente la confiabilidad de su negocio con Azure Anomal...Luis Beltran
 
Latino NET - Integrando WhatsApp en nuestras apps .NET con Twilio.pptx
Latino NET - Integrando WhatsApp en nuestras apps .NET con Twilio.pptxLatino NET - Integrando WhatsApp en nuestras apps .NET con Twilio.pptx
Latino NET - Integrando WhatsApp en nuestras apps .NET con Twilio.pptxLuis Beltran
 
NOVA - Enriquecimiento de IA con Azure Cognitive Search.pptx
NOVA - Enriquecimiento de IA con Azure Cognitive Search.pptxNOVA - Enriquecimiento de IA con Azure Cognitive Search.pptx
NOVA - Enriquecimiento de IA con Azure Cognitive Search.pptxLuis Beltran
 
Netcoreconf 2021 Realidad mixta en apps móviles con Azure Spatial Anchors y ...
Netcoreconf 2021 Realidad mixta en apps móviles con Azure Spatial Anchors y ...Netcoreconf 2021 Realidad mixta en apps móviles con Azure Spatial Anchors y ...
Netcoreconf 2021 Realidad mixta en apps móviles con Azure Spatial Anchors y ...Luis Beltran
 
ATG Puebla - El cementerio de Microsoft.pptx
ATG Puebla - El cementerio de Microsoft.pptxATG Puebla - El cementerio de Microsoft.pptx
ATG Puebla - El cementerio de Microsoft.pptxLuis Beltran
 
Data-Saturday-10-Sofia-2021 Azure Video Indexer- Advanced data extraction fro...
Data-Saturday-10-Sofia-2021 Azure Video Indexer- Advanced data extraction fro...Data-Saturday-10-Sofia-2021 Azure Video Indexer- Advanced data extraction fro...
Data-Saturday-10-Sofia-2021 Azure Video Indexer- Advanced data extraction fro...Luis Beltran
 
Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...
Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...
Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...Luis Beltran
 
Real NET Docs Show - Serverless Machine Learning v3.pptx
Real NET Docs Show - Serverless Machine Learning v3.pptxReal NET Docs Show - Serverless Machine Learning v3.pptx
Real NET Docs Show - Serverless Machine Learning v3.pptxLuis Beltran
 
Sesion 5 - Eficiencia del Rendimiento - Well Architected Backstage Tour.pptx
Sesion 5 - Eficiencia del Rendimiento - Well Architected Backstage Tour.pptxSesion 5 - Eficiencia del Rendimiento - Well Architected Backstage Tour.pptx
Sesion 5 - Eficiencia del Rendimiento - Well Architected Backstage Tour.pptxLuis Beltran
 
XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...
XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...
XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...Luis Beltran
 
Latam Space Week - Clasificación de rocas espaciales por medio de IA.pptx
Latam Space Week - Clasificación de rocas espaciales por medio de IA.pptxLatam Space Week - Clasificación de rocas espaciales por medio de IA.pptx
Latam Space Week - Clasificación de rocas espaciales por medio de IA.pptxLuis Beltran
 

More from Luis Beltran (20)

AI for Accessibility.pptx
AI for Accessibility.pptxAI for Accessibility.pptx
AI for Accessibility.pptx
 
NET Conf Bhubaneswar - Migrating your Xamarin.Forms app to .NET MAUI.pptx
NET Conf Bhubaneswar - Migrating your Xamarin.Forms app to .NET MAUI.pptxNET Conf Bhubaneswar - Migrating your Xamarin.Forms app to .NET MAUI.pptx
NET Conf Bhubaneswar - Migrating your Xamarin.Forms app to .NET MAUI.pptx
 
03 GlobalAIBootcamp2020Lisboa-Rock, Paper, Scissors.pptx
03 GlobalAIBootcamp2020Lisboa-Rock, Paper, Scissors.pptx03 GlobalAIBootcamp2020Lisboa-Rock, Paper, Scissors.pptx
03 GlobalAIBootcamp2020Lisboa-Rock, Paper, Scissors.pptx
 
BI LATAM Summit 2022 - Creación de soluciones de automatización serverless-...
BI LATAM Summit 2022 - Creación de soluciones de automatización serverless-...BI LATAM Summit 2022 - Creación de soluciones de automatización serverless-...
BI LATAM Summit 2022 - Creación de soluciones de automatización serverless-...
 
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdf
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdfCEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdf
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdf
 
Computo en la Nube con Azure - AI Gaming Panama.pptx
Computo en la Nube con Azure - AI Gaming Panama.pptxComputo en la Nube con Azure - AI Gaming Panama.pptx
Computo en la Nube con Azure - AI Gaming Panama.pptx
 
5StarsConf - Serverless Machine Learning con Azure Functions y ML.NET .pptx
5StarsConf - Serverless Machine Learning con Azure Functions y ML.NET .pptx5StarsConf - Serverless Machine Learning con Azure Functions y ML.NET .pptx
5StarsConf - Serverless Machine Learning con Azure Functions y ML.NET .pptx
 
ACW - Azure Speaker Recognition Biometria de Voz.pptx
ACW - Azure Speaker Recognition Biometria de Voz.pptxACW - Azure Speaker Recognition Biometria de Voz.pptx
ACW - Azure Speaker Recognition Biometria de Voz.pptx
 
UNICABA - Azure Machine Learning.pptx
UNICABA - Azure Machine Learning.pptxUNICABA - Azure Machine Learning.pptx
UNICABA - Azure Machine Learning.pptx
 
Azure Talks Bolivia - Aumente la confiabilidad de su negocio con Azure Anomal...
Azure Talks Bolivia - Aumente la confiabilidad de su negocio con Azure Anomal...Azure Talks Bolivia - Aumente la confiabilidad de su negocio con Azure Anomal...
Azure Talks Bolivia - Aumente la confiabilidad de su negocio con Azure Anomal...
 
Latino NET - Integrando WhatsApp en nuestras apps .NET con Twilio.pptx
Latino NET - Integrando WhatsApp en nuestras apps .NET con Twilio.pptxLatino NET - Integrando WhatsApp en nuestras apps .NET con Twilio.pptx
Latino NET - Integrando WhatsApp en nuestras apps .NET con Twilio.pptx
 
NOVA - Enriquecimiento de IA con Azure Cognitive Search.pptx
NOVA - Enriquecimiento de IA con Azure Cognitive Search.pptxNOVA - Enriquecimiento de IA con Azure Cognitive Search.pptx
NOVA - Enriquecimiento de IA con Azure Cognitive Search.pptx
 
Netcoreconf 2021 Realidad mixta en apps móviles con Azure Spatial Anchors y ...
Netcoreconf 2021 Realidad mixta en apps móviles con Azure Spatial Anchors y ...Netcoreconf 2021 Realidad mixta en apps móviles con Azure Spatial Anchors y ...
Netcoreconf 2021 Realidad mixta en apps móviles con Azure Spatial Anchors y ...
 
ATG Puebla - El cementerio de Microsoft.pptx
ATG Puebla - El cementerio de Microsoft.pptxATG Puebla - El cementerio de Microsoft.pptx
ATG Puebla - El cementerio de Microsoft.pptx
 
Data-Saturday-10-Sofia-2021 Azure Video Indexer- Advanced data extraction fro...
Data-Saturday-10-Sofia-2021 Azure Video Indexer- Advanced data extraction fro...Data-Saturday-10-Sofia-2021 Azure Video Indexer- Advanced data extraction fro...
Data-Saturday-10-Sofia-2021 Azure Video Indexer- Advanced data extraction fro...
 
Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...
Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...
Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...
 
Real NET Docs Show - Serverless Machine Learning v3.pptx
Real NET Docs Show - Serverless Machine Learning v3.pptxReal NET Docs Show - Serverless Machine Learning v3.pptx
Real NET Docs Show - Serverless Machine Learning v3.pptx
 
Sesion 5 - Eficiencia del Rendimiento - Well Architected Backstage Tour.pptx
Sesion 5 - Eficiencia del Rendimiento - Well Architected Backstage Tour.pptxSesion 5 - Eficiencia del Rendimiento - Well Architected Backstage Tour.pptx
Sesion 5 - Eficiencia del Rendimiento - Well Architected Backstage Tour.pptx
 
XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...
XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...
XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...
 
Latam Space Week - Clasificación de rocas espaciales por medio de IA.pptx
Latam Space Week - Clasificación de rocas espaciales por medio de IA.pptxLatam Space Week - Clasificación de rocas espaciales por medio de IA.pptx
Latam Space Week - Clasificación de rocas espaciales por medio de IA.pptx
 

Recently uploaded

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 

Recently uploaded (16)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 

Introduccion a MVU con Comet

  • 3. Luis Beltrán Investigador – TBU @darkicebeam luis@luisbeltran.mx ¿Quiénes somos? Humberto Jaimes Software Developer @HJaimesDev humberto@humbertojaimes.net Cristian González Software Developer @DarryStonem alex@darry.dev
  • 4. Agenda Introducción ¿Qué es MVU? Conceptos, Frameworks 01 02 Comet, un nuevo MVU UIToolkit03 Demos04 Luis Beltrán | Cristian González| Humberto Jaimes Slides disponibles en http://bit.ly/XamarinAssembleMVU
  • 6. .NET La plataforma para construir todo DESKTOP CLOUDWEB MOBILE ML .NET IoTGAMING
  • 7. .NET MAUI • La evolución de Xamarin.Forms • UI nativa y multiplataforma • Crea apps multiplataforma para móviles, escritorio y dispositivos • Un solo proyecto, una sola base de código Construye UI hermosas y nativas para cualquier dispositivo github.com/dotnet/maui The Journey to One .NET https://aka.ms/ScottBuildSessions Para saber más acerca de .NET MAUI: https://www.humbertojaimes.net/maui/
  • 8.
  • 9. La visión para un solo .NET incluye proporcionar al desarrollador diversas opciones para elevar la productividad: • IDE: • Visual Studio 2019 • Visual Studio for Mac • Visual Studio Code • Patrones: • MVVM • XAML • Blazor • MVU
  • 11. MVU (Model-View-Update) • Un patrón para escribir código de UI • Promueve un flujo unidireccional para la gestión de datos y estado • También conocido como La Arquitectura Elm
  • 12. Model El estado de tu aplicación View Una forma de convertir el estado en UI (HTML por ejemplo) Update Una forma de actualizar el estado por medio de mensajes Estos 3 conceptos son el núcleo de La Arquitectura Elm El estado actual de la aplicación Renderiza la UI basado en el modelo Crea un modelo actualizado Model View Update se pasa a envía mensaje
  • 13. MVU Hot Reload MVU promueve una experiencia de desarrollo code-first en la que la UI se actualiza inmediatamente, aplicando solo los cambios necesarios
  • 14. https://thomasbandt.com/model-view-update • Program: La unidad autónoma más pequeña que puede ser ejecutada. • Model: define el estado de tu programa. • Command: Código para realizar una acción de forma (a)síncrona. • Message: define lo que la función de Update necesita realizar. • Init() function: el punto de entrada de un programa. • Update() function: el único lugar que manipula el modelo de forma directa. • View() function: es responsible de describir la UI Conceptos importantes
  • 15. Centralización del estado y Update La inmutabilidad del estado es el principal beneficio de MVU. No hay problemas de concurrencia Actualizando el estado solo a través de mensajes permite al framework aplicar mensajes concurrentes en forma consecutiva. Views explícitas en cada Update En MVU, el framework toma la responsabilidad de actualizar la UI cada vez que el estado es modificado. Views reproducibles Puedes escribir funciones libres de efectos colaterales, generando vistas específicas con estados concretos. Ventajas
  • 16. Elm • Un lenguaje functional que compila a JavaScript • Destinado a la creación de sitios y apps web. • Hace un fuerte énfasis en la simplicidad. • En Elm, un programa produce HTML que es renderizado en pantalla, y el equipo envía mensajes de vuelta informando lo que sucede, por ejemplo ”se ha hecho click en un botón" https://guide.elm-lang.org/
  • 19. • Un framework para desarrollo de apps móviles funcionales con F# utilizando UI declarativa dinámica. • Diseñado/mantenido por Don Syme (Microsoft PM y arquitecto F#) y Timothé Larivière • Una variante de Elmish, una arquitectura Elm implementada en F# • “La UI se convierte en cálculo e información, no un estado” • “Las Views son recalculadas y aplicadas diferencialmente” https://fsprojects.github.io/Fabulous/ Introduction to Fabulous a F# MVU Framework for Xamarin | The Xamarin Show https://channel9.msdn.com/Shows/XamarinShow/Introduction-to-Fabulous- a-F-MVU-Framework-for-Xamarin--The-Xamarin-Show
  • 21. Un Framework MVU en F# para construir apps cross-platform para iOS, Android, Mac, WPF y más utilizando Xamarin.Forms. View functions: • DynamicView à UI en F# • StaticView à UI en XAML • AdaptiveView à UI en F# con bindings inmediatos https://github.com/fsprojects/Fabulous/tree/master/Fabulous.XamarinForms F# Fabulous – Beyond MVU Basics | The Xamarin Show https://www.youtube.com/watch?v=CGSYyK8-sik
  • 22.
  • 23. Three ways to write Xamarin Apps in F# https://thomasbandt.com/writing-xamarin-apps-in-fsharp MVU for Native Xamarin Apps https://thomasbandt.com/mvu-for-native-xamarin-apps Fabulous – F# for cross-platform mobile apps – Don Syme https://www.youtube.com/watch?v=ZCRYBivH9BM Más información
  • 24. https://thomasbandt.com/microsoft-maui-mvu https://github.com/dotnet/maui/issues/118 ¿El MVU de Microsoft es realmente MVU? https://github.com/dotnet/maui/issues/40
  • 25. ¿El MVU de Microsoft es realmente MVU? https://twitter.com/dsymetweets/status/1262797500949331976
  • 26. Comet, un nuevo MVU UIToolkit3
  • 27. ¿Qué es Comet ? • Comet es un prototipo de un nuevo framework UI o patrón para hacer UI de nuestras apps utilizando C#. • Creado por James Clancey, PM Architect de Microsoft. https://github.com/Clancey/Comet
  • 28. ¿Qué es Comet ? Está basado en una implementación del patron MVU (Model- View-Update). MSBuild 2020, .NET MAUI, MVU, Renders, PropertyMappers https://www.youtube.com/watch?v=_MGh3xipWm4
  • 29. ¿Qué es Comet ? Está basado en una implementación del patron MVU (Model- View-Update).
  • 30. ¿Qué es Comet ? Está basado en una implementación del patron MVU (Model- View-Update).
  • 31. ¿Qué es Comet ? ¡Y podemos usar Hot Reload! Getting Started with Comet https://github.com/Clancey/Comet/wiki/Getting-Started
  • 32. ¿Cómo funciona State ? Actualmente hay dos formas de utilizarlo: Agregando State<T> a un View Implementando BindingObject a un View y después añadiendo [State] como atributo
  • 33. ¿Cómo puedo usar Comet ? • Necesitas VS Code, .NET Core y Xcode. • Instalar los Templates de Comet: • Y las herramientas de Debug del Marketplace de VS Code. https://marketplace.visualstudio.com/items?itemName=Clancey.comet-debug
  • 34. ¿Cómo puedo usar Comet ? Inicias un nuevo proyecto desde terminal: Abres el proyecto y luego restauras los paquetes nuget. ¡Y listo! Comet UI Demo https://www.youtube.com/watch?v=-Ieg9UadN8s
  • 35. Demo4
  • 36.
  • 37.
  • 38. Para aprender más sobre Comet Introduction to Comet and MVU https://www.youtube.com/watch?v=s6WslQhDnT0 #XamarinSaturday: Comet – A .NET UI Experiment – David Ortinau https://www.youtube.com/watch?v=pnZQosclItg Comet MVU Toolkit! https://www.youtube.com/watch?v=mGq1v_n4xgc
  • 40. Únete a la Comunidad Xamarin en Español https://www.facebook.com/groups/xamarindiplomadoitc https://www.youtube.com/c/ComunidadXamarinenEspañol/