SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
Conociendo Silverlight desde las trincheras
Marcela A. Castagno                                     Leonardo Sailer
mixplay.tv                                                    Global Crossing
mcastagno@claxson.com                                Leo_sailer@hotmail.com

Pablo A. Menegol                                           Juan Ladetto
mixplay.tv                                                Microsoft Argentina
pmenegol@claxson.com                                    juanl@microsoft.com


    25 de Marzo 2009, Paseo La Plaza, Buenos Aires
Experiencias Sin importar
ricas en     el dispositivo
internet
Ofrecer
experiencias
de alta
calidad
Tecnología
robusta
Resultados
más rápidos
Marcela A. Castagno     Pablo A. Menegol
www.mixplay.tv          www.mixplay.tv
mcastagno@claxson.com   pmenegol@claxson.com
Mixplay.tv ayer
Mixplay.tv ayer
Mixplay.tv ayer
Mixplay.tv ayer
Más problemas con las tecnologías tradicionales

• Extensas jornadas de trabajo .
• Inconvenientes en desarrollos multiplaforma
  (browser y SO)
• Limitaciones o Condicionamientos en la
  creatividad del Producto.
• La “customización” de las aplicaciones siempre
  debían pasar por el equipo de Desarrollo.
Mixplay.tv hoy
Model View Controller
Mixplay.tv hoy
   Tecnologías que posibilitaron el cambio:

• Model View Controller

• REST

• Silverlight
Mixplay.tv hoy
                       Beneficios de Silverlight
• Interacción entre Desarrollo/Diseño.
    • Workflow más eficiente
    • Controles con diferentes interfaces.
    • Rápida adopción de nuevas herramientas.
    • Reutilización de las capacidades en C#.
• Interfaces más dinámicas y flexibles.
• eXtreme Programming (XP) interdisciplinario.
• Funcionalidades multiplataforma (browser y SO) sin
recodificar.
Mixplay.tv hoy
Interacción entre Desarrollo y Diseño
Mixplay.tv hoy
Interfaces Dinámicas y Flexibles
Mixplay.tv hoy
eXtreme Programming: ¿Con un diseñador?
Mixplay.tv hoy
Multiplataforma (Browser y SO)
Mixplay.tv hoy
                        Algunas “piedras en el camino”
• No maneja recursos dinámicos ni en cascadas.
• MS Blend no se integra a MS Visual Sourcesafe.
• Faltan funcionalidades relevante en la versión release 2
 de Silverlight.
   •   Implementación de Triggers
   •   Datasource en XML
   •   Cantidad limitada de layouts y controles
• Incompatibilidades de XAML entre Visual Studio y Blend.
• Problemas de herencia de Objetos en Blend.
• No puede utilizarse Motion path o importar swf o psd en
 Blend
Mixplay.tv hoy
El resultado de nuestro desafío
mcastagno@claxson.com | pmenegol@claxson.com
                              www.mixplay.tv
Ing. Leonardo Sailer
 Application Architect
IT - Latin American & Caribbean
                                  Nuestra Experiencia
Leo_sailer@hotmail.com
2007: Comienzos
Necesidad: Visualización y Monitoreo de las redes de comunicaciones.
Desafío: Como implementar una Solución efectiva y eficaz sin
   incorporar nuevos recursos, procurando que los clientes “vean lo
   mismo que nosotros”.
Objetivos:
       Visualización de la documentación de la red en forma esquemática. (tipo Visio ).
       Monitoreo de eventos, no solo de caídas de red sino también de performance.
       Único repositorio de datos (evitar inconsistencias en Service Assurance).
       Minimizar equipos de desarrollo, mantenimiento y helpdesk.
       Aprovechamiento de la Estructura Interna Existente (DokuViz - ActiveX)

                                   Solución:
Nace Dokulight en base al Silverlight 1.0 beta
DokuLight = LOB Silverlight
Ventajas
     Repositorio Único, Clientes e Ingenieros ven lo mismo.
     Updates y Nuevos Releases simplificados.
     Interface de Usuario web enriquecida.
     Team de desarrollo y Help Desk Unificado.
     Mínima inversión monetaria.
     Integración total con el OSS Interno. (Operation Support Services).
     Managed Code - .Net Improvements, WPF = Rich interface, Multiplataforma.
     Menor “peso” de Instalación comparada a un ActiveX. (6Mb a 15Mb).


Desventajas
     No existían controles comerciales disponibles ( hubo que implementar cosas básicas,
     toolbars, move, resize, shapes, lines, etc)
     Escasa Documentación.
     Versiones Betas con cambios importantes que obligaban a reconsiderar patrones
     adoptados (ej RenderAsBitmap.) y pobre integración con Blend.
2008
Dokulight v:2.1.3365 con Silverlight 2.0.31005.0
     100% del Código sin Componentes Externos, en VB.NET.
     90% de GUI Implementada.
     Navegación básica implementada.
     Integrado al OSS con visualización de eventos, usando State Management.
     GeoCoding para las Ubicaciones de Clientes, usando MultiScaleImage, Deep Zoom
     y LiveMaps Imaginery.
     Web Services Async para la obtención de los datos.
     MultiThreading para el rendering de los objetos de pantallas.
     Implementación de Isolated Storage para persistencia de datos.
     Serialization para trabajo offline.
     Testeado con Internet Explorer, Safari, FireFox y Opera.
Isolated Storage
 Resguardo                                Persistencia de datos
Dim IOSTREAM As IsolatedStorageFileStream
Dim store As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication()

If Not store.DirectoryExists(subDirName) Then   store.CreateDirectory(subDirName)

If Not store.FileExists(sfilename)Then
   IOSTREAM = store.CreateFile(sFile)
Else
     IOSTREAM = store.OpenFile(sFile, IO.FileMode.Truncate)
End If

