Archive

Posts Tagged ‘Parametros’

Como pasar parámetros desde HTML/JavaScript/ASP.NET hacia Silverlight (Parte I)

January 28th, 2011 No comments

Hola Universo:

En la mayoría de las ocasiones nuestros sitios web están desarrollados en mas de una tecnología por X o Y motivo. Gracias a uno de los beneficios fundamentales de Silverlight, interoperabilidad, es posible interactuar con otros lenguajes como es el caso de los mencionados en el titulo del post. En esta primera entrega comunicaremos HTML con Silverlight. Veamos como hacerlo!

HTML

El mas sencillo ya que HTML (versión 4) por si solo no permite obtener datos de forma dinámica. El mecanismo es utilizar InitParams en la etiqueta Object que es el “contenedor” de la aplicación Silverlight. Observa que en la propiedad value existen dos elementos: la llave o ID (ej. parametro1) y el valor (ej. Portugal)

Ahora pasaremos 3 argumentos (Pais1=Nicaragua, Pais2=México, Pais3=Colombia)

Pasos

1. Abre Visual Studio, crea un proyecto Silverlight, por esta vez trabajaremos una solución por ejemplo para que todo sea mas claro. En este caso quita el check para generar un sitio Web.

1

2. Corre el proyecto (F5) y regresa a Visual Studio (VS), esto generara una pagina de pruebas (TestPage.html) en la siguiente ruta “Bin/Debug/” . Crea una nueva pagina HTML(en VS) a la que puedes llamar “pruebaHTML.html” en la misma ruta(Bin/Debug/)  y copia/pega el contenido de TestPage.html a la nueva página.

3. Ubícate en la etiqueta Object y agrega la siguiente línea:

La etiqueta Object quedaría de esta manera:

4. Hemos terminado con el HTML, pasemos a Silverlight.

El proyecto genera automáticamente el archivo app.xaml y su code-behind app.xaml.cs. Abre el ultimo y dirígete al método Application_Startup. Fijate en  StartupEventArgs e, interpretado al español significaría argumentos del evento de inicio, el objeto “e” contiene los parámetros que hemos transferido desde el código HTML. Lo que debemos hacer es gestionarlos de una forma mas sencilla.

Seguro recuerdas Resources, en el referencias brochas, estilos, etc. Ya que es accesible desde todo el proyecto lo utilizaremos. Con un ciclo agregamos a Resources como en una colección, los parámetros llaves y valor.

Para ahorrar código y aprovechar las bondades de XAML, implementaremos DataBinding para enlazar los datos obtenidos desde HTML hacia los controles de la aplicación Silverlight.

5. Crea una nueva clase en el proyecto con el nombre Parametros (Parametros.cs) y pega el siguiente código en la clase:

6. Abre MainPage.xaml  y diseña una interfaz que te quede de esta manera:

image

Puedes utilizar el panel que sea de tu comodidad pero los únicos requisitos son:

  • Asígnale el nombre “ControlPrincipal” al UserControl
  • A las cajas de texto (TextBox) asígnale los siguientes nombres:
    • txtPais
    • txtDept
    • txtCiudad

Te dejo el código del Grid por si quieres ahorrar trabajo:

  • Agrega a través de XAML o el panel de eventos, el evento Loaded al UserControl (ControlPrincipal)

7. Automáticamente se generara el evento en Code-Behind (MainPage.xaml.cs). Agrega en dicho evento el siguiente código:

El código no tiene mucha complejidad. Lo que hemos hecho es crear una instancia de la clase Parámetros (param) que codificamos anteriormente e inicializar sus atributos con valores. Observa la línea:

Con esto accedemos a los recursos de la aplicación actual, en corchetes miramos “Pais” que es la llave o ID pasada desde HTML, finalmente la transformamos al tipo string.

Por ultimo, establecemos el contexto de datos, en palabras mas sencillas, la fuente de la información del UserControl a través del objeto param.

8. Ya casi terminamos!, vuelve a MainPage.xaml, lo que haremos será enlazar a través de XAML los datos de la clase Parametros. Para esto simplemente agrega la siguiente propiedad a cada TextBox así:

Claro, lo único que cambiaras será la variable (txtCiudad –> ciudad). El XAML de los 3 TextBox queda así:

9. Lo único que queda será cambiar la pagina de inicio, TestPage.html por pruebaHTML.html.

image

10. Listo!! Corre (f5) y observa que los parámetros que pasaste desde HTML son los mismos en la app Silverlight.

image

Resumiendo el flujo es así:

HTML –> App.xaml.cs –> Parametros.cs –> MainPage.xaml.cs –> MainPage.xaml

Descarga

En el próximo post estableceremos comunicación entre JavaScript y Silverlight.

Compilación Completa!

Categories: Tutoriales Tags: ,

Silverlight 3 – Parámetros del objecto Tag

August 4th, 2009 No comments

Para crear un objeto Silverlight, debemos utilizar el objeto tag, ya que en Silverlight 3 ya no existe el objeto ASP.NET.

Leyendo el blog de Laurent Duveau, veo que ha puesto los distintos parámetros que podemos utilizar al crear un objeto Silverlight. Esto es importante ya que no tenemos Intellisense para crear el objeto. Pueden leer el post aquí.

