El emulador en Windows Phone 8 SDK e Hyper-V

Como todos ya seguro que sabréis, y si no lo sabéis ya os lo digo yo que para eso estoy aquí, el recién estrenado SDK para Windows Phone 8 solo es posible instalarlo en maquinas con sistemas operativos de 64bits.

¿Cual es el motivo?, bueno pues seguramente que serán muchos, pero uno de ellos es que el nuevo emulador para testear nuestras aplicaciones, no es un emulador al uso tal y como lo teníamos en Windows Phone 7.5, sino que es una imagen del S.O. virtualizada a través de la tecnología Hyper-V de Microsoft y esta tecnología solo es compatible con sistemas de 64 bits como podéis ver en sus requerimientos.

Esto para mi significa una gran ventaja con respecto al emulador de anteriores versiones. Por un lado le dota de mayor estabilidad y un mayor rendimiento, por otro lado el lanzar varios emuladores al mismo tiempo se hace una tarea bastante mas sencilla que antes, la gestión de las imágenes de nuestros Windows Phone emulados ahora son gestionables y no como antes que eran un simple fichero y a veces teníamos que pegarnos con los ficheros de sesión que se quedaban colgados y demás…

Emulator_WP8_0

Bueno, pues manos a la obra y vamos a disponernos a lanzar nuestro flamante emulador y ver in situ todo su potencial.

Emulator_WP8_1

Vaya la primera en la frente, Visual Studio me advierte gentilmente que quizás no tenga habilitado en la BIOS el soporte para la virtualización por hardware, necesario para lanzar Hyper-V y por consiguiente el emulador.

Pero lo primero seria comprobar si nuestro sistema es capaz de ejecutar Hyper-V y si tenemos el Hardware necesario para ello. Os recuerdo que necesitamos que nuestra maquina ejecute la virtualización asistida de Hardware, SLAT (Second Level Address Translation) y DEP (Hardware-based Data Execution Prevention).

Si esto te suena a chino y no tienes ni remota idea de que estoy hablando lo mejor es descargarnos esta pequeña utilidad de Microsoft, llamada Coreinfo para comprobar todos estos requerimientos.

Simplemente tras descargarnos Coreinfo, lo ejecutamos en la línea de comandos con permisos de administrador, con el parámetro –v

C:> Coreinfo.exe -v

Esto nos mostrara una serie de datos de capacidades de nuestro procesador.

Emulator_WP8_6

Debemos de asegurarnos de tener un asterisco, en las 2 ultimas características, capacidad de virtualización por hardware y SLAT presente.y que nos indique que el Hypervisor está presente.

Por ultimo debemos de hacer otra comprobación, en este caso ejecutando Coreinfo sin ningún tipo de parámetro de entrada.

C:> Coreinfo.exe

Entre todas las características que nos presenta debemos de buscar la opción NX, la cual nos dirá si disponemos de la capacidad de DEP (Hardware-base Data Executivo Prevención) o no, con un asterisco.

Emulator_WP8_7

Una vez comprobado todo, debemos de saber que tenemos que tener un asterisco en las 3 características comentadas y ver que Hypervisor esta presente, si esto no es así ya podemos ir pensando en comprar otro ordenador o simplemente olvidarnos de probar nuestras aplicaciones en el emulador de Windows Phone 8.

Si tenemos la suerte de contar con todos estos requisitos, simplemente deberemos de ir a la BIOS de nuestro sistema y activar la virtualización por hardware que normalmente viene deshabilitada. En mi caso simplemente tengo que ir a la sección de características de la CPU dentro de mi BIOS y activarlo:

WP_000453

Solo una cosita mas, una vez comprobado nuestro sistema y activado en la BIOS la opción de virtualización, deberemos de añadir nuestro usuario de Windows al grupo de administradores de Hyper-V, para evitarnos posibles problemas de permisos y demás a la hora de asignar hardware al emulador.  Para ello simplemente iremos al administrador de equipos y en la sección de usuarios asignaremos el nuestro al grupo administradores de Hyper-V.

Emulator_WP8_4

Emulator_WP8_3

Bueno, pues listos, una vez realizados estos pasos, la próxima vez que ejecutemos la depuración en el emulador, nos mostrara el aviso de ejecución con permisos elevados, si es que no ejecutamos ya Visual Studio con permisos de administrador.

Emulator_WP8_9

Aquí nuestro flamante emulador listo para comenzar a probar nuestras aplicaciones para Windows Phone 8.

Emulator_WP8_10