Mostrando entradas con la etiqueta windows phone. Mostrar todas las entradas
Mostrando entradas con la etiqueta windows phone. Mostrar todas las entradas

jueves, 10 de mayo de 2012

Windows Phone - Como añadir más controles a nuestros proyectos

Una vez superado el clásico Hello World! y tras hacer las primeras pruebas con Windows Phone me he dado cuenta que la cantidad de controles que tenemos a nuestra disposición en el Visual Studio es relativamente limitada sobre todo si estamos acostumbrados a la cantidad de controles que tenemos en el desarrollo de aplicaciones de escritorio.


Mirando un poco de donde podemos obtener algunos controles llegué a un proyecto en codeplex llamado Silverlight for Windows Phone Toolkit. Nunca me ha gusta usar controles de terceros pero en este caso la librería está mantenida por gente de Microsoft así que haré una excepción con ellos. Indagando un poco más llegué a que esta librería de controles puede ser descargada por dos vías.
Ambas alternativas son igual de validas, así que me centraré en la instalación desde nuget. Para ello como siempre, accedemos a la Package Manager Console y escribimos lo siguiente
PM> Install-Package SilverlightToolkitWP
Y si todo va bien veremos lo siguiente
Successfully installed 'SilverlightToolkitWP 4.2011.12.14'.
Successfully added 'SilverlightToolkitWP 4.2011.12.14' to PhoneApp.

PM>
Tras esto esto, tendremos que añadir estos controles a nuestro Visual Studio, así que vamos a la barra izquierda (donde salen por defecto lo controles) y le damos al botón derecho y hacemos click en Add Tab para añadir una pestaña donde pondremos nuestros controles. A la nueva pestaña le podemos poner el nombre de Windows Phone Toolkit


Después haremos click con el botón derecho debajo de la nueva pestaña y le daremos a Choose Items...


En la ventana que se nos abre seleccionamos la pestaña Windows Phone Components y luego le damos al botón de Browse

Tras esto se nos abrirá el clásico File Dialog de Windows onde buscaremos la librería Microsoft.Phone.Control.Toolkit.dll. La seleccionaremos y le daremos al botón de Abrir.


Una pequeña aclaración. Si hemos optado por descargar el ensamblado vía nuget, éste se encontrará en la carpeta packages de nuestra solución. Hemos de tener en cuenta que estamos añadiendo un paquete de controles al Visual Studio por lo que si creamos otra aplicación Windows Phone esta librería de controles se irá a buscar a esa carpeta (la del proyecto con el que estemos trabajando en ese momento). Por lo que si borramos el proyecto nos quedamos sin controles. En este tipo de situaciones quizá es mejor instalar el ejecutable de la página de codeplex. En ese caso la ruta donde se encuentra la dll es C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Toolkit\Oct11\Bin

Bien, tras seleccionar el paquete veremos toda la lista de controles disponibles y tendremos marcados los que se añadirán.


Le damos a OK y ya tendremos todo un nuevo mundo de controles a nuestro alcance.


Para la próxima espero poder escribir sobre el acceso a datos desde Windows Phone, que como siempre me ha sorprendido por su sencillez.

Happy coding!

lunes, 30 de abril de 2012

Hello World en Windows Phone 7

Este podría ser el típico post de tres líneas donde explico de una manera rápida y sencilla como hacer el clásico Hello World! u ¡Hola mundo! en Windows Phone 7. Pero (siempre hay un pero) cuando las cosas no quieren salir no salen y lo que empezó siendo algo de 5 minutos terminó siendo una pequeña batalla de un par de horas.

Comencemos. Lo primero que hice fue buscar el SDK para descargarlo. Esta búsqueda me llevo a está página en donde te puedes descargar el instalador web para el SDK. Como no me gustan los instaladores web, busqué el enlace a la ISO (está en la parte final de la página) y me lo descargué.

Aquí cometí mi primer error. Tras descargarme e instalar el SDK, al arrancar el Visual Studio 2010 Professional no veía por ningún lado las plantillas para crear una aplicación para Windows Phone 7. Si ejecutaba el Visual Studio 2010 Express que instala el SDK no tenía problemas, pero en el Professional que ya tenía instalado no había manera. Tras buscar por google di con la respuesta en un foro de la MSDN donde decía que si tu Visual Studio 2010 estaba en inglés el SDK a instalar debía ser el inglés, sino, las plantillas podía no instalarse correctamente (me hizo gracia el comentario de "podían"). Y yo me había descargado el SDK en español, bueno, realmente ni me había fijado. Mientras me descargaba la ISO inglesa del SDK desinstalé el SDK español. Tras lanzar de nuevo la instalación me tocó desinstalar a mano todo lo relacionado con el Expression Blend, así que otros minutos divertidos delante del ordenador viendo barras de progreso. Bien, con todo esto superado, y tras instalar el SDK en inglés, las plantillas para crear una aplicación Windows Phone 7 estaban disponibles en mi Visual Studio.

Tras crear un proyecto y simplemente cambiar el texto de un label, ejecuté la aplicación. Pensaba que ya nada más podría ir mal, pero me equivoqué. El Visual Studio me dio el siguiente error

Error 1 Connection failed because of invalid command-line arguments. 0 0

Tocaba otra vez, lanzarme a buscar la solución en google. En diversos foros y páginas web encontré las siguiente soluciones, que desde ya advierto que no funcionan (por lo menos a mi)
  • Cerrar la solución y borrar todos los ficheros .user y .suo. 
  • Lanzar el Visual Studio con privilegios de administrador.
Desesperado iba a abandonar, pero revisando lo que se me había instalado con el SDK vi que estaba el emulador de Windows Phone. Ya que no podía ver la aplicación funcionando lo mismo podría entretenerme viendo el emulador. Al lanzar el emulador, y como no podía ser de otra manera me dio un error.


El programa no puede iniciarse porque falta 'MfPlat.DLL" en el equipo. Intente reinstalar el programa para corregir este programa.

¿Algo más podía ir mal? Una vez más tocada tirar de google. La mayoría de las soluciones pasaban por descargar la DLL de algun repositorio de DLLs e irla copiando por diversas carpetas del sistema. Solución que por supuesto descarte totalmente. En un foro de MSDN vi que si tu sistema operativo era de la serie N había que instalar el Media Feature Pack for Windows 7 N desde aquí. Y como mi Windows es serie 7N, me tocó descargar el paquete de 300MB e instalarlo.

Tras varios minutos de descarga e instalación, volví a abrir la solución. Y tras un par de segundos de compilación vi como se abría el emulador y un momento después mi primera ¿aplicación?  para Windows Phone 7 veía la luz...