MSDN Blogs
  • WarNov Developer Evangelist

    Windows 8 Surface Tablet/PC

    • 13 Comments

    UPDATE: Ya tenemos disponible el video del Keynote del lanzamiento de la Surface ayer en los Ángeles. Aquí esta:

     

    Ahora, un video de la tablet, porque vale mucho más que miles de palabras!!!

    Ahora imágenes! Muchas imágenes!

    Microsoft Surface

    La Surface, no viene con un docking. Viene con un forro que incluye teclado y pad multitouch (Touch Cover)! Además tiene un soporte en la parte trasera, que permite ajustar el ángulo de visualización.

    Microsoft Surface

     

    Microsoft Surface

    Microsoft Surface

    Microsoft Surface

    Microsoft Surface

    Forros con colores para todas las personalidades

    Un diseño sin precedentes!!!

    También se puede incluir un Type Cover que trae un teclado más físico que el del Touch Cover.

    El mejor tamaño que puede haber para una tablet de este estilo!

    No les  inspira rediseñar su espacio en torno a este aparato?

     

     

    El VaporMg Case es una total innovación que brinda elegancia, comodidad y ligereza gracias al magnesio con el que está construido.

    Todo el poder para una conectividad real!

     

    Que más hay que decir, que toda esta maravilla fue develada hoy a las 6.45pm hora Colombiana en Los Angeles, en un sitio que no fue develado sino hasta el día de hoy, a un grupo de selectos periodistas y bloggers quienes fueron avisados del evento solo hasta el viernes pasado.

    La Microsoft Surface Tablet, vendrá en dos versiones. Aquella para Windows RT,  y aquella para Windows 8 Pro. Se diferencian básicamente en la cantidad de espacio en disco (SSD): 64Gb máx y 128Gb max, la pro vendrá con un Stylus especial, el tipo de pantalla y sobretodo el procesador. la primera vendrá con ARM y la segunda con el Ivy Bridge de GBIntel, l que presumiblemente nos permitirá seguir teniendo el desktop tradicional.

    Otras especificaciones:

    Surface for Windows RT

    • OS: Windows RT

    • Light: 676 g

    • Thin: 9.3 mm

    • Clear: 10.6” ClearType HD Display

    • Energized: 31.5 W-h

    • Connected: microSD, USB 2.0, Micro HD Video, 2x2 MIMO antennae

    • Productive: Office ‘15’ Apps, Touch Cover, Type Cover

    • Practical: VaporMg Case & Stand

    • Configurable: 32 GB, 64 GB

    Surface for Windows 8 Pro

    • OS: Windows 8 Pro

    • Light: 903 g

    • Thin: 13.5 mm

    • Clear: 10.6” ClearType Full HD Display

    • Energized: 42 W-h

    • Connected: microSDXC, USB 3.0, Mini DisplayPort Video, 2x2 MIMO antennae

    • Productive: Touch Cover, Type Cover, Pen with Palm Block

    • Practical: VaporMg Case & Stand

    • Configurable: 64 GB, 128 GB

     

           

    Se espera la llegada de la Surface Windows RT en el RTM de Windows 8 y la Windows 8 Pro, aparecerá tres meses después.

    Mañana mismo podremos ver el video del lanzamiento aquí.

    Para terminar, solo me resta citar unas palabras:

    “I love this company.

    I love that we have brilliant engineers with brilliant ideas. I love that we aren’t afraid to make big bold bets. I love that we are persistent – after all it’s our passion and tenacity that bring our dreams to life. And right now, I love how so much of our hard work, passion and tenacity are coming together in the products we are bringing to market…

    … I’m incredibly proud of the work this company is doing and incredibly optimistic for what’s ahead. “

    Steve Ballmer,  al equipo de Microsoft.

  • WarNov Developer Evangelist

    La “Asincronía” y su evolución en pro de la UX

    • 2 Comments

    Hace ya varios años, los primeros servicios Web que usábamos eran síncronos. Hacíamos un llamado a la web y nos quedábamos esperando muy pacientemente a que el servidor nos respondiera y la respuesta bajara.

    Para nosotros era suficiente con obtener la respuesta!

    Nos nos importaba cuánto se demorara... el hecho que después de un tiempo llegara esa información que necesitábamos ya era suficiente para sentir la magia de la web!!! El resto era irrelevante! Aún el hecho de que la interfaz de usuario se congelara no nos importaba. Finalmente, teníamos nuestro mensaje... valía la pena esperar.

    Pero humanos somos y cada vez queremos más. Cada vez queremos mejores opciones y mejores comportamientos. Más comodidad!!!
    Nos comenzó a parecer un fastidio que la interfaz se congelara y que ni siquiera pudiéramos mover la ventana de la aplicación... De ahí en adelante comenzó la evolución que hoy en .net se conoce como: async.

    En este video daremos un recorrido por las soluciones que se le han dado a este problema a través del tiempo. Desde los simples llamados síncronos a WebServices por ejemplo, pasando por el manejo de threads distintos para la comunicación junto con el uso de Invoke para evitar desactivar el CheckForIllegalCrossThreadCalls de los forms, siguiendo con el versátil BackgroundWorker y luego explorando los clientes web asíncronos obtenidos con WebClient en Silverlight y Windows Phone 7 y HttpClient en Windows 8, que al implementar el Framework 4.5 nos ofrece el maravilloso async que nos abstrae de todas esas operaciones que algún día fueron un dolor de cabeza para nosotros:

    Puntos Clave:

    1. async ha sido creado solo para manejar operaciones que al tardar, podrían bloquear la interfaz de usuario. En ningún momento ha de ser usado para ejecutar tareas en paralelo o procesos en Background.
    2. En WP7 aún no hay soporte para async. Así que hay que usar un WebClient y ejecutar sus métodos asíncronos asociando un manejador al evento de completitud del request. Esto es similar a las llamadas asíncronas a proxies de servicios WSDL o WCF tradicionales.
    3. La forma de manejar async difiere levemente desde WindowsRT (metro style) al resto del framework. Cuando no estamos en WindowsRT se usa el método que referencia a TaskAsync. Por ejemplo en vez de DownloadStringAsync, en un WebClient, llamamos el método DownloadStringTaskAsync
    1. WarNov Developer Evangelist

      The All New Windows Phone 8!

      • 6 Comments

      image

      Windows Phone 7 ya ha abierto un gran camino para lo que hoy conocemos como Windows Phone 8. Ya tenemos 100.000 apps (y contando) en el Marketplace y desde Microsoft agradecemos a todos los desarrolladores en el mundo que han colaborado para lograrlo (en Colombia hemos puesto nuestro granito de arena con cerca de 400 apps hasta ahora. Por otro lado, observando los ratings de Smart Phones en Amazon, de los 9 primeros puestos, mejor calificados por los consumidores en el mundo, 7 obedecen a Windows Phone 7 y hago énfasis en que los tres primeros puestos son ocupados por teléfonos con nuestro sistema operativo.

      Este, ha sido el mes en el que yo como Developer Evangelist, he recibido más información de novedades, que en todo el tiempo que llevo disfrutando en Microsoft. Primero, las novedades sin precedentes de Windows Azure que ahora también es IaaS. Luego la formidable Surface y ahora,  Windows Phone 8 (WP8).

      Nuevo Kernel Unificado

      El cambio que determina la mayor parte de novedades en nuestra plataforma, es la unificación del kernel de WP8, dentro de la familia NT. Esa unificación permite por ejemplo que drivers creados para PCs, slates y tablets, sean compatibles también con el teléfono.

      Multicore

      También como novedad trae el soporte a IPV6 y otra gran consecuencia nos trae que podemos soportar teóricamente hasta 64 núcleos de procesamiento. De hecho, los primeros aparatos WP8, vendrán con dual core, para ofrecer una experiencia de usuario más rápida y fluida que la que se tiene hoy en día. .

      Más resolución

      Esto nos lleva automáticamente a otra gran novedad. La inclusión de otras dos resoluciones adicionales a la tradicional 800x480. Tendremos aparatos con resoluciones HD y WHD, para ofrecer imágenes de una realidad sin precedentes. Lo mejor de todo, es que los desarrolladores no tendrán que lidiar con estos cambios, pues sus apps se renderizarán correctamente en estas resoluciones sin cambios adicionales.

      Soporte Nativo

      La unificación de kernel (que es el mismo usado por ejemplo en WindowsRT) obviamente nos trae también la oportunidad de desarrollar natívamente para WP8. I mean, usando C y C++. Unan esto por ejemplo a Direct3D y entonces podrán esperar en el corto plazo, juegos como Halo y Assassins Creed para WP8. En realidad tendremos un poder de renderización y animación propio de cualquier consola de juegos de alto nivel.

      Multitasking – VoIP

      image

      Estas mejoras nos permiten tener más poder con los procesos de multitarea. Especialmente con tecnologías como VoIP y Video Chat (Skype). Por ejemplo, ahora podremos observar como cuando tenemos una llamada de este tipo activa, podemos seguir ejecutando otras tareas en nuestro aparato sin ninguna interrupción. Y por ejemplo si estamos usando manos libres, el flujo de sonido de la llamada VoIP será redireccionado a esos dispositivos.

      Games - Direct3D

      El soporte nativo además, abre las puertas a que entornos como Unity3D (game engine en el que programamos usando C# o Boo y producimos juegos para múltiples plataformas como Windows, MAC, Android, IPad, IPhone, etc) puedan evolucionar para poder ofrecer la experiencia unificada de creación de juegos también para WP8 y que por ejemplo apps nativas creadas para IOS sean fácilmente portadas también a nuestra plataforma. Obviamente la portabilidad de código entre WinRT y WP8 será total y sólo tendremos que fijarnos en cambios relativos al form factor de los dispositivos.

      Y ya que mencioné a C y C++ como una alternativa para desarrollar sobre WP8, les cuento que tenemos otras dos alternativas: el ya muy conocido XAML + (C# o VB) y HTML5 a través del WebControl o de entornos como PhoneGap.

      IE10 + HTML 5

      Hablando de HTML5, en Windows Phone 8, ya vendrá la última versión de nuestro browser: Internet Explorer 10. Con exactamente el mismo motor de renderización de la versión de PC y la capacidad de ejecutar el HTML5 de manera nativa obteniendo unos resultados inigualables en cuanto a velocidad y fluidez en la renderización, sin dejar de lado los estándares ni la seguridad: En esta versión, el Explorter de WP8 nos informará cuándo estamos accediendo a sitios sospechosos, igual a como ocurre en el desktop.

      De hecho apps creadas para la web en HTML5, se pueden correr perfectamente en el browser del WP8, dado que ya viene optimizado para el touch en browsers. Y por si fuera poco, solo haciendo ligeras modificaciones (aquellas que tienen que ver con las características del tamaño de la pantalla), podríamos tener estas apps corriendo de manera nativa como una app propia del teléfono.

      Storage

      En cuanto a hardware, se ha agregado soporte a memorias MicroSD extraíbles, para agregar más almacenamiento y versatilidad en el teléfono.

      NFC

      NFC entre otras cosas ahora nos ha permitido generar toda una nueva experiencia llamada "Wallet Experience" consistente en  convertir al WP8 en la billetera que usamos todos los días. Tarjetas débito, crédito, cupones, membresías, etc., van a estar disponibles dentro del teléfono para que las podamos usar para pagar compras, recibir ofertas, ganar puntos, entrar a sitios, consultar saldos, etc. Obviamente el Wallet de #WP8 se puede asegurar con un pin, de la misma manera que aseguramos nuestras tarjetas.

      El servicio de Wallet, dependerá de que los operadores lo implementen. Orange en Francia ya está listo para el Wallet Hub y ofrecerá sus servicios en ese país, en bien aparezca WP8.

      image

      El NFC también permite por ejemplo, que acerquemos nuestros teléfonos a carteles o avisos que tengan chips NFC y de allí capturar información de la misma manera en que usamos los tag o QR codes. De manera similar sucede con información que queramos transferir desde una tablet al teléfono por ejemplo! Esto abre la posibilidad a nuevos escenarios como apps o juegos que se activan en la tablet al acercarle el teléfono que está ejecutando esa misma app o juego, para iniciar una partida multi-jugador en multi-dispositivos.

      AMBIENTE CORPORATIVO

      Un punto muy importante también dentro de estos anuncios, es que el ambiente corporativo ahora toma más relevancia. Por ejemplo, ahora vamos a tener la posibilidad de encriptar toda la información del dispositivo a través de la tecnología de BitLocker y también hacer secure Boot.   

      Existirá también un Hub corporativo, a través del cual se podrán instalar las apps corporativas sin que tengan que aparecer en el marketplace.

      INCLUSIONES DE SOFTWARE

      Mapas Nativos! Con tecnología Nokia / Navteq y la gran app Nokia Drive que nos da guías para movilizarnos bien sea a pie o en vehículos. Todos los teléfonos WP8 la incluirán, aún en modo offline. Es decir, los mapas vienen preinstalados, de manera que no necesitamos conexión de datos para poder utilizarlos!!!

      El speech se ha mejorado significativamente, ahora con el trabajo en conjunto con Audible que ha creado una plataforma (disponible también para WP7) para que las apps no solo puedan ser lanzadas con comandos de voz, sino que una vez abiertas, también sean operadas con la voz. Si eres desarrollador, ten en cuenta esta característica para adicionarla a tus apps, en caso de que aplique.

      La pantalla de inicio también fue trabajada para ser aún mejor; ahora es más personalizable y con tiles a los que se le pueden cambiar los tamaños, de manera que podemos tener muchas más apps ancladas al inicio, sin tener que desplazarnos verticalmente. Al final, lo que se ofrece es una manera única, no igualada por ningún otro teléfono en el mercado, para personalizar y hacer nuestro el teléfono. Con el color que queremos, el tipo de apps que queremos y la organización que queremos.

      Observemos un video de cómo funciona:

      La cámara tendrá nuevas funcionalidades como un Timer, un creador de Panoramas, y Smart Groove Shots que  permite tomar fotos de un grupo y luego detectar las mejores caras que hizo cada quien y finalmente armar la foto óptima.

      CUESTIONAMIENTOS

      Para finalizar, algunas de las dudas que nos quedan serían:
      Se podrá actualizar Windows Phone 7.5  a WP8? La respuesta corta es no. Sin embargo tendremos una última actualización para esta serie, que entre otras mejoras incluirá todo lo que tiene que ver con la nueva Start Screen que ya mencionamos. Esta, será la versión 7.8. Debemos tener en cuenta que WP8 incluye un kernel totalmente diferente al de WP7 que además da soporte a varios core y a otras resoluciones, por lo que es imposible lograr que un WP7 adquiera estas características meramente a través de una actualización de software.

      Esto nos lleva a otra pregunta: Las apps de WP7 correrán en WP8? Por supuesto! Pero eso sí, como es de lógica costumbre, una app compilada para WP8 no podrá correr en WP7.

      Cuándo puedo comenzar a desarrollar par WP8? Antes de terminar este verano estará disponible el nuevo SDK para escribir apps orientadas a WP8.

      Un solo mes; 3 espectaculares lanzamientos y todavía queda mucho por venir. Estén pendientes del este blog en donde encontrarán lo último de nuestras tecnologías.

    2. WarNov Developer Evangelist

      Windows Phone Summit 2012

      • 0 Comments

      Aquí el cubrimiento en vivo, de este evento que develará las novedades que esperamos en nuestro Sistema Operativo para teléfonos!!

       

    3. WarNov Developer Evangelist

      Windows Azure SDK Junio 2012 Habilita a Visual Studio 2012RC !

      • 0 Comments

      imageCon la liberación del SDK de Windows Azure versión Junio 2012 (1.7) y las tools de la misma versión, el proceso nuevamente es automatizado y ahora además tiene completo soporte para Visual Studio 2012 RC!!! De esta manera lo único que tenemos que hacer es ir a este link, descargarlo e instalarlo.

      Problemas con la descarga: El sitio en español aún no se actualiza con los últimos bits. Así que si al seguir el link tu navegador identifica tu localización, no te llevará al sitio en inglés sino al de español y te presentará la versión del sdk anterior que no es compatible con el RC de Visual Studio 2012. En ese caso, asegúrate de ir al final de la página y cambiar el idioma a inglés, para que te aparezca el último SDK que dice: “Last updated June 2012”

      image 

      • Como se aprecia, todo el SDK más las tools ahora solo ocupan 34.26MB. Esto es debido a que Visual Studio 2012 RC ya viene con muchos de los elementos requeridos para el desarrollo en Azure, tales como un IIS Express y la base de datos compacta para desarrolladores llamada SQL LocalDB (Correcto, ya no necesitamos ni siquiera SQL Express!!! –más espacio y memoria para nuestros juegos!)

      Tengan en cuenta que este SDK soporta hasta la versión 4.0 del Framework .Net. Así que si en VS2012RC seleccionan como Target Framework el 4.5, no les aparecerá disponible el Windows Azure Cloud Service

      image

      La forma adecuada sería:

      image

      Este SDK funciona correctamente en Windows 7, Windows Server 2008R2, Windows Server 2012 RP y por supuesto en Windows 8 RP! Descárguenlo ahora mismo y disfruten del mayor cambio y evolución que ha tenido nuestra plataforma de Cloud Computing desde su creación hace dos años!

      image

       

       

    4. WarNov Developer Evangelist

      Apps de Windows Phone no disponibles en tu región cuando las vas a bajar?

      • 2 Comments

       

      El Marketplace de Windows Phone está segmentado por países, porque en cada país las normas son distintas y por ende no se puede generalizar la distribución de Apps.

      Así que los desarrolladores de apps, ya sea por este motivo u otros distintos, en ocasiones no ponen sus apps disponibles a ciertos países (esto no tiene que ver con el costo de publicación que siempre es el mismo).

      Es así que si al momento de configurar tu cuenta por ejemplo estableciste que ibas a trabajar con el Marketplace Colombiano, solo las apps disponibles para Colombia te aparecerán.

      Las apps más populares del mundo ya están disponibles para Colombia. Pero otras puede que no. El mercado por defecto es Estados Unidos. Por ende, casi todas las apps se encuentran allí. Así que podemos configurar nuestro teléfono con el marketplace de Estados Unidos y tener acceso a más apps.

      Desventaja frente a escoger el mercado del país en el que vivimos? Que a la hora de comprar apps, vas a tener que usar una tarjeta de crédito oriunda de ese país. Así que si no tienes una tarjeta de crédito internacional, tendrás algunas dificultades. Afortunadamente la gran mayoría de apps más usadas son free.

      Suponiendo que ya arreglaste este problema de la tarjeta de crédito y te inscribiste al marketplace estadounidense, puede pasar que aun así no veas ciertas apps como el mismísimo Adobe PDF Reader!!! A mí me pasó y formateé el teléfono varias veces sin éxito. No la podía bajar.

      Por qué sucedía esto? Sencillamente, porque configuraba el teléfono para una amiga que no es muy buena con el Inglés, así que le puse como idioma por defecto Español.

      Cuando los desarrolladores de Apps suben sus apps al mercado, también eligen el idioma en el que la ponen disponible. Adobe no puso su app en idioma Español. Así que si se detecta que el teléfono está en un idioma no disponible, la app no se dejará descargar.

      Solución: Poner el teléfono en inglés (requerirá reiniciarlo). Descargar todas las apps necesarias y luego si lo deseas, volver al español. Las apps seguirán allí listas para usarse; pero obviamente aparecerán solo en inglés.

      Si eres desarrollador de apps en español, ten esto muy en cuenta a la hora de publicarla; si quisieras por ejemplo alcanzar el gran mercado estadounidense, mejor que le pongas tu versión en inglés a la app, porque de lo contrario ellos no podrán descargarla por más que tu la hayas distribuido en ese país, si no tienen su aparato configurado en español.

    5. WarNov Developer Evangelist

      SQL Azure BACPAC - DB BACKUP en la nube

      • 1 Comments
      UPDATE: Estas instrucciones son para el antiguo portal de administración de Windows Azure en Silverlight. Para las últimas instrucciones sobre el Nuevo portal de Administración Windows Azure, visite este post
       

      El formato de archivo BACPAC, se refiere a un nuevo tipo de archivo que contiene tanto el esquema, como los datos de una base de datos.

      En el portal de Windows Azure, en la sección de Import and Export, existe una opción para generar un archivo BACPAC o para consumirlo, a través de Export e Import respectivamente:


      image


      Para crear un copia instantánea de la DB, escogemos dicha DB y le decimos exportar. Esta operación requiere una cuenta de almacenamiento de Windows Azure para guardar esa copia BACPAC en el blob storage. En este caso, la ruta del blob ha de ser suministrada por ejemplo http://micuenta.blob.core.windows.net/bacpacs/backupjunio En este caso, la cuenta de almacenamiento se llama micuenta, el container se llama bacpacs y el archivo o blob como tal se llama backupkjunio.

      Luego de especificar la cuenta, comienza a generarse la copia. Este es un proceso asíncrono, cuyo estado se puede consultar entrando a la opción de Status:

      image

      Si la DB no es tan grande, esta operación se siente casi que inmediata.image

      Una vez creada la copia, podemos importar. En este caso, ubicándonos sobre el servidor al que queremos agregarle la DB a importar; damos el nuevo nombre para la DB, el tamaño (mayor o igual al anterior), citamos la url en la que quedó el BACPAC, lo seleccionamos y comenzamos la recreación de la DB. Este proceso también es asícrono y su estado se puede confirmar de la manera ya descrita.

      image

      Lo mejor: Estas operaciones son susceptibles a ser automatizadas gracias al API de REST para acceder a los servicios de BACPAC; de esta forma, podemos programar los backups de nuestras DBs, y estos quedarán almacenados en el blob storage de Azure, que vale un centavo de dólar la giga al mes.

    6. WarNov Developer Evangelist

      Moviendo Servidores de SQL Azure entre suscripciones

      • 0 Comments

      Liberando una de mis apps de Windows Azure a producción, me encontré con la necesidad de mover todos los datos que tenía en un servidor de SQL Azure de una de mis suscripciones de prueba, a una de producción.

      Venía poco animado, porque me implicaría generar los scripts de recreación de las dbs que allí tenía y luego además, mover los datos.

      Cuál sería mi grata sorpresa, cuando encontré que desde el panel de administración de bases de datos del portal de Windows Azure, se puede mover todo un server desde una suscripción a otra solo oprimiendo un botón!!

      image


      Como se puede apreciar en la imagen, solo es necesario hacer click en "Move Server"y luego escoger la suscripción a la que deseamos hacer el movimiento.

      Esto nos mueve de inmediato el servidor a la nueva cuenta, sin que quede offline ni un segundo y sin cambiarle el nombre! Esto es genial, porque si habían clientes conectados, estos no percibirán el cambio. Además, esos clientes no deberán ser actualizados, pues la cadena de conexión sigue idéntica.

      El único cambio, es que ahora el servidor es responsabilidad de la nueva suscripción y por ende, los costos generados ya no aplican a la anterior, sino a ésta.

    7. WarNov Developer Evangelist

      SQL Azure Internals

      • 0 Comments
      SQL Azure, la propuesta de base de datos relacional como servicio que ofrece Microsoft desde Windows Azure tiene varias diferencias con las implementaciones convencionales de SQL Server, a pesar de que para los usuarios finales el uso es prácticamente el mismo.

      Veremos en este video post, realmente cómo está compuesto SQL Azure. En dónde realmente se almacenan nuestras bases de datos. Cuál es el respaldo que ofrece SQL Azure a nuestra información. Cómo se logra un 99.9% de disponibilidad en bases de datos en la nube. Por qué Microsoft no nos cobra los logs, por qué el máximo tamaño de una DB por el momento es de 150GB, cuáles son las configuraciones de hardware de un servidor SQL Azure y muchas otras dudas que seguro hemos tenido alrededor de este tema.

    8. WarNov Developer Evangelist

      WP7: Agentes en Background

      • 0 Comments

      Como su nombre lo indica, nos van a permitir ejecutar trabajos en Segundo plano, aún cuando la aplicación no esté activa.

      OJO: No están disponibles para los aparatos que solo tienen 256Mb de memoria.

      Tipos de Tareas:

      Periódicas

      Corren en un pequeño intervalo y recurrentemente. Por ejemplo para informar la locación del dispositivo y ejecutar sincronizaciones de poco tamaño.

      Intensivas

      (En Recursos) Largos períodos de ejecución cuando el teléfono cumple ciertas características de uso (actividad de cpu, fuente de poder, tipo de red. Útil para sincronizar grandes cantidades de datos al teléfono cuando no está siendo usado.

      Una app solo puede tener un agente de estos, que puede ejecutar ambos tipos de tareas.

      Restricciones:

      Existen unas apis que no se pueden usar dentro de las tareas que ejecutan los agentes: Cámara, vibración, radio, sensores, notificaciones, XNA, y otras que encuentran aquí.

      La geolocalización está disponible de manera restringida, ya que no reporta la ubicación real, sino que hace un cache cada 15 minutos, sin embargo, acciones como las que usan los HttpWebRequests desde los agentes sí se pueden hacer sin problema.

      Los agentes no pueden usar más de 6MB, excepto cuando manejan audio, en cuyo caso tienen hasta 15Mb. Cuando se exceden estos límites, la tarea se apaga de inmediato. Cuando cualquier tarea es apagada dos veces debido a un alto empleo de la memoria, dicha tarea es removida del agendamiento de tareas del teléfono. Es útil recordar que estos límites no aplican en modo debug, por lo que es necesario emplear el API ApplicationMemoryUsageLimit para verificar cuánto está empleando la tarea en tiempo de depuración.

      Los agendamientos de las tareas no se pueden hacer por un tiempo mayor a dos semanas. Para poder reagendar, la app tienen que ejecutarse en primer plano.

      Cuando se tienen agentes periódicos, lo normal es que corran mínimo cada 30 minutos. Este tiempo puede desfasarse hasta en 10 minutos, debido a otras tareas que están en segundo plano. La ejecución no debe ser mayor a 25 segundos.

      WP7 tiene un modo de operación llamado Battery Saver: Este modo que solo se puede habilitar por el usuario, podría impedir que los agentes periódicos se ejecuten.

      WP7 tiene una restricción acerca de la cantidad de agentes que pueden estar corriendo en un dispositivo dado y esta puede ser tan pequeña como 6. Antes de este límite, WP7 puede lanzar mensajes al usuario que indiquen que la cantidad de agentes está subiendo mucho y puede que la batería se agote más rápido. Si el límite ya se ha cumplido, cuando la app trata de agregar una nueva tarea, habrá una excepción de tipo InvalidOperationException que debería ser manejada para que la app no se estrelle por este motivo.

      Hay documentación de buenas prácticas que pueden encontrar aquí. En el caso de los agentes intensivos, estos pueden durar ejecutándose hasta 10 minutos. No pueden correr a menos que el dispositivo tenga más de 90% de batería, la pantalla esté bloqueada, no exista una llamada activa, esté conectado a una fuente de poder externa y a datos en una red distinta a la red celular. Si una tarea intensiva comienza a ejecutarse y por algún motivo alguna de las condiciones anteriores deja de cumplirse, de inmediato la tarea es terminada.

      Es bueno tener en cuenta que estas tareas intensivas pueden llegar a no ejecutarse nunca, debido a la gran cantidad de condiciones impuestas. Por ejemplo si el usuario no tiene WiFi en ningún lado, la tarea nunca se ejecutará.

      En mi sitio de preguntas y respuestas he respondido algunas preguntas acerca de los agentes en background:

      1. Hay alguna forma de manejar con código en wp7 que un agente sea suspendido porque hay bajos recursos de memoria o de batería?

      2. En wp7, se pueden concatenar varios agentes periódicos para lograr tener reportes cada 2 minutos en vez de cada 30?

      3. Es posible evitar a través de código que un usuario de WP7 apague los agentes de ejecución en background?


      Bien; ya que vimos las generalidades, si quieres incluir Background Agents en tu app, sigue este link, donde nos enseñan cómo implementarlos.

    9. WarNov Developer Evangelist

      Debugging de Windows Phone Apps con Fiddler

      • 0 Comments

      Para quienes no lo conocen, Fiddler es un impresionante aplicativo gratuito creado por un colega de Microsoft: Eric Lawrence. Es usado básicamente para capturar tráfico HTTP y si lo deseas, modificarlo. Sin embargo, posee decenas de utilidades más relacionadas con el tráfico HTTP; esto es útil para hacer depuración de aplicaciones que se conectan a servicios web, o aplicaciones web como tal.

      He encontrado supremamente útil por ejemplo, usar Fiddler para hacer depuración de un par de Apps que estaba construyendo y que consumían servicios de Windows Azure, pues Fiddler se puede configurar también para que escuche las transmisiones HTTP originadas por el emulador de Windows Phone. De esta manera, puedo ver claramente cuáles son los requests que está haciendo mi app, y qué es lo que se está retornando desde la Web. Por ejemplo aquí pude ver que el servicio de Windows Azure al que estaba accediendo la app ya no existía:

      image


      Para configurar Fiddler para el emulador de Windows Phone, has de tener la última versión y luego configurarle de esta manera:


      1. Tools->Fiddler Options
      2. Connections tab -> Allow remote computers to connect -> OK
      3. Escribir este comando en la caja de QuickExec (Cuadro de texto en la esquina inferior izquierda de Fiddler):
      prefs set fiddler.network.proxy.registrationhostname NOMBREDETUMAQUINA
      4. Cerrar y reiniciar Fiddler
      5. Reinicia el emulador y ya podrás hacer análisis de las comunicaciones HTTP que se originan desde el mismo Smile

    10. WarNov Developer Evangelist

      Durabilidad de nombres de servicio en Windows Azure

      • 0 Comments

      Cuando creamos servicios en Windows Azure que usan WebRoles o WorkerRoles, hemos de especificar un nombre para estos servicios.

      Este nombre debe cumplir con las reglas para nombres de dominio, pues esta será la forma en que accedamos a ellos.

      A estos nombres de servicios podemos asignarle el dominio que queramos del cual seamos propietarios después de haberlo comprado por ejemplo en GoDaddy. Esto se logra a través de un sencillo cambio en la configuración del registro del dominio en la herramienta del proveedor del mismo.

      A veces sucede que tenemos un servicio establecido con un nombre dado y luego creamos otro servicio y queremos que este otro servicio reemplace al primero con nombre y todo. Obviamente esto nos lleva a pensar que tenemos que eliminar el servicio original y desplegar el nuevo y asignarle el nombre que ya habíamos definido.

      Cuando arrancó Windows Azure, cuando eliminábamos un servicio, el nombre quedaba "ocupado" hasta por varios días. De esta manera el reemplazo no se podía hacer de inmediato.

      Hoy en día si borras un servicio, el nombre del mismo queda INMEDIATAMENTE disponible para que puedas poner un servicio en su reemplazo si así lo deseas. De esta manera, se ofrece una gran ventaja al desarrollador que puede reemplazar sus servicios sin demora, manteniendo los nombres que están esperando los clientes que se han construido basados en dicho servicio.

    Page 1 of 1 (12 items)