[Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

23
Deployment en Silverlight Leo Vernazza ComponentOne [email protected]

description

[Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

Transcript of [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

Page 1: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

Deployment en Silverlight

Leo Vernazza

ComponentOne

[email protected]

Page 2: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

• ComponentOne desde 2008

– Studio for Silverlight

– Desarrollo de los productos para Silverlight y WPF

• Antes

– Generación de UIs

– Model-driven development

– HCI, patrones de UI, etc

Sobre Mi

Page 3: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

• Experiencia de Usuario

• Opciones de deployment en Silverlight

• Herramientas que nos pueden ayudar

Agenda

Page 4: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

¿Qué es Experiencia de Usuario?

Page 5: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)
Page 6: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

• Prerequisitos no instalados

Mala Experiencia de Usuario

Page 7: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

Mala Experiencia de Usuario

Page 8: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

¿Qué es Experiencia de Usuario?

useful

desirable

valuable

usable

findable accesible

credible

Page 9: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

¿Qué es Experiencia de Usuario?

useful

desirable

valuable

usable

findable accesible

credible

Page 10: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

• Tiempo de carga

• Prerequisitos instalado

• Lenguajes

• Manejo de casos inesperados

• Tiempo de respuesta

¿Deployment?

accesible

usable

Page 11: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

• Tiempo de carga

• Prerequisitos instalado

• Lenguajes

• Manejo de casos inesperados

• Tiempo de respuesta

¿Deployment?

accesible

usable

Page 12: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

• Monolítica

• Mixta

• Pay as you go

Arquitecturas de Deployment

Módulos Funcionales Recursos

Típica aplicaciónSilverlight

Típica aplicaciónWeb

Page 13: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

• Por defecto

• 1 XAP (N dlls)

• Simple para desarrollar

• XAP fácilmente se llega a 1-2Mb

Arq. Monolítica

XAP

Libraries

Resoruces

App

Page 14: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

• Bajar contenido a demanda– Imagenes y videos para el sitio web

– Usa el caché del browser

Arq. Monolítica

XAP

Libraries

Resoruces

App

Page 15: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

Xap Xap

Browser ServerBrowserCaché

Arq. Monolítica

Browser ServerBrowserCaché

Page 16: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

• 1 XAP = N zips, 1 zip = N dlls

• Cada dll especifica a qué zip pertence

Assembly Cache

XAP

Zips

Resoruces

App

zip

Zips

Resoruces

App

*

Page 17: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

Xap

Zips

Xap

Zips

Browser ServerBrowserCaché

Assembly Cache

Browser ServerBrowserCaché

Xap2

Page 18: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

• <1mb… calmar el dolor:– Customizar la experiencia con un “splash screen”

¿Hay más opciones?

• >= 1mb… bisturí :– Bajar partes funcionales a demanda

Page 19: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

• Impacta en el desarrollo

– Requiere algún tipo de framework

– Generalmente basado en configuración + reflection

– Permite trabajar en proyectos grandes

• Ejemplos– MEF

– In house (Control Explorer)

Loading On Demand

Page 20: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

• ¿Qué incluye una aplicación?– Aplicación (main)

– Librerías específicas de la app

– Librerías reusables de la empresa

– Librerías reusables de terceros

Una opción más

Page 21: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

• Descubre dependencias en el codigo y el Xaml

• Elimina clases no usadas

XapOptimizer

Page 22: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

• Permite customizar el “prunning” (reflection)

• Guarda proyectos

• Se integra al proceso de build

• Ofuscación

• V2: cubre más escenarios– Detecta contenido que puede pasarse al sitio web

– Mejora splash screen

– Convierte un xap en muchos xaps (inyecta lógica de carga a demanda)

XapOptimizer Pro

Page 23: [Code Camp 2009] Hora de hacer Deploy en Silverlight (Leo Vernazza)

Preguntas

Leo Vernazza

ComponentOne

[email protected]

twitter.com/leovernazza

twitter.com/ComponentOne

ComponentOne.com

twitter.com/XapOptimizer