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

Post on 08-Jul-2015

219 views 0 download

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)

Deployment en Silverlight

Leo Vernazza

ComponentOne

leov@componentOne.com

• 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

• Experiencia de Usuario

• Opciones de deployment en Silverlight

• Herramientas que nos pueden ayudar

Agenda

¿Qué es Experiencia de Usuario?

• Prerequisitos no instalados

Mala Experiencia de Usuario

Mala Experiencia de Usuario

¿Qué es Experiencia de Usuario?

useful

desirable

valuable

usable

findable accesible

credible

¿Qué es Experiencia de Usuario?

useful

desirable

valuable

usable

findable accesible

credible

• Tiempo de carga

• Prerequisitos instalado

• Lenguajes

• Manejo de casos inesperados

• Tiempo de respuesta

¿Deployment?

accesible

usable

• Tiempo de carga

• Prerequisitos instalado

• Lenguajes

• Manejo de casos inesperados

• Tiempo de respuesta

¿Deployment?

accesible

usable

• Monolítica

• Mixta

• Pay as you go

Arquitecturas de Deployment

Módulos Funcionales Recursos

Típica aplicaciónSilverlight

Típica aplicaciónWeb

• Por defecto

• 1 XAP (N dlls)

• Simple para desarrollar

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

Arq. Monolítica

XAP

Libraries

Resoruces

App

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

– Usa el caché del browser

Arq. Monolítica

XAP

Libraries

Resoruces

App

Xap Xap

Browser ServerBrowserCaché

Arq. Monolítica

Browser ServerBrowserCaché

• 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

*

Xap

Zips

Xap

Zips

Browser ServerBrowserCaché

Assembly Cache

Browser ServerBrowserCaché

Xap2

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

¿Hay más opciones?

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

• 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

• ¿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

• Descubre dependencias en el codigo y el Xaml

• Elimina clases no usadas

XapOptimizer

• 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

Preguntas

Leo Vernazza

ComponentOne

leov@componentOne.com

twitter.com/leovernazza

twitter.com/ComponentOne

ComponentOne.com

twitter.com/XapOptimizer