miércoles 7 de mayo de 2008

Changing Skinn at runtime

A lot of post teach how to make template skinks for silverlighr controls but I'did not find a solution to change these skinns at runtime. I saw some post telling that it's not supported at runtime in SL2. So here our solution (notice that this is "like" code since I have problems editing:

1 - In the App.xaml, define the skinn just as a Control Template, NOT like a Style

Coment this lines:
Style x:Key="inniciaiPhoneButtonBlack" TargetType="Button"
Setter Property="IsEnabled" Value="true" ....
Setter Property="Template"
Setter.Value
And change the Control Template tag for
ControlTemplate To
ControlTemplate x:Key="inniciaiPhoneButtonBlack" TargetType="Button"
Then continue with the template definition as usual.

2 - In code:
We asume that you have this button on your page (xaml):
Button Template="{StaticResource mybuttonTemplate} x:Name="mybutton"

So when you run the application your button will render with the (mybuttonTemplate) look and fell, then just do in the code behind:

mybutton.Template = (ControlTemplate)(Application.Current.Resources[inniciaiPhoneButtonBlack]);

...And now your button will have the [inniciaiPhoneButtonBlack] look & fell.

Of course this is just a beginning, then we should figure out how to change the entire application skinn... may be subscribing all our controls to an event?

Hope it's help, fell free to ask for any doubt or to sugest a better way to do this.




lunes 17 de marzo de 2008

Expression Blend 2.5 + Silverlight con VB

Retomando el post anterior, y siguiendo la linea de los tutoriales de Scott dejamos disponible el codigo fuente en VB del "First Look at Using Expression Blend with Silverlight 2"...zip

sábado 15 de marzo de 2008

Silverlight 2.0 con Visual Basic

No es novedad el lanzamiento de la versión 2.0 Beta de Silverlight, ni la potencia que nos ofrece el Preview 2.5 del Blend, tampoco el excelente blog de Scott Gu. En este post solo tenemos la intención de dejarles disponible el código fuente del tutorial que allí pueden encontrar "First Look at Silverlight 2" pero en modalidad VB, dado que el post de Scott no cuenta aún con los fuentes, creímos recomendable y buen ejercicio (ya que habia que escribirlo desde cero) hacerlo en VB para razonar paso a paso y no limitarnos a copiarlo, obviamente es lo que tambien recomandamos a ustedes, pero por si acaso... acá esta...VB Code

jueves 21 de febrero de 2008

Introducción a Silverlight

Dado que este es nuestro primer post relacionado con Silverlight, queriamos citar un breve resumen de esta tecnologia, la cual obtuvimos gracias al blog de Jorge Garcia. Aqui va...

Silverlight es un nuevo avance para desarrollos de aplicaciones web. Las principales ventajas que se observan son:

- Provee un framework de diseño independiente del control de la página, lo que le da herramientas reales a los diseñadores que no necesitan la intervención de un programador.
- Permite que la misma aplicación se ejecute en diferentes web browsers.
- Utiliza Windows Presentation Fundation (WPF) como herramienta para el desarrollo.
- Incluye Language Integrated Query (LINQ) lo que permite acceso a datos.
- Posee soporte para ejecutar scripting bajo JavaScript
- Se integra con las tecnologías ya existentes (.Net AJAX, Phyton, Ruby, JavaScript, WebServices, etc).
- Permite un manejo fácil de elementos multimedia (video, sonido).

Arquitectura

La arquitectura de Silverlight se divide en 2 partes:

- El Core Presentation Fundation que es básicamente un Software Development Kit (SDK) que permite la renderización de elementos de interfase, control de eventos de usuario (clicks, teclado, etc), un conjunto de elementos de interfase (UIElements) con valor agregado respecto de los UIElements que se encuentran en .Net 2.0 (en la versión 1.1) y permite la ejecución de elementos multimedia (en la versión 1.1) todo del lado del cliente!!!. Para utilizarlo hay que instalar un plugin (que permite ejecutar los componentes en un área restringida de la máquina cliente) y es multi-browser (o sea, se puede implementar un plug-in para distintos web browsers). Toda la programación de esta capa puede hacerse mediante scripting.

- El Framework .Net de Silverlight que es básicamente un subconjunto del Framework .Net que implementa herramientas para el manejo de datos (LINQ), Controles extendidos (WPF), DLR para interpretar scripting y herramientas para la conexión a accesos remotos. La versión 1.0 de Silverlight no tiene una implementación muy interesante de esta capa de la arquitectura, la versión 1.1 (todavía en desarrollo) incluye todas estas herramientas y agrega un CLR que implementa el manejo de los objetos de esta capa (se encarga del garbage collection, chequeo de tipos y manejo de excepciones).

- Para comunicarse entre las capas se utiliza un XAML Object (un Extensible Application Markup Language) que es básicamente un XML con un formato especializado (ver WPF).


Conclusión

En suma, Silverlight corre un poco más la barrera entre el diseño de la interfaz web y la programación en ASP.Net necesaria para lograr interactividad lo que facilita el diseño de la interfaz de la aplicación web. Además mejora la performance sobre todo en aplicaciones multimedia pues ejecuta muchas más cosas del lado cliente de la aplicación. Y permite hacer el desarrollo con la certeza de que la interfaz se ejecuta en los browser más populares sin necesidad de cambios.