SlideShare a Scribd company logo
1 of 26
Download to read offline
Esencia de
Web Components
Pedro J. Molina
http://pjmolina.com
@pmolinamhttps://metadev.pro
Pedro J. Molina
@pmolinam
Agenda
IU: Arqueología
Web Components
Estandarización
Frameworks
Catalogo de componentes
Componiendo Web Comp.
¿Qué falta?
Interfaz de Usuario: un poco de Arqueología
Cliente Servidor
SPA / JS
ASP.NET JSP Ruby
Silverlight / Flash / Applets
Clientes pesados (.NET, Java Swing)
PHP CGI
Visual Basic / Delphi
Mainframe / Terminales VT52/VT100
Interfaz de Usuario: un poco de Arqueología
Interfaz de Usuario: un poco de Arqueología
Arquitecturas
Model View Controller (Smalltalk ’80)
Model View Presenter (IBM ’90)
Model View View-Model (MS ‘99)
Reactivas (ReactJS)
Unidireccionales (CycleJS)
Model View Update (Eml)
Orientadas a Componentes (VB 1.0 ‘91)
Interfaz de Usuario: un poco de Arqueología
Visual Basic 1.0, 1991
Sobre Windows 3.11
Alan Cooper para Microsoft
 Componentes
 Propiedades
 Eventos
 Paleta de componentes
reutilizable
Web Components ¿Qué son?
Componentes
Propiedades
Eventos
Paleta de componentes reutilizable
El modelo de Visual Basic y Delphi en la Web,
¡27 años después!
Web Components. Estándares base
1. Custom Elements
2. HTML Templates
3. Shadow DOM
4. HTML Imports ES Modules
1. Custom Elements
 La posibilidad de extender el lenguaje HTML con elementos propios