Podemos tener una visualización de los parámetros si vamos a la documentación de MSDN, la cual no es lo más ágil ya que debemos entrar uno por uno para saber si aplica o no, además de ver su funcionalidad. Pueden ver la documentación aquí.

Esta es la lista de todos los parámetros

allowHtmlPopupWindow Establece si se permite utilizar el método HtmlPage.PopupWindow para mostrar una nueva ventana del explorador. Por defecto es true para aplicaciones en el mismo dominio, en otro caso es false.
autoUpgrade Establece si el plug-in intentará actualizarse si la versión especificada en minRuntimeVersion es más nueva que la versión instalada. Por defecto es true.
background Color de fondo del plug-in. Por defecto es blanco.
enableAutoZoom Si el host del plug-in puede invocar a eventos relacionados con Zoom. Por defecto es true.
enableCacheVisualization Permite visualizar en un color distinto, las áreas que están utilizando aceleración GPU. Por defecto es false.
enableFramerateCounter Si muestra el valor del frame rate actual en la barra de estado del navegador (sólo para IE). Por defecto es false.
enableGPUAcceleration Si habilita la aceleración GPU. Por defecto es false.
enablehtmlaccess Si en tiempo de ejecución, el plug-in puede acceder al DOM (Document Object Model) del explorador. Por defecto es true para aplicaciones en el mismo dominio, en otro caso es false.
enableNavigation Indica si el plug-in desde un HyperLinkButton puede acceder a una URI externa. Por defecto es all.
enableRedrawRegions Determina si se van a indicar visualmente las áreas del plug-in que se vuelven a dibujar con cada frame. Por defecto es false.
initParams Establece parámetros de inicialización definidos por el usuario.
maxframerate Establece el número máximo de frames por segundo que el plug-in puede renderizar. Por defecto es 60.
minRuntimeVersion Indica la versión mínima de Silverlight necesaria para ejecutar la aplicación.
onError Evento que se llama al producirse un error en tiempo de ejecución a nivel de código nativo.
onFullScreenChanged Se produce cada vez que cambia la propiedad FullScreen.
onLoad Se produce cuando el plug-in se ha cargado en el DOM del explorador.
onResize Evento que se llama cuando cambia el tamaño del plug-in.
onSourceDownloadComplete Evento que llama cuando se ha descargado por completo el recurso.
onSourceDownloadProgressChanged Evento que llama cada vez que descarga una parte del recurso.
onZoom Evento que se llama cuando el host del plug-in genero un evento Zoom.
source Estable la URI o path relativo del XAML inicial o el paquete XAP.
splashScreenSource Establece el URI de la página XAML de la pantalla de presentación (loading).
windowless Establece un valor que determina si el complemento Silverlight se muestra como un complemento sin ventana. Por defecto es false.

IMPORTANTE

Hay algunos parámetros que son utilizados para informes de performance, por lo que no deben utilizar en ambientes de producción. Estos parámetros son:

  • enableCacheVisualization
  • enableRedrawRegions
Categories: General Tags:

Parámetros dinámicos en Silverlight 3 con
July 24th, 2009 2 comments

Como sabrán una de las cosas que la versión final de Silverlight 3 no tiene es el control de ASP.NET AJAX para Silverlight (control <asp:Silverlight>).  Esto es un cambio de paradigma, para todos aquellos que estábamos acostumbrados a utilizarlo en nuestras páginas .aspx, ya que no tenemos una manera intuititva de establecer las propiedades para el plugin de Silverlight 3.  El camino a seguir ahora es utilizar la etiqueta <object> de HTML.  Pueden encontrar una lista de los parámetros que podemos establecer para nuestras aplicaciones Silverlight en esta página del MSDN.

Ahora bien, la pregunta es: ¿cómo podemos establecer parámetros iniciales dinámicos del lado del servidor para el plugin de Silverlight?  Esto como recordarán estaba en la propiedad InitParameters del control <asp:Silverlight>, y al ser un control de servidor podíamos utilizarlo en el evento Page_Load de la página.  Con <object> este ya no es el caso pero de todas formas sí podemos establecer parámetros iniciales de manera dinámica del lado del servidor si utilizamos el control <asp:Literal> al agregar el parámetro initParams de la siguiente manera:

<param name="initParams" value='<asp:Literal runat="server" ID="parametros" />’ />

Esto nos permitire tener acceso programático del lado del servidor al control llamado ‘parametros’ y establecer en él cualquier valor que necesitemos.  El siguiente fragmento de código muestra el manejador del evento Load de la página aspx:


Como podemos apreciar, se están estableciendo dos parámetros iniciales: usuario y fecha.  Para leerlos lo hacemos de la manera tradicional, por medio de los argumentos del evento Application.Startup de nuestra aplicación Silverlight:


De esta manera, podemos sortear la falta del control asp:Silverlight en nuestros aplicativos de Silverlight 3.

Salu2!

Mini Silverlight Help – Parámetros de inicialización y Obtener la IP del cliente

April 2nd, 2009 3 comments