IOSTREAM.Write( . . . .   .
IOSTREAM.Close()


Recuperación
IOSTREAM = store.OpenFile(sFile, IO.FileMode.Open)
IOSTREAM.Read( . . . . .
Asynchronous Web Services
 Llamada al WS                    Recepción de Datos
Dim wsNMS As SrvNMSDK.NMSDKLSrvSoapClient = GetWsMNGTClass.GetWS
Dim Request As New SrvNMSDK.GetScreenReq

AddHandler wsNMS.GetScreenCompleted, AddressOf GetScreenCompleted
wsNMS.GetScreenAsync(Request, Screen)

Recepción WS
Private Sub GetScreenCompleted(ByVal sender As Object, ByVal e As
SrvNMSDK.GetScreenCompletedEventArgs)

If e Is Nothing OrElse e.Result Is Nothing Then . . . .

If e.Result.ErrorResp IsNot Nothing     Then . . . .

If e.Result.DkvData Is Nothing Then . . . .

Dim ScreenData() As SrvNMSDK.DvData = e.Result.DkvData

If ScreenData.Length > 0 Then . . . .
Multithreading
Llamada Worker               Procesando en Background
Dim MyThre As New System.ComponentModel.BackgroundWorker

AddHandler MyThre.DoWork, AddressOf ProcRRGetScreenDoWork
AddHandler MyThre.ProgressChanged, AddressOf ProcRRGetScreenChanged
AddHandler MyThre.RunWorkerCompleted, AddressOf ProcRRGetScreenCompleted

MyThre.WorkerReportsProgress = True
MyThre.RunWorkerAsync(e.Result.DkvData)


Ejecución Worker
Private Sub ProcRRGetScreenDoWork(ByVal sender As Object, ByVal e As
System.ComponentModel.DoWorkEventArgs)

Dim bck As System.ComponentModel.BackgroundWorker = CType(sender,
System.ComponentModel.BackgroundWorker)

Dim ScreenData() As SrvNMSDK.DvData = CType(e.Argument, SrvNMSDK.DvData())

ThisPage.Dispatcher.BeginInvoke(PrgBarInitialDispatcher, MyNodes.Count - 1, 0, 0)
Geocoding
Manejo de los Mapas                          DeepZoom, LiveMaps
http://www.codeplex.com/deepearth/
msi.Source = New VETileSource(MapStyle.Aerial, String.Format("{0}/VE_files",
InputParam.Path).ToString)

Public Sub New(ByVal mapStyleval As MapStyle, ByVal Path As String)
  MyBase.New(134217728, 134217728, 256, 256, 0)
  myActiveMapStyle = mapStyleval
  mPath = Path
End Sub

Private   Const   Protocol As String = http://
Private   Const   Suffix As String = ".jpeg?g=159“
Private   Const   TilePath As String = ".ortho.tiles.virtualearth.net/tiles/“
Private   mPath   As String = http://{Path}/VE_files

Dim p As Point = clsMapHelper.LatLongToPoint(latLong, myMSI)
opin.SetValue(Canvas.TopProperty, p.Y)
opin.SetValue(Canvas.LeftProperty, p.X)
VisualState Manager
Definición                        Visualización de Eventos
<vsm:VisualStateManager.VisualStateGroups>
  <vsm:VisualStateGroup x:Name="NMS_States">
     <vsm:VisualStateGroup.Transitions>
        <vsm:VisualTransition GeneratedDuration="00:00:00.2500000" To="State1R" />

<vsm:VisualState x:Name="State1R">
Storyboard.TargetProperty="(Panel.Background).(GradientBrush.GradientStops)[1].(Gradien
tStop.Color)">
<SplineColorKeyFrame KeyTime="00:00:00" Value="#FF00FF00"/>
<ColorAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000"
Storyboard.TargetName="LayoutRoot"


Ejecución
VisualStateManager.GoToState(oIcon, "State1R" , True)
2009+
Próximos Pasos
    Migración a Silverlight 3.
    Mejoras visuales, integrar a un Diseñador al equipo.
    Implementación de Temas.
    Gráficos básicos de performance y de eventos.
    Análisis / implementación de Componentes Externos
    (AddFlow Lasalle, Dundas Charts, WebAqua Toolbars y
    Controls ).
http://silverlight.net/Community/
http://silverlight.net/Learn/                              Leo_sailer@hotmail.com
http://silverlight.net/forums/
http://www.codeplex.com/deepearth

•Joe Stegman's Blog     http://blogs.msdn.com/jstegman/
•Scott Guthrie Blog      http://weblogs.asp.net/scottgu/
• Tim Heuer’s Blog      http://timheuer.com/blog/
•Mike Harsh's Blog      http://blogs.msdn.com/mharsh/
•Somasegar's BLog       http://blogs.msdn.com/somasegar/
•Laurence Moroney's Blog http://blogs.msdn.com/webnext/
•Tim Sneath's Blog      http://blogs.msdn.com/tims/
•Dave L. Campbell's Blog http://www.wynapse.com/
Resumen
Isolated Storage    Asynchronous .net Web Services Calls
               Custom Controls
Asynchronous Web request Calls DLR      DeepZoom
DRM WMS
 Visual Basic
Visual Studio 2008
Expression Blend

C# Linq
                            Y mucho más
XAML
MultiThreading
                         Modelo de Integración paralela
Cómo empezar
                                       http://silverlight.net/getstarted


   Instalar Silverlight 2 runtime
   Bajar Visual Studio 2008 SP 1
     Microsoft Silverlight Tools for Visual Studio 2008 SP1
       Silverlight 2 application project template
       Silverlight 2 control library project template
   Expression Blend 2.0 SP 1
      Experiencias ricas
      Opciones de sync con Visual Studio
   Silverlight 2 SDK
   www.silverlight.net/learn
Silverlight 3
                                http://silverlight.net/getstarted/silverlight3
   Reproducción de video en formatos mpeg4 /H 264. Audio
    en formato AAC
   Soporte para:
          temas,
          cascade styles,
          nuevas animaciones
    60+ controles con código fuente
    Funciona fuera del browser
          detección de estado de conexión
          Sin necesidad de instalación
    Deep linking
    Multitouch
    Expression blend 3 con posibilidad de control de código
¿Sorteos?
Recuerde completar los
 formularios de evaluación
Marcela A. Castagno                   Leonardo Sailer
mixplay.tv                                  Global Crossing
mcastagno@claxson.com   leonardo.sailer@globalcrossing.com

Pablo A. Menegol                         Juan Ladetto
mixplay.tv                              Microsoft Argentina
pmenegol@claxson.com                  juanl@microsoft.com

Más contenido relacionado

Similar a (25.03) RUN 09 - Sesiones Desarrollo - SI 2.0

Similar a (25.03) RUN 09 - Sesiones Desarrollo - SI 2.0 (20)

[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
 
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxEFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
 
Creando Aplicaciones Web en el 2015
 Creando Aplicaciones Web en el 2015 Creando Aplicaciones Web en el 2015
Creando Aplicaciones Web en el 2015
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NET
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.net
 
Webinar interlat apps_2012_carlos_a-perez_españa
Webinar interlat apps_2012_carlos_a-perez_españaWebinar interlat apps_2012_carlos_a-perez_españa
Webinar interlat apps_2012_carlos_a-perez_españa
 
Webinar interlat apps_2012_carlos_a-perez_españa
Webinar interlat apps_2012_carlos_a-perez_españaWebinar interlat apps_2012_carlos_a-perez_españa
Webinar interlat apps_2012_carlos_a-perez_españa
 
APPS Aplicaciones móviles: Construyendo y publicando nuestro primera APPS mul...
APPS Aplicaciones móviles: Construyendo y publicando nuestro primera APPS mul...APPS Aplicaciones móviles: Construyendo y publicando nuestro primera APPS mul...
APPS Aplicaciones móviles: Construyendo y publicando nuestro primera APPS mul...
 
Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700
 
Renderizando la web del 2020
Renderizando la web del 2020Renderizando la web del 2020
Renderizando la web del 2020
 
Programacion juegos 3d combinada
Programacion juegos 3d combinadaProgramacion juegos 3d combinada
Programacion juegos 3d combinada
 
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
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007
 
Construyendo RIA con Silverlight 2
Construyendo RIA con Silverlight 2Construyendo RIA con Silverlight 2
Construyendo RIA con Silverlight 2
 
Mobile Day - Lecciones de vuelo
Mobile Day - Lecciones de vueloMobile Day - Lecciones de vuelo
Mobile Day - Lecciones de vuelo
 
Presentacion De Uxity - 05/2009
Presentacion De Uxity - 05/2009Presentacion De Uxity - 05/2009
Presentacion De Uxity - 05/2009
 
Novedades en XAML
Novedades en XAMLNovedades en XAML
Novedades en XAML
 
Cv dennys-jose-marquez-reyes-desarrollador-web
Cv dennys-jose-marquez-reyes-desarrollador-webCv dennys-jose-marquez-reyes-desarrollador-web
Cv dennys-jose-marquez-reyes-desarrollador-web
 
Descubriendo windows azure
Descubriendo windows azureDescubriendo windows azure
Descubriendo windows azure
 

Más de Microsoft Argentina y Uruguay [Official Space]

Más de Microsoft Argentina y Uruguay [Official Space] (20)

CodeCamp 2010 | Diez formas de escribir código (in)seguro
CodeCamp 2010 | Diez formas de escribir código (in)seguroCodeCamp 2010 | Diez formas de escribir código (in)seguro
CodeCamp 2010 | Diez formas de escribir código (in)seguro
 
CodeCamp 2010 | Efectos especiales con Silverlight
CodeCamp 2010 | Efectos especiales con SilverlightCodeCamp 2010 | Efectos especiales con Silverlight
CodeCamp 2010 | Efectos especiales con Silverlight
 
CodeCamp 2010 | FBI- Fácil Business Intelligence
CodeCamp 2010 | FBI- Fácil Business IntelligenceCodeCamp 2010 | FBI- Fácil Business Intelligence
CodeCamp 2010 | FBI- Fácil Business Intelligence
 
CodeCamp 2010 | Hyper-V en Windows Server 2008 R2 e interoperabilidad con Linux
CodeCamp 2010 | Hyper-V en Windows  Server 2008 R2 e interoperabilidad con LinuxCodeCamp 2010 | Hyper-V en Windows  Server 2008 R2 e interoperabilidad con Linux
CodeCamp 2010 | Hyper-V en Windows Server 2008 R2 e interoperabilidad con Linux
 
CodeCamp 2010 | Productividad mas allá de la velocidad de tus dedos (cazzulin...
CodeCamp 2010 | Productividad mas allá de la velocidad de tus dedos (cazzulin...CodeCamp 2010 | Productividad mas allá de la velocidad de tus dedos (cazzulin...
CodeCamp 2010 | Productividad mas allá de la velocidad de tus dedos (cazzulin...
 
CodeCamp 2010 | Desarrollo de videojuegos fuera de control
CodeCamp 2010 | Desarrollo de videojuegos fuera de controlCodeCamp 2010 | Desarrollo de videojuegos fuera de control
CodeCamp 2010 | Desarrollo de videojuegos fuera de control
 
CodeCamp 2010 | Recorriendo ocs 2010
CodeCamp 2010 | Recorriendo ocs 2010CodeCamp 2010 | Recorriendo ocs 2010
CodeCamp 2010 | Recorriendo ocs 2010
 
Novedades de vs 2010 y net 40
Novedades de vs 2010 y net 40Novedades de vs 2010 y net 40
Novedades de vs 2010 y net 40
 
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Visión técnica
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Visión técnica(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Visión técnica
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Visión técnica
 
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Services 3
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Services 3(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Services 3
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Services 3
 
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Moss
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Moss(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Moss
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Moss
 
(27.05) MOSSCA Invita - Búsqueda empresarial 2
(27.05) MOSSCA Invita - Búsqueda empresarial 2(27.05) MOSSCA Invita - Búsqueda empresarial 2
(27.05) MOSSCA Invita - Búsqueda empresarial 2
 
(27.05) MOSSCA Invita - Búsqueda empresarial 1
(27.05) MOSSCA Invita - Búsqueda empresarial 1(27.05) MOSSCA Invita - Búsqueda empresarial 1
(27.05) MOSSCA Invita - Búsqueda empresarial 1
 
(25.03) RUN 09 - Sesiones Desarrollo - Azure Live
(25.03) RUN 09 - Sesiones Desarrollo - Azure Live(25.03) RUN 09 - Sesiones Desarrollo - Azure Live
(25.03) RUN 09 - Sesiones Desarrollo - Azure Live
 
(22.04.2009) Cumuy Presenta - Novedades en la plataforma de desarrollo .NET ...
(22.04.2009) Cumuy Presenta -  Novedades en la plataforma de desarrollo .NET ...(22.04.2009) Cumuy Presenta -  Novedades en la plataforma de desarrollo .NET ...
(22.04.2009) Cumuy Presenta - Novedades en la plataforma de desarrollo .NET ...
 
(25.03) RUN 09 - Sesiones Desarrollo - WPF Silverlight
(25.03) RUN 09 - Sesiones Desarrollo - WPF Silverlight(25.03) RUN 09 - Sesiones Desarrollo - WPF Silverlight
(25.03) RUN 09 - Sesiones Desarrollo - WPF Silverlight
 
(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 2
(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 2(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 2
(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 2
 
(18.03.2009) Cumuy Invita - Iniciando el año conociendo nuevas tecnologías - ...
(18.03.2009) Cumuy Invita - Iniciando el año conociendo nuevas tecnologías - ...(18.03.2009) Cumuy Invita - Iniciando el año conociendo nuevas tecnologías - ...
(18.03.2009) Cumuy Invita - Iniciando el año conociendo nuevas tecnologías - ...
 
(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 1
(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 1(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 1
(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 1
 
(22.04.2009) Cumuy Presenta - Novedades en la plataforma de desarrollo .NET ...
(22.04.2009) Cumuy Presenta -  Novedades en la plataforma de desarrollo .NET ...(22.04.2009) Cumuy Presenta -  Novedades en la plataforma de desarrollo .NET ...
(22.04.2009) Cumuy Presenta - Novedades en la plataforma de desarrollo .NET ...
 

(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0

  • 1. Conociendo Silverlight desde las trincheras Marcela A. Castagno Leonardo Sailer mixplay.tv Global Crossing mcastagno@claxson.com Leo_sailer@hotmail.com Pablo A. Menegol Juan Ladetto mixplay.tv Microsoft Argentina pmenegol@claxson.com juanl@microsoft.com 25 de Marzo 2009, Paseo La Plaza, Buenos Aires
  • 2. Experiencias Sin importar ricas en el dispositivo internet
  • 6. Marcela A. Castagno Pablo A. Menegol www.mixplay.tv www.mixplay.tv mcastagno@claxson.com pmenegol@claxson.com
  • 7.
  • 11. Mixplay.tv ayer Más problemas con las tecnologías tradicionales • Extensas jornadas de trabajo . • Inconvenientes en desarrollos multiplaforma (browser y SO) • Limitaciones o Condicionamientos en la creatividad del Producto. • La “customización” de las aplicaciones siempre debían pasar por el equipo de Desarrollo.
  • 12.
  • 14. Mixplay.tv hoy Tecnologías que posibilitaron el cambio: • Model View Controller • REST • Silverlight
  • 15. Mixplay.tv hoy Beneficios de Silverlight • Interacción entre Desarrollo/Diseño. • Workflow más eficiente • Controles con diferentes interfaces. • Rápida adopción de nuevas herramientas. • Reutilización de las capacidades en C#. • Interfaces más dinámicas y flexibles. • eXtreme Programming (XP) interdisciplinario. • Funcionalidades multiplataforma (browser y SO) sin recodificar.
  • 16. Mixplay.tv hoy Interacción entre Desarrollo y Diseño
  • 18. Mixplay.tv hoy eXtreme Programming: ¿Con un diseñador?
  • 20. Mixplay.tv hoy Algunas “piedras en el camino” • No maneja recursos dinámicos ni en cascadas. • MS Blend no se integra a MS Visual Sourcesafe. • Faltan funcionalidades relevante en la versión release 2 de Silverlight. • Implementación de Triggers • Datasource en XML • Cantidad limitada de layouts y controles • Incompatibilidades de XAML entre Visual Studio y Blend. • Problemas de herencia de Objetos en Blend. • No puede utilizarse Motion path o importar swf o psd en Blend
  • 21. Mixplay.tv hoy El resultado de nuestro desafío
  • 23. Ing. Leonardo Sailer Application Architect IT - Latin American & Caribbean Nuestra Experiencia Leo_sailer@hotmail.com
  • 24. 2007: Comienzos Necesidad: Visualización y Monitoreo de las redes de comunicaciones. Desafío: Como implementar una Solución efectiva y eficaz sin incorporar nuevos recursos, procurando que los clientes “vean lo mismo que nosotros”. Objetivos: Visualización de la documentación de la red en forma esquemática. (tipo Visio ). Monitoreo de eventos, no solo de caídas de red sino también de performance. Único repositorio de datos (evitar inconsistencias en Service Assurance). Minimizar equipos de desarrollo, mantenimiento y helpdesk. Aprovechamiento de la Estructura Interna Existente (DokuViz - ActiveX) Solución: Nace Dokulight en base al Silverlight 1.0 beta
  • 25. DokuLight = LOB Silverlight Ventajas Repositorio Único, Clientes e Ingenieros ven lo mismo. Updates y Nuevos Releases simplificados. Interface de Usuario web enriquecida. Team de desarrollo y Help Desk Unificado. Mínima inversión monetaria. Integración total con el OSS Interno. (Operation Support Services). Managed Code - .Net Improvements, WPF = Rich interface, Multiplataforma. Menor “peso” de Instalación comparada a un ActiveX. (6Mb a 15Mb). Desventajas No existían controles comerciales disponibles ( hubo que implementar cosas básicas, toolbars, move, resize, shapes, lines, etc) Escasa Documentación. Versiones Betas con cambios importantes que obligaban a reconsiderar patrones adoptados (ej RenderAsBitmap.) y pobre integración con Blend.
  • 26. 2008 Dokulight v:2.1.3365 con Silverlight 2.0.31005.0 100% del Código sin Componentes Externos, en VB.NET. 90% de GUI Implementada. Navegación básica implementada. Integrado al OSS con visualización de eventos, usando State Management. GeoCoding para las Ubicaciones de Clientes, usando MultiScaleImage, Deep Zoom y LiveMaps Imaginery. Web Services Async para la obtención de los datos. MultiThreading para el rendering de los objetos de pantallas. Implementación de Isolated Storage para persistencia de datos. Serialization para trabajo offline. Testeado con Internet Explorer, Safari, FireFox y Opera.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31. Isolated Storage Resguardo Persistencia de datos Dim IOSTREAM As IsolatedStorageFileStream Dim store As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication() If Not store.DirectoryExists(subDirName) Then store.CreateDirectory(subDirName) If Not store.FileExists(sfilename)Then IOSTREAM = store.CreateFile(sFile) Else IOSTREAM = store.OpenFile(sFile, IO.FileMode.Truncate) End If IOSTREAM.Write( . . . . . IOSTREAM.Close() Recuperación IOSTREAM = store.OpenFile(sFile, IO.FileMode.Open) IOSTREAM.Read( . . . . .
  • 32. Asynchronous Web Services Llamada al WS Recepción de Datos Dim wsNMS As SrvNMSDK.NMSDKLSrvSoapClient = GetWsMNGTClass.GetWS Dim Request As New SrvNMSDK.GetScreenReq AddHandler wsNMS.GetScreenCompleted, AddressOf GetScreenCompleted wsNMS.GetScreenAsync(Request, Screen) Recepción WS Private Sub GetScreenCompleted(ByVal sender As Object, ByVal e As SrvNMSDK.GetScreenCompletedEventArgs) If e Is Nothing OrElse e.Result Is Nothing Then . . . . If e.Result.ErrorResp IsNot Nothing Then . . . . If e.Result.DkvData Is Nothing Then . . . . Dim ScreenData() As SrvNMSDK.DvData = e.Result.DkvData If ScreenData.Length > 0 Then . . . .
  • 33. Multithreading Llamada Worker Procesando en Background Dim MyThre As New System.ComponentModel.BackgroundWorker AddHandler MyThre.DoWork, AddressOf ProcRRGetScreenDoWork AddHandler MyThre.ProgressChanged, AddressOf ProcRRGetScreenChanged AddHandler MyThre.RunWorkerCompleted, AddressOf ProcRRGetScreenCompleted MyThre.WorkerReportsProgress = True MyThre.RunWorkerAsync(e.Result.DkvData) Ejecución Worker Private Sub ProcRRGetScreenDoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Dim bck As System.ComponentModel.BackgroundWorker = CType(sender, System.ComponentModel.BackgroundWorker) Dim ScreenData() As SrvNMSDK.DvData = CType(e.Argument, SrvNMSDK.DvData()) ThisPage.Dispatcher.BeginInvoke(PrgBarInitialDispatcher, MyNodes.Count - 1, 0, 0)
  • 34. Geocoding Manejo de los Mapas DeepZoom, LiveMaps http://www.codeplex.com/deepearth/ msi.Source = New VETileSource(MapStyle.Aerial, String.Format("{0}/VE_files", InputParam.Path).ToString) Public Sub New(ByVal mapStyleval As MapStyle, ByVal Path As String) MyBase.New(134217728, 134217728, 256, 256, 0) myActiveMapStyle = mapStyleval mPath = Path End Sub Private Const Protocol As String = http:// Private Const Suffix As String = ".jpeg?g=159“ Private Const TilePath As String = ".ortho.tiles.virtualearth.net/tiles/“ Private mPath As String = http://{Path}/VE_files Dim p As Point = clsMapHelper.LatLongToPoint(latLong, myMSI) opin.SetValue(Canvas.TopProperty, p.Y) opin.SetValue(Canvas.LeftProperty, p.X)
  • 35. VisualState Manager Definición Visualización de Eventos <vsm:VisualStateManager.VisualStateGroups> <vsm:VisualStateGroup x:Name="NMS_States"> <vsm:VisualStateGroup.Transitions> <vsm:VisualTransition GeneratedDuration="00:00:00.2500000" To="State1R" /> <vsm:VisualState x:Name="State1R"> Storyboard.TargetProperty="(Panel.Background).(GradientBrush.GradientStops)[1].(Gradien tStop.Color)"> <SplineColorKeyFrame KeyTime="00:00:00" Value="#FF00FF00"/> <ColorAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="LayoutRoot" Ejecución VisualStateManager.GoToState(oIcon, "State1R" , True)
  • 36.
  • 37. 2009+ Próximos Pasos Migración a Silverlight 3. Mejoras visuales, integrar a un Diseñador al equipo. Implementación de Temas. Gráficos básicos de performance y de eventos. Análisis / implementación de Componentes Externos (AddFlow Lasalle, Dundas Charts, WebAqua Toolbars y Controls ).
  • 38. http://silverlight.net/Community/ http://silverlight.net/Learn/ Leo_sailer@hotmail.com http://silverlight.net/forums/ http://www.codeplex.com/deepearth •Joe Stegman's Blog http://blogs.msdn.com/jstegman/ •Scott Guthrie Blog http://weblogs.asp.net/scottgu/ • Tim Heuer’s Blog http://timheuer.com/blog/ •Mike Harsh's Blog http://blogs.msdn.com/mharsh/ •Somasegar's BLog http://blogs.msdn.com/somasegar/ •Laurence Moroney's Blog http://blogs.msdn.com/webnext/ •Tim Sneath's Blog http://blogs.msdn.com/tims/ •Dave L. Campbell's Blog http://www.wynapse.com/
  • 39. Resumen Isolated Storage Asynchronous .net Web Services Calls Custom Controls Asynchronous Web request Calls DLR DeepZoom DRM WMS Visual Basic Visual Studio 2008 Expression Blend C# Linq Y mucho más XAML MultiThreading Modelo de Integración paralela
  • 40. Cómo empezar http://silverlight.net/getstarted  Instalar Silverlight 2 runtime  Bajar Visual Studio 2008 SP 1  Microsoft Silverlight Tools for Visual Studio 2008 SP1  Silverlight 2 application project template  Silverlight 2 control library project template  Expression Blend 2.0 SP 1  Experiencias ricas  Opciones de sync con Visual Studio  Silverlight 2 SDK  www.silverlight.net/learn
  • 41. Silverlight 3 http://silverlight.net/getstarted/silverlight3  Reproducción de video en formatos mpeg4 /H 264. Audio en formato AAC  Soporte para:  temas,  cascade styles,  nuevas animaciones 60+ controles con código fuente Funciona fuera del browser  detección de estado de conexión  Sin necesidad de instalación Deep linking Multitouch Expression blend 3 con posibilidad de control de código
  • 42. ¿Sorteos? Recuerde completar los formularios de evaluación
  • 43. Marcela A. Castagno Leonardo Sailer mixplay.tv Global Crossing mcastagno@claxson.com leonardo.sailer@globalcrossing.com Pablo A. Menegol Juan Ladetto mixplay.tv Microsoft Argentina pmenegol@claxson.com juanl@microsoft.com