<div>
<acme-calendar mode="month"
date="2018-11-23"
on-select="dateSelected()">
</acme-calendar>
</div>
En estandarización por la W3C
https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements
1. Custom Elements. Ejemplo
const templateCalendar = document.createElement('template');
templateCalendar.innerHTML = `
<h1>Calendar</h1>
<table> … </table>
`;
class AcmeCalendar extends HTMLElement {
constructor() {
super();
}
connectedCallback() {}
disconnectedCallback() { }
_render() {}
}
window.customElements.define(‘acme-calendar', AcmeCalendar);
2. HTMLTemplates
Plantillas dentro de HTML
En estandarización por la W3C
https://html.spec.whatwg.org/multipage/scripting.html#the-template-element/
<template>
<div class=“article">
<h1><slot name="title"></slot></h1>
<hr/>
<slot name="body"></slot>
</div>
</template>
3. Shadow DOM
El DOM dentro de cada elemento del DOM
Proporciona:
Aislamiento (ámbitos) para código y estilos (CSS)
Seguridad (encarcelar Javascript)
En estandarización por la W3C
https://w3c.github.io/webcomponents/spec/shadow/
3. Shadow DOM. Ejemplo
constructor() {
super();
}
connectedCallback() {
this.appendChild(templateCalendar.content.cloneNode(true));
}
constructor() {
super();
this._root = this.attachShadow({ 'mode': 'open' });
}
connectedCallback() {
this._root.appendChild(templateCalendar.content.cloneNode(true));
}
SIN SHADOW-DOM
CON SHADOW-DOM
4. HTML Imports vs ES Modules
 HTML Imports
 ES Modules
<link rel="import"
href="https://acme.org/acme-calendar.html">
<script type=“module"
src="https://acme.org/acme-calendar.min.js">
</script>
Estado actual.W3C
1. Custom Elements v.0 v.1
2. Shadow DOM v.0 v.1
3. HTML Templates
4. HTML Imports
5. ES Modules
 ESM vs CommonJS en NodeJS
https://medium.com/the-node-js-collection/the-current-state-of-implementation-
and-planning-for-esmodules-a4ecb2aac07a
HTTP/1  Budling vs HTTP/2 Bundles no necesarios
Estado actual. Soporte en Navegadores. 05/2018
Estado actual. Soporte en Navegadores. 11/2018
Estado actual. Polyfills
Lo que los navegadores no implementan todavía se
puede cubrir extendiendo JavaScript con librerías.
https://github.com/WebComponents/webcomponentsjs
$ npm i webcomponents/webcomponentsjs
Librerías para crearWeb Components
 Native WebElements
 Polymer 2 & 3
 SkateJS
 X-Tag
 Slim.js
 StencilJS
 Angular Elements
 Svelte
 Vue WebComponents Wrapper
 Repositorio con el ejemplo TODO List en
varias tecnologías
https://github.com/shprink/web-components-todo
https://github.com/shprink/web-components-todo
Catálogo de componentes
Quid. Un DSL mínimo para componerWebC
DSL para prototipar Interfaz de Usuario
Orientado a Web Components
https://quid.metadev.pro
#quid
¿Qué falta?
1. Consensos y cierre de estándares (ej. ES Modules)
2. Adopción en navegadores (desterrar polyfills)
3. Definición de tipos en componentes
4. Herramientas para consumir y componer Web
Components
Conclusiones
 Web Components estandarizado por W3C
 Ya disponible en tu navagador
 Ecosistema de componentes en ebullición
 ¡Aprovéchalo!
¡Gracias!
@pmolinam

More Related Content

What's hot

Desarrollo de aplicaciones multiplataforma 2/2
Desarrollo de aplicaciones multiplataforma 2/2Desarrollo de aplicaciones multiplataforma 2/2
Desarrollo de aplicaciones multiplataforma 2/2Ignacio Muñoz Vicente
 
Angular js Frontenders Valencia
Angular js Frontenders ValenciaAngular js Frontenders Valencia
Angular js Frontenders ValenciaJavier Ruiz
 
Desarrollo de aplicaciones móviles con Ionic y Apache Cordova
Desarrollo de aplicaciones móviles con Ionic y Apache CordovaDesarrollo de aplicaciones móviles con Ionic y Apache Cordova
Desarrollo de aplicaciones móviles con Ionic y Apache CordovaAlián Rigñack Quevedo
 
Aplicaciones híbridas con HTML5, JavaScript e Icenium
Aplicaciones híbridas con HTML5, JavaScript e IceniumAplicaciones híbridas con HTML5, JavaScript e Icenium
Aplicaciones híbridas con HTML5, JavaScript e IceniumJulito Avellaneda
 
Ionic y angular.js
Ionic y angular.jsIonic y angular.js
Ionic y angular.jsGDG Cali
 
Consideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativasConsideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativasSoftware Guru
 
Hack2Progress - Desarrollando una aplicación web con AngularJS
Hack2Progress - Desarrollando una aplicación web con AngularJSHack2Progress - Desarrollando una aplicación web con AngularJS
Hack2Progress - Desarrollando una aplicación web con AngularJSCarlos Azaustre
 
Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Ignacio Muñoz Vicente
 
Analitics: Monitoriza tus aplicaciones móviles
Analitics: Monitoriza tus aplicaciones móvilesAnalitics: Monitoriza tus aplicaciones móviles
Analitics: Monitoriza tus aplicaciones móvilesPlain Concepts
 
Programación Web - Introducción
Programación Web - IntroducciónProgramación Web - Introducción
Programación Web - IntroducciónYesith Valencia
 
Desarrollo de apps móviles con Apache Cordova
Desarrollo de apps móviles con Apache CordovaDesarrollo de apps móviles con Apache Cordova
Desarrollo de apps móviles con Apache CordovaSoftware Guru
 
Spsmad2016:Un SharePoint enla mochila
Spsmad2016:Un SharePoint enla mochilaSpsmad2016:Un SharePoint enla mochila
Spsmad2016:Un SharePoint enla mochilaRobert Bermejo Blasco
 
Diseñando aplicaciones multiplataforma con Xamarin
Diseñando aplicaciones multiplataforma con XamarinDiseñando aplicaciones multiplataforma con Xamarin
Diseñando aplicaciones multiplataforma con XamarinSoftware Guru
 
Introducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLIntroducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLSorey García
 
Un Vistazo A Windows Presentation Foundation
Un Vistazo A Windows Presentation FoundationUn Vistazo A Windows Presentation Foundation
Un Vistazo A Windows Presentation Foundationjuliocasal
 

What's hot (20)

Desarrollo de aplicaciones multiplataforma 2/2
Desarrollo de aplicaciones multiplataforma 2/2Desarrollo de aplicaciones multiplataforma 2/2
Desarrollo de aplicaciones multiplataforma 2/2
 
Angular js Frontenders Valencia
Angular js Frontenders ValenciaAngular js Frontenders Valencia
Angular js Frontenders Valencia
 
Desarrollo de aplicaciones móviles con Ionic y Apache Cordova
Desarrollo de aplicaciones móviles con Ionic y Apache CordovaDesarrollo de aplicaciones móviles con Ionic y Apache Cordova
Desarrollo de aplicaciones móviles con Ionic y Apache Cordova
 
[Code Camp 2009] Introducción a ASP.NET 4.0 con Visual Studio 2010 (Ignacio L...
[Code Camp 2009] Introducción a ASP.NET 4.0 con Visual Studio 2010 (Ignacio L...[Code Camp 2009] Introducción a ASP.NET 4.0 con Visual Studio 2010 (Ignacio L...
[Code Camp 2009] Introducción a ASP.NET 4.0 con Visual Studio 2010 (Ignacio L...
 
Aplicaciones híbridas con HTML5, JavaScript e Icenium
Aplicaciones híbridas con HTML5, JavaScript e IceniumAplicaciones híbridas con HTML5, JavaScript e Icenium
Aplicaciones híbridas con HTML5, JavaScript e Icenium
 
Ionic y angular.js
Ionic y angular.jsIonic y angular.js
Ionic y angular.js
 
Consideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativasConsideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativas
 
Hack2Progress - Desarrollando una aplicación web con AngularJS
Hack2Progress - Desarrollando una aplicación web con AngularJSHack2Progress - Desarrollando una aplicación web con AngularJS
Hack2Progress - Desarrollando una aplicación web con AngularJS
 
Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2
 
Analitics: Monitoriza tus aplicaciones móviles
Analitics: Monitoriza tus aplicaciones móvilesAnalitics: Monitoriza tus aplicaciones móviles
Analitics: Monitoriza tus aplicaciones móviles
 
Apps web vs apps nativas
Apps web vs apps nativasApps web vs apps nativas
Apps web vs apps nativas
 
Programación Web - Introducción
Programación Web - IntroducciónProgramación Web - Introducción
Programación Web - Introducción
 
Desarrollo de apps móviles con Apache Cordova
Desarrollo de apps móviles con Apache CordovaDesarrollo de apps móviles con Apache Cordova
Desarrollo de apps móviles con Apache Cordova
 
introducción a xamarin
  introducción a xamarin  introducción a xamarin
introducción a xamarin
 
Spsmad2016:Un SharePoint enla mochila
Spsmad2016:Un SharePoint enla mochilaSpsmad2016:Un SharePoint enla mochila
Spsmad2016:Un SharePoint enla mochila
 
JQuery
JQueryJQuery
JQuery
 
Introducción a Kendo UI
Introducción a Kendo UIIntroducción a Kendo UI
Introducción a Kendo UI
 
Diseñando aplicaciones multiplataforma con Xamarin
Diseñando aplicaciones multiplataforma con XamarinDiseñando aplicaciones multiplataforma con Xamarin
Diseñando aplicaciones multiplataforma con Xamarin
 
Introducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLIntroducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAML
 
Un Vistazo A Windows Presentation Foundation
Un Vistazo A Windows Presentation FoundationUn Vistazo A Windows Presentation Foundation
Un Vistazo A Windows Presentation Foundation
 

Similar to Esencia de Web Components

Introducción a Backbone
Introducción a BackboneIntroducción a Backbone
Introducción a BackboneOscar Gensollen
 
Prueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriverPrueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriverDavid Gómez García
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007guest976d083
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007guestd24c393
 
Intro a ASP.NET
Intro a ASP.NETIntro a ASP.NET
Intro a ASP.NETwilliamsm
 
Desarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EEDesarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EEFernando Montaño
 
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.pptintroduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.pptBYRONMIGUELSUBUYUCPA
 
Guia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component DeveloperGuia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component DeveloperOscar V
 

Similar to Esencia de Web Components (20)

Introducción a Backbone
Introducción a BackboneIntroducción a Backbone
Introducción a Backbone
 
ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3
 
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
 
El Nuevo Internet Explorer 9
El Nuevo Internet Explorer 9El Nuevo Internet Explorer 9
El Nuevo Internet Explorer 9
 
Arquitectura
Arquitectura Arquitectura
Arquitectura
 
Presentacion node
Presentacion nodePresentacion node
Presentacion node
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Charla
CharlaCharla
Charla
 
Asp.net mvc
Asp.net mvcAsp.net mvc
Asp.net mvc
 
Prueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriverPrueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriver
 
J2 ee
J2 eeJ2 ee
J2 ee
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007
 
Intro a ASP.NET
Intro a ASP.NETIntro a ASP.NET
Intro a ASP.NET
 
Desarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EEDesarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EE
 
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.pptintroduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
 
Guia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component DeveloperGuia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component Developer
 

More from Pedro J. Molina

dotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
dotnetMalaga-2020 Gestión de la configuración en aplicaciones WebdotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
dotnetMalaga-2020 Gestión de la configuración en aplicaciones WebPedro J. Molina
 
Infrastructure as Code with Terraform
Infrastructure as Code with TerraformInfrastructure as Code with Terraform
Infrastructure as Code with TerraformPedro J. Molina
 
LangDev 2022 Metamodeling on the Web with Essential
LangDev 2022 Metamodeling on the Web with EssentialLangDev 2022 Metamodeling on the Web with Essential
LangDev 2022 Metamodeling on the Web with EssentialPedro J. Molina
 
Essential as the base for Web DSLs
Essential as the base for Web DSLsEssential as the base for Web DSLs
Essential as the base for Web DSLsPedro J. Molina
 
ACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. Molina
ACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. MolinaACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. Molina
ACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. MolinaPedro J. Molina
 
Esencia de web components
Esencia de web componentsEsencia de web components
Esencia de web componentsPedro J. Molina
 
Securizando por construcción mediante MDE
Securizando por construcción mediante MDESecurizando por construcción mediante MDE
Securizando por construcción mediante MDEPedro J. Molina
 
Building APIs with the OpenApi Spec
Building APIs with the OpenApi SpecBuilding APIs with the OpenApi Spec
Building APIs with the OpenApi SpecPedro J. Molina
 
Micro vs Nano (servicios)
Micro vs Nano (servicios)Micro vs Nano (servicios)
Micro vs Nano (servicios)Pedro J. Molina
 
Diseño de APIs con OpenAPI
Diseño de APIs con OpenAPIDiseño de APIs con OpenAPI
Diseño de APIs con OpenAPIPedro J. Molina
 
SVQDC 2017 Tecnologías para Microservicios
SVQDC 2017 Tecnologías para MicroserviciosSVQDC 2017 Tecnologías para Microservicios
SVQDC 2017 Tecnologías para MicroserviciosPedro J. Molina
 
Tecnologías para microservicios
Tecnologías para microserviciosTecnologías para microservicios
Tecnologías para microserviciosPedro J. Molina
 
Opensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN StackOpensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN StackPedro J. Molina
 

More from Pedro J. Molina (20)

MDE en la industria
MDE en la industriaMDE en la industria
MDE en la industria
 
Terraform
TerraformTerraform
Terraform
 
dotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
dotnetMalaga-2020 Gestión de la configuración en aplicaciones WebdotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
dotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
 
Infrastructure as Code with Terraform
Infrastructure as Code with TerraformInfrastructure as Code with Terraform
Infrastructure as Code with Terraform
 
LangDev 2022 Metamodeling on the Web with Essential
LangDev 2022 Metamodeling on the Web with EssentialLangDev 2022 Metamodeling on the Web with Essential
LangDev 2022 Metamodeling on the Web with Essential
 
Are Startups for me?
Are Startups for me?Are Startups for me?
Are Startups for me?
 
Meow Demo
Meow DemoMeow Demo
Meow Demo
 
Essential as the base for Web DSLs
Essential as the base for Web DSLsEssential as the base for Web DSLs
Essential as the base for Web DSLs
 
ACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. Molina
ACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. MolinaACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. Molina
ACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. Molina
 
Esencia de web components
Esencia de web componentsEsencia de web components
Esencia de web components
 
OpenAPI 3.0.2
OpenAPI 3.0.2OpenAPI 3.0.2
OpenAPI 3.0.2
 
Quid
QuidQuid
Quid
 
Securizando por construcción mediante MDE
Securizando por construcción mediante MDESecurizando por construcción mediante MDE
Securizando por construcción mediante MDE
 
Building APIs with the OpenApi Spec
Building APIs with the OpenApi SpecBuilding APIs with the OpenApi Spec
Building APIs with the OpenApi Spec
 
Micro vs Nano (servicios)
Micro vs Nano (servicios)Micro vs Nano (servicios)
Micro vs Nano (servicios)
 
Diseño de APIs con OpenAPI
Diseño de APIs con OpenAPIDiseño de APIs con OpenAPI
Diseño de APIs con OpenAPI
 
SVQDC 2017 Tecnologías para Microservicios
SVQDC 2017 Tecnologías para MicroserviciosSVQDC 2017 Tecnologías para Microservicios
SVQDC 2017 Tecnologías para Microservicios
 
Introducción a Angular
Introducción a AngularIntroducción a Angular
Introducción a Angular
 
Tecnologías para microservicios
Tecnologías para microserviciosTecnologías para microservicios
Tecnologías para microservicios
 
Opensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN StackOpensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN Stack
 

Recently uploaded

Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfAnaRosaMontenegro
 
Se realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsSe realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsCZSOTEC
 
SQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxSQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxRAMIROANTONIOGALINDO
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.CZSOTEC
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptxmaykolmagallanes012
 

Recently uploaded (7)

Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdf
 
Se realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsSe realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios Windows
 
SQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxSQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptx
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptx
 

Esencia de Web Components

  • 1. Esencia de Web Components Pedro J. Molina http://pjmolina.com @pmolinamhttps://metadev.pro
  • 4. Interfaz de Usuario: un poco de Arqueología Cliente Servidor SPA / JS ASP.NET JSP Ruby Silverlight / Flash / Applets Clientes pesados (.NET, Java Swing) PHP CGI Visual Basic / Delphi Mainframe / Terminales VT52/VT100
  • 5. Interfaz de Usuario: un poco de Arqueología
  • 6. Interfaz de Usuario: un poco de Arqueología Arquitecturas Model View Controller (Smalltalk ’80) Model View Presenter (IBM ’90) Model View View-Model (MS ‘99) Reactivas (ReactJS) Unidireccionales (CycleJS) Model View Update (Eml) Orientadas a Componentes (VB 1.0 ‘91)
  • 7. Interfaz de Usuario: un poco de Arqueología Visual Basic 1.0, 1991 Sobre Windows 3.11 Alan Cooper para Microsoft  Componentes  Propiedades  Eventos  Paleta de componentes reutilizable
  • 8. Web Components ¿Qué son? Componentes Propiedades Eventos Paleta de componentes reutilizable El modelo de Visual Basic y Delphi en la Web, ¡27 años después!
  • 9. Web Components. Estándares base 1. Custom Elements 2. HTML Templates 3. Shadow DOM 4. HTML Imports ES Modules
  • 10. 1. Custom Elements  La posibilidad de extender el lenguaje HTML con elementos propios <div> <acme-calendar mode="month" date="2018-11-23" on-select="dateSelected()"> </acme-calendar> </div> En estandarización por la W3C https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements
  • 11. 1. Custom Elements. Ejemplo const templateCalendar = document.createElement('template'); templateCalendar.innerHTML = ` <h1>Calendar</h1> <table> … </table> `; class AcmeCalendar extends HTMLElement { constructor() { super(); } connectedCallback() {} disconnectedCallback() { } _render() {} } window.customElements.define(‘acme-calendar', AcmeCalendar);
  • 12. 2. HTMLTemplates Plantillas dentro de HTML En estandarización por la W3C https://html.spec.whatwg.org/multipage/scripting.html#the-template-element/ <template> <div class=“article"> <h1><slot name="title"></slot></h1> <hr/> <slot name="body"></slot> </div> </template>
  • 13. 3. Shadow DOM El DOM dentro de cada elemento del DOM Proporciona: Aislamiento (ámbitos) para código y estilos (CSS) Seguridad (encarcelar Javascript) En estandarización por la W3C https://w3c.github.io/webcomponents/spec/shadow/
  • 14. 3. Shadow DOM. Ejemplo constructor() { super(); } connectedCallback() { this.appendChild(templateCalendar.content.cloneNode(true)); } constructor() { super(); this._root = this.attachShadow({ 'mode': 'open' }); } connectedCallback() { this._root.appendChild(templateCalendar.content.cloneNode(true)); } SIN SHADOW-DOM CON SHADOW-DOM
  • 15. 4. HTML Imports vs ES Modules  HTML Imports  ES Modules <link rel="import" href="https://acme.org/acme-calendar.html"> <script type=“module" src="https://acme.org/acme-calendar.min.js"> </script>
  • 16. Estado actual.W3C 1. Custom Elements v.0 v.1 2. Shadow DOM v.0 v.1 3. HTML Templates 4. HTML Imports 5. ES Modules  ESM vs CommonJS en NodeJS https://medium.com/the-node-js-collection/the-current-state-of-implementation- and-planning-for-esmodules-a4ecb2aac07a HTTP/1  Budling vs HTTP/2 Bundles no necesarios
  • 17. Estado actual. Soporte en Navegadores. 05/2018
  • 18. Estado actual. Soporte en Navegadores. 11/2018
  • 19. Estado actual. Polyfills Lo que los navegadores no implementan todavía se puede cubrir extendiendo JavaScript con librerías. https://github.com/WebComponents/webcomponentsjs $ npm i webcomponents/webcomponentsjs
  • 20. Librerías para crearWeb Components  Native WebElements  Polymer 2 & 3  SkateJS  X-Tag  Slim.js  StencilJS  Angular Elements  Svelte  Vue WebComponents Wrapper  Repositorio con el ejemplo TODO List en varias tecnologías https://github.com/shprink/web-components-todo
  • 23. Quid. Un DSL mínimo para componerWebC DSL para prototipar Interfaz de Usuario Orientado a Web Components https://quid.metadev.pro #quid
  • 24. ¿Qué falta? 1. Consensos y cierre de estándares (ej. ES Modules) 2. Adopción en navegadores (desterrar polyfills) 3. Definición de tipos en componentes 4. Herramientas para consumir y componer Web Components
  • 25. Conclusiones  Web Components estandarizado por W3C  Ya disponible en tu navagador  Ecosistema de componentes en ebullición  ¡Aprovéchalo!