Tag: Silverlight


Modificar la navegación inicial en Windows Phone 7…

July 27th, 2011 — 12:23am

Es posible que en alguna de las aplicaciones que desarrolles para Windows Phone 7 tengas que modificar la navegación inicial dependiendo de algún parámetro; por ejemplo, algo común es que si el usuario no ha iniciado sesión se le envíe a la página de login y si ya lo ha hecho, se envíe directamente a la página principal de la aplicación.

Buscando la mejor forma de hacerlo, o mejor dicho, la que funcionara ya que la aproximación que estaba realizando no era válida, encontré el post de Peter Torr que propone dos soluciones para controlar esta situación.

Cualquiera de los dos métodos funciona para lograr lo que se desea; sin embargo, es importante tener en cuanta algunos detalles:

  • Si posteriormente quieres emplear el NavigationService para moverte entre páginas tienes que tener en cuenta que ese código se ejecutará provocándote errores. Si solo deseas que eso se evalúe la primera vez, lo mejor es que te desuscribas del evento para evitar que vuelva a ser llamado cada vez que hagas uso de los servicios de navegación.
  • Si estás con Windows Phone 7, la vista de login se quedará en el stack de navegación. Si el usuario pulsa el botón atrás le volverá a aparecer dicha vista. Por lo tanto, es recomendable utilizar la aproximación de un elemento que se coloque por encima de la vista principal y controlar su visibilidad.
  • Si por el contrario, estás con Windows Phone 7.1, parece que Microsoft ha oído las quejas de la gente por los foros añadiendo la posibilidad de eliminar una entrada del stack de navegación con el método NavigationService.RemoveBackEntry

Así que tened en cuenta estas situaciones para evitar modificar el código que ya estaba escrito y funcionando.

Comment » | Microsoft, Programación, Silverlight, Windows Phone 7

Aplicaciones web en Windows Phone 7…

March 30th, 2011 — 1:48am

Las formas más habituales de desarrollar aplicaciones para Windows Phone 7 es haciendo uso de los dos frameworks disponibles en la plataforma: Silverlight y XNA. Sin embargo, no es la única posibilidad que existe.

Dentro de Silverlight tenemos disponible el control WebBrowser que podemos emplear para mostrar información directamente desde Internet o, aún más interesante, emplearlo para mostrar contenido estático o dinámico dentro del teléfono. Esto abre la posibilidad de realizar aplicaciones basadas en HTML + CSS + JavaScript pudiendo reutilizar código para generar aplicaciones para las tres plataformas móviles que mayor presencia tienen actualmente.

En el blog del equipo de desarrollo de Windows Phone 7 se han publicado recientemente dos artículos bastante relacionados con este aspecto que son interesantes de leer:

Sin embargo, el estar dentro del navegador nos limita un poco la funcionalidad de nuestra aplicación. Por ejemplo, ¿cómo controlamos la navegación? ¿cómo utilizamos las funciones del teléfono como reproducir audio? Poco a poco os lo iré mostrando.

Comment » | Microsoft, Windows Phone 7

Nuevas aplicaciones en el Marketplace…

January 8th, 2011 — 10:09pm

Durante Navidades, estuve realizando unas pruebas rápidas de cómo funcionaba el control MutiScaleImage de Silverlight dentro de la plataforma Windows Phone 7. Ya había jugado con la tecnología DeepZoom que hay por detrás con el pivot de la PartyQuijote y quería comprobar el funcionamiento en el teléfono.

Una de las utilidades que encontré fue la de visualizar un mapa de información de la red de metro y de ahí surgieron las dos aplicaciones sencillas que ahora mismo están disponibles para su descargada desde el Marketplace: “Madrid Metro Map” y “Barcelona Metro Map“.

El resultado visualmente es muy agradable pero falta mucha mejoría por detrás para que sean de verdad unas aplicaciones prácticas. Ya he recibido recomendaciones de que cree un sistema de recomendación de rutas o incluya información de los horarios de los trenes. Lo que no me gustó es que no sea posible que las imágenes se carguen desde el dispositivo, lo que obliga a que para poder consultar el mapa tengas que emplear una conexión a Internet para que descargue los tiles. Esperemos que en alguna actualización esto sea modificado…

2 comments » | Microsoft, Windows Phone 7

Navegando entre páginas en Windows Phone 7…

January 4th, 2011 — 1:42am

Una de las preguntas más repetidas en los foros de desarrollo de Windows Phone 7 es la forma de navegar entre páginas por nuestras aplicaciones. Vamos a ver lo sencillo que es en el siguiente ejemplo:

Imaginemos que tenemos dos páginas en nuestra aplicación, una que fuera la MainPage.xaml y otra SecondPage.xaml. Si queremos ir de la primera a la segunda, podemos hacer uso de un HyperlinkButton y de su evento click introduciendo en su manejador el siguiente código.

private void hyperlinkButton1_Click(object sender, RoutedEventArgs e)
        {
            NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative));
        }

¿Y si queremos volver hacia atrás? ¿Es posible hacerlo? Sí, podemos hacer uso del método GoBack incluido en la clase NavigationService y establecer un vínculo de vuelta a la primera página.

private void hyperlinkButton2_Click(object sender, RoutedEventArgs e)
        {
            NavigationService.GoBack();
        }

La propiedad NavigationService da acceso al servicio de navegación del framework de Silverlight. Además de lo aquí expuesto, existen otras utilidades como el paso de parámetros por URL que comentaré en otra entrada. Podéis echarle un ojo en la página de MSDN.

2 comments » | Microsoft, Windows Phone 7

Bases de datos para Windows Phone 7…

December 28th, 2010 — 2:37am

Uno de las principales cosas que se echan en falta a la hora de desarrollar nuestras aplicaciones para Windows Phone 7, es la falta de una base de datos integrada que nos permita almacenar nuestra información de forma local sin necesidad de depender constantemente del acceso a Internet del teléfono.

Probablemente en algún momento saquen algún motor integrado en la plataforma, mientras tanto están disponibles los siguientes proyectos que os pueden ayudar.

  • Sterling: es una base de datos con soporte LINQ to Objects que sirve tanto para tus aplicaciones en Silverlight de navegador como las de Windows Phone 7. Entre las ventajas que anuncian son su flexibilidad, su portabilidad, su poco peso y su forma no intrusiva de almacenamiento de la información. Aún se encuentra en beta, por lo que “Use at your own risk” como ellos mismos señalan. Si quieres empezar con Windows Phone 7 te puede ser útil esta guía de incio
  • Windows Phone 7 DataBase: otro proyecto de Codeplex que ofrece soporte de tablas con un número cualquiera de columna. Incluye soporte para el cifrado de la información con clave y lazy loading. Su desarrollo parece un poco menos activo que el de Sterling.
  • SQLite para Windows Phone 7: este proyecto de Dan Ardelean se trata de una migración de csharp-sqlite para que funcione sobre Isolated Storage. En el enlace podéis encontrar la aplicación de prueba que desarrolló y el código que os puede resultar útil si queréis hacer uso de ella.

Esperemos que no tarden mucho en incluir dentro de la plataforma algo mejor que trabajar con el IsolatedStorage directamente y nos quitemos la necesidad de usar librerías externas.

Comment » | Microsoft, Windows Phone 7

Estadísticas de tus aplicaciones para Windows Phone 7…

December 4th, 2010 — 11:31pm

Una de las características que los desarrolladores más echan en falta del Marketplace de Windows Phone 7 es la de disponer de algún tipo de estadísticas sobre qué está pasando con tu aplicación. Datos como el número de instalaciones, las veces que se ejecuta tu aplicación y similares son necesarios para saber si estás haciendo bien el trabajo o no.

Conocida esta carencia en la primera versión del Marketplace lanzada junto con el teléfono, Microsoft se ha asociado con PreEmptive Solutions para cubrir esta necesidad básica mientras, supongo, desarrollen su propio sistema integrado directamente en tu cuenta del AppHub. Gracias a este acuerdo es posible obtener el Runtime Intelligence for Windows Phone de forma gratuita para usar en nuestras aplicaciones hasta finales de Marzo del año que viene con el cuál podremos conocer la siguiente información:

  • Número de ejecuciones de la aplicación
  • Número de usuarios únicos
  • Tiempo de uso de tus aplicaciones
  • Estadísticas generales sobre el sistema y el comportamiento de tu aplicación.

Para descargárselo, simplemente hay que registrarse en la dirección web de la compañía y recibirás toda la información necesaria en tu correo electrónico. Para comenzar a usarlo, te recomiendo el siguiente Quickstart en vídeo:

Como extra, también podrás utilizar las capacidades de Dotfuscator para proteger el código de tus aplicaciones como comentaré en otra entrada.

Comment » | Microsoft, Windows Phone 7

Recursos para desarrolladores de Windows Phone 7…

November 17th, 2010 — 12:22am

Si quieres empezar a desarrollar para Windows Phone 7 y no sabes muy bien por dónde hacerlo, además del libro de la entrada anterior dispones de los siguientes recursos para ayudarte:

Lectura electrónica:

-          Windows Phone 7 Training  Course  (Silverlight y XNA)

-          31 días de desarrollo con Windows Phone 7 (Silverlight)

-          Documentación de referencia en MSDN Library (Silverlight y XNA)

-          Crea juegos para Windows Phone 7 en App Hub (XNA)

-          Centro de desarrollo en MSDN

-          Recursos de diseño Windows Phone 7

Continue reading »

1 comment » | Microsoft, Windows Phone 7

El patrón MVVM y Windows Phone 7…

October 17th, 2010 — 3:39pm

El MVVM es un patrón de arquitectura que proviene de una especificación por parte de Microsoft del patrón Presentation Model de Martin Fowler. Es muy parecido al MVC aunque su uso se centra en el desarrollo de aplicaciones basadas en WPF y Silverlight.

Hasta que no he empezado a trabajar con Windows Phone 7 y Silverlight, no lo había usado nunca; sin embargo, una vez que lo comprendes y le coges el truco es una de las formas más cómodas de desarrollar aplicaciones. Gracias a las capacidades de databinding existentes en WPF/SL la creación de aplicacionse se vuelve bastante más sencilla y cómoda de llevar a cabo.

Aunque la implementación del patrón se puede realizar a mano, ya hay algunos toolkits que nos evitan volver a tener que crear los elementos básicos a la hora de trabajar con MVVM. El que he probado ha sido el MVVM Light Toolkit. Tal y cómo lo definen en su página web:

 The main purpose of the toolkit is to accelerate the creation and development of MVVM applications in WPF, Silverlight and in the Windows Phone 7.

Este toolkit ayuda a separar las Vistas del Modelo, lo que permite crear aplicaciones más sencillas y fáciles de mantener y extender. También facilita el desarrollo de aplicaciones que se puedan testear .

Si estáis interesados en aprender un poco más sobre ello os dejos la siguiente información:

Comment » | Microsoft, Windows Phone 7

Unit testing en Windows Phone 7…

October 7th, 2010 — 11:23am

Con la implantación cada vez más extendida de las prácticas de programación extrema (eXtremeProgramming) han surgido una serie de prácticas que han cambiado la forma en la que se venía desarrollando el software.

Una de las prácticas más importantes de esta nueva forma de desarrollar es el Desarrollo Guiado por Pruebas o TDD. Esta práctica engloba a otras dos:

  • Escribir las pruebas primero (Test First Development)
  • Refactorización (Refactoring)

Si queremos aplicar esta técnica en nuestros proyectos de Windows Phone 7 necesitaremos configurar algunas cosas para tener un proyecto de pruebas funcionando.

  1. Obtener la versión del Unit Test Framework compatible con Windows Phone 7.Están disponibles en esta entrada del blog de Jeff Wilcox o directamente desde el siguiente enlace.
  2. Crear un nuevo proyecto de aplicación para Windows Phone 7.Las pruebas que realicemos se ejecutarán directamente en el simulador para probar nuestro código. Por ello, es necesario que el proyecto que albergue las pruebas sea de este tipo.
  3. Añadir las referencias necesarias del Unit Test FrameworkÉstas serían:
    	Microsoft.VisualStudio.TestTools.UnitTesting;
    	Microsoft.Silverlight.Testing;
  4. Modificar el fichero de code behind de MainPage.xaml añadiendo el siguiente código:
    void MainPage_Loaded(object sender, RoutedEventArgs e)
    {
    SystemTray.IsVisible = false;
    var testPage = UnitTestSystem.CreateTestPage() as IMobileTestPage;
    BackKeyPress += (x, xe) => xe.Cancel = testPage.NavigateBack();
    (Application.Current.RootVisual as PhoneApplicationFrame).Content = testPage;
    }
  5. Añadir una nueva clase estandar.Aquí añadiríamos el código de los test que quisiéramos ejecutar, por ejemplo, uno que pruebe que todo está funcionando.
    using Microsoft.VisualStudio.TestTools.UnitTesting;
    using Microsoft.Silverlight.Testing;
     
    namespace SampleTest
    {
        [TestClass]
        public class SampleTest
        {
            [TestMethod]
            public void AlwaysPass()
            {
                Assert.IsTrue(true);
            }
        }
    }

Y ejecutando tendremos nuestro proyecto para pruebas unitarias en Windows Phone 7 en marcha :)

Unit Testing in Windows Phone 7

Algunos enlaces que te pueden resultar útiles:

1 comment » | Microsoft, Windows Phone 7

Back to top