Para poder obtener la dirección IP de la maquina que esta ejecutando nuestra aplicación silverlight. Debido a que esto no se puede hacer directamente desde Silvelright lo que debemos hacer es obtener la IP desde la pagina de ASP.NET que aloja nuestra aplicación, y luego pasarla como parámetro, para conseguirlo hacemos lo siguiente:

Obtener la IP de la PC Cliente desde ASP.NET

  • En el evento Page_Load de nuestra pagina ASP.NET obtenemos. Esto se puede hacer de varios modos a continuación el modo que prefiero para hacerlo.

    • En las líneas 2 y 3 obtengo el nombre de la PC y luego la dirección IP, cabe recordar que los resultados obtenidos dependen del tipo de conexión del cliente, generalmente funcionan al 100% cuando estamos dentro de un intranet pero cuando estamos en internet no podremos obtener el nombre de la PC y si el cliente se conecta por medio de un proxy puede que tengamos problemas también con la IP.
    • En la línea 4 envió los parámetros a mi aplicación en silverlight mediante la propiedad InitParameters de el control de silverlight en la pagina web.

 

Pasar parámetros de Inicio a una Aplicación Silverlight

En un aplicación silverlight los parámetros de inicio se pasan en la propiedad InitParameters del control. Esta propiedad es de tipo string, y para pasar los parámetros, nosotros debemos armar una sola cadena con todos ellos.

“parametro1=valor,parametro2=valor,parametro3=valor”

Se pone el nombre o identificador del parámetro el signo “=” y su valor, si necesitamos pasar mas de un parámetro los separamos por comas y seguimos es mismo patrón.

Recibir los parámetros desde la Aplicación Silverlight

Para recibir los parámetros en nuestra aplicación debemos ingresar al evento Application_Startup del archivo App.xaml.vb (este archivo es el código del archivo App.xaml), que es el que define como es que inicia nuestra aplicación. Ya en este archivo podemos consultar cada uno de los parámetros que enviamos y utilizarlo de el modo que mas nos convenga (crear propiedades de la aplicación, crear un objeto  visible a nivel de la aplicación, usarlos solo allí, etc.). Para el caso de nuestro ejemplo el código quedaría así.



Categories: General Tags: ,

Pasar parámetros a una aplicación Silverlight desde ASP.NET

February 19th, 2009 4 comments

Pasar parámetros a una aplicación Silverlight desde ASP.NET

Introducción

Un requerimiento muy común al desarrollar aplicaciones con Silverlight 2 es poder pasar parámetros a la aplicación Silverlight desde ASP.NET.  Esto obedece a diferentes motivos entre los cuales podemos destacar:

  • Parámetros de inicialización
  • Parámetros para un reporte
  • Parámetros para recordar el estado
  • Parámetros de configuración

Sea cual fuese tu requerimiento, esta tarea se puede lograr de una manera muy sencilla.  En este artículo veremos cómo mandar parámetros a un objeto Silverlight usando el control de ASP.NET AJAX.

El control de Silverlight de ASP.NET AJAX cuenta con la propiedad pública InitParameters la cual representa los parámetros que deseamos enviar.  Esta propiedad es de tipo string no obstante podemos mandar diferentes parámetros siempre y cuando tengan el siguiente formato:

llave=valor,llave=valor,llave=valor,…

Esto debido a que la clase StartupEventArgs es un IDictionary<string, string>.  Esta clase es utilizada como argumentos del evento Startup de la aplicación.

Parámetros fijos

Mandar parámetros fijos es una tarea sumamente sencilla: simplemente establece la propiedad InitParameters en el control con la cadena de parámetros que desees enviar.  El siguiente ejemplo de código muestra este concepto:

Parámetros dinámicos

Otra manera –incluso más poderosa- es que la cadena de parámetros no quede fija en el markup de la página, sino crear la cadena a través de la interacción del usuario por ejemplo usando el QueryString.  Esto lo podemos lograr fácilmente en el manejador del evento Load de la página para determinar si el objeto QueryString tiene los parámetros esperados, si es así, mandarlos al control de Silverlight:

Obtención de los parámetros

Sea cual fuese el mecanismo que vas a utilizar para enviarle parámetros al objeto Silverlight, tienes que consumirlos dentro de la aplicación.  Esto se logra por medio del evento Startup.  A continuación se muestra el fragmento de código en App.xaml.cs en donde se aprecia cómo obtenemos el diccionario de parámetros:

Finalmente, con los parámetros disponibles los podemos enviar, por ejemplo, a la página inicial de la aplicación.  Una buena idea será modificar el constructor de la clase para ahí indicar los valores de los argumentos.  El siguiente fragmento de código supone un TextBlock llamado texto el cual establecemos su propiedad Text concatenando los valores obtenidos:

 

Y otra vez en Startup:

Resultado:

El código fuente lo pueden descargar de la sección “Contenido” en La Liga Silverlight

Resumen

Mandar parámetros a una aplicación Silverlight es una tarea muy sencilla.  En este artículo mostrarmos cómo mandar los parámetros obtenidos en el QueryString del navegador a la página principal de nuestra aplicación.

Categories: General Tags: ,