SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
Esencia de
Web Components
Pedro J. Molina
http://pjmolina.com
@pmolinamhttps://metadev.pro #commitconf
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!
¿Preguntas?
@pmolinam #commitconf
¡Gracias!
@pmolinam #commitconf

Contenu connexe

Tendances

Introducción a Zend Framework
Introducción a Zend FrameworkIntroducción a Zend Framework
Introducción a Zend FrameworkIrontec
 
Opensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN StackOpensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN StackPedro J. Molina
 
Desarrollo Web con ASP.NET MVC
Desarrollo Web con ASP.NET MVCDesarrollo Web con ASP.NET MVC
Desarrollo Web con ASP.NET MVCAngel Nuñez
 
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
 
ASP.NET MVC (2011)
ASP.NET MVC (2011)ASP.NET MVC (2011)
ASP.NET MVC (2011)wildtango
 
Login social con node.js
Login social con node.jsLogin social con node.js
Login social con node.jsCarlos Azaustre
 
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Rodolfo Finochietti
 
Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Oscar Gensollen
 
JBoss Forge y Eclipse Neon para aplicaciones Java EE 7
JBoss Forge y Eclipse Neon para aplicaciones Java EE 7JBoss Forge y Eclipse Neon para aplicaciones Java EE 7
JBoss Forge y Eclipse Neon para aplicaciones Java EE 7Víctor Leonel Orozco López
 
Curso Básico de AngularJS
Curso Básico de AngularJSCurso Básico de AngularJS
Curso Básico de AngularJSCarlos Azaustre
 
Curso de Desarrollo Web de Platzi
Curso de Desarrollo Web de PlatziCurso de Desarrollo Web de Platzi
Curso de Desarrollo Web de PlatziCarlos Azaustre
 
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7Luis Ruiz Pavón
 
Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010
Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010
Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010Desarrollos NEA
 

Tendances (20)

Inciando con AngularJS y JavaEE 7
Inciando con AngularJS y JavaEE 7Inciando con AngularJS y JavaEE 7
Inciando con AngularJS y JavaEE 7
 
Introducción a Zend Framework
Introducción a Zend FrameworkIntroducción a Zend Framework
Introducción a Zend Framework
 
Opensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN StackOpensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN Stack
 
Jsf
JsfJsf
Jsf
 
Desarrollo Web con ASP.NET MVC
Desarrollo Web con ASP.NET MVCDesarrollo Web con ASP.NET MVC
Desarrollo Web con ASP.NET MVC
 
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
 
Spring Mvc Final
Spring Mvc FinalSpring Mvc Final
Spring Mvc Final
 
ASP.NET MVC (2011)
ASP.NET MVC (2011)ASP.NET MVC (2011)
ASP.NET MVC (2011)
 
Login social con node.js
Login social con node.jsLogin social con node.js
Login social con node.js
 
Mitos y realidades de la seguridad en Java
Mitos y realidades de la seguridad en JavaMitos y realidades de la seguridad en Java
Mitos y realidades de la seguridad en Java
 
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
 
Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5
 
JBoss Forge y Eclipse Neon para aplicaciones Java EE 7
JBoss Forge y Eclipse Neon para aplicaciones Java EE 7JBoss Forge y Eclipse Neon para aplicaciones Java EE 7
JBoss Forge y Eclipse Neon para aplicaciones Java EE 7
 
Curso Básico de AngularJS
Curso Básico de AngularJSCurso Básico de AngularJS
Curso Básico de AngularJS
 
ASP.NET MVC Workshop Día 2
ASP.NET MVC Workshop Día 2ASP.NET MVC Workshop Día 2
ASP.NET MVC Workshop Día 2
 
Angularjs
AngularjsAngularjs
Angularjs
 
Curso de Desarrollo Web de Platzi
Curso de Desarrollo Web de PlatziCurso de Desarrollo Web de Platzi
Curso de Desarrollo Web de Platzi
 
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
 
Integrando AngularJS y drupal
Integrando AngularJS y drupalIntegrando AngularJS y drupal
Integrando AngularJS y drupal
 
Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010
Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010
Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010
 

Similaire à 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
 
Intro a ASP.NET
Intro a ASP.NETIntro a ASP.NET
Intro a ASP.NETwilliamsm
 
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
 
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
 
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8Sorey García
 
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
 
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
 

Similaire à 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
 
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
 
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
 
Charla
CharlaCharla
Charla
 
Asp.net mvc
Asp.net mvcAsp.net mvc
Asp.net mvc
 
J2 ee
J2 eeJ2 ee
J2 ee
 
Intro a ASP.NET
Intro a ASP.NETIntro a ASP.NET
Intro a ASP.NET
 
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
 
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
 
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
 
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
 
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
 

Plus de 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
 
Hivepod: Casos de uso en OpenData
Hivepod: Casos de uso en OpenDataHivepod: Casos de uso en OpenData
Hivepod: Casos de uso en OpenDataPedro J. Molina
 

Plus de 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
 
Hivepod: Casos de uso en OpenData
Hivepod: Casos de uso en OpenDataHivepod: Casos de uso en OpenData
Hivepod: Casos de uso en OpenData
 

Dernier

Caso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business CentralCaso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business CentralAitana
 
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
 
Evaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdfEvaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdfGuillermoBarquero7
 
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOSESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOSBeatrizGonzales19
 
Trabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - OfimáticaTrabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - OfimáticaKANTUPAULAPORCELYUCR
 
2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptxEncomiendasElSherpa
 

Dernier (6)

Caso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business CentralCaso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business Central
 
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
 
Evaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdfEvaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdf
 
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOSESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
 
Trabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - OfimáticaTrabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - Ofimática
 
2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx
 

Esencia de web components

  • 1. Esencia de Web Components Pedro J. Molina http://pjmolina.com @pmolinamhttps://metadev.pro #commitconf
  • 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!