MSDN Blogs
  • WarNov Developer Evangelist

    Windows 8 Dev Machine

    • 1 Comments

    Hasta hace unos días, lo único que me impedía desarrollar completamente basado en Windows 8, era el tema de Windows Azure y sobretodo el de Windows Phone, dado que al usar emuladores, aún no estaban plenamente soportados.

    Afortunadamente, al interior de Microsoft estamos siendo muy veloces y a hoy, ya tenemos un gran conjunto de tools que nos permiten desarrollar para todas las tecnologías que teníamos disponibles en VS2010 sobre Windows 7 por ejemplo.

    Primero aclaremos algunos hechos básicos:

    1. Visual Studio 2010 (VS10) y Visual Studio 11 (VS11) coexisten sin problemas en el mismo sistema operativo ya sea Windows 7 o Windows 8.

    2. VS11 en Windows 7 aunque permite desarrollar varios tipos de proyectos convencionales, no permite desarrollar apps Metro Style, obviamente porque el OS no tiene todo el soporte requerido

    3. A pesar de que “parece” que VS11 soportara proyectos Windows Azure, esto aún no es posible, así que es requerido VS10 y unas configuraciones especiales que describiré en este post para que funcionen en Windows 8.

    clip_image002

    4. VS11 aún no soporta WP7. Así que también es necesario trabajarlo con VS10 y en Windows 8 se requieren ciertas configuraciones especiales que describiré en este post.

    Entonces, antes de entrar en materia, quiero que quedemos claros en que vamos a requerir Visual Studio 2010 instalado en Windows 8. Esto como les mencioné no tiene ninguna contraindicación ni aún con VS11 instalado, y puede ser cualquier versión. Yo estoy usando la Ultimate. Pero se puede Visual Studio Express for Windows Phone y Visual Studio Web Developer para Azure y gratuitamente tendremos operatividad total.

    WINDOWS 8 + WINDOWS PHONE

    Esto se hace posible gracias a la publicación del patch 7.1.1 del SDK de Windows Phone, cuyo principal objetivo es el permitir el desarrollo de apps de WP7 enfocadas a dispositivos económicos de solo 256MB de ram, al incluir una nueva imagen de emulador que tiene esta memoria. Sin embargo, aunque este fue el fin principal, se aprovechó la publicación para entre otras cosas, solucionar unos inconvenientes que impedían al emulador de Windows Phone 7 funcionar correctamente en Windows 8, por lo que ahora esto ya es posible, aunque no oficialmente soportado, sino hasta que salga el RTM de Windows 8.

    clip_image003

    Procedimiento:

    1. Instalar Win8CP

    2. Instalar la última versión de Games for Windows – LIVE. Esto es requerido para poder desarrollar juegos con XNA para WP7, dado que Windows 8 requiere archivos más nuevos que los que vienen con el SDK 7.1

    3. Instalar VS2010 Pro o superior si es posible; si no, proceder a 3

    4. Instalar Windows Phone SDK 7.1 (Incluye gratuitamente Visual Studio Express for Windows Phone 7)

    5. Instalar el patch 7.1.1

    6. Instalar Zune

    7. Desarrollar en WP7!!!


    WINDOWS 8 + WINDOWS AZURE

    UPDATE:  Las instrucciones siguientes SOLO aplican para la instalación del SDK y Tool de Windows Azure v. 1.6 sobre Visual Studio 2010 en Windows 8 CP y RP. Con 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!!! Chequea este post, para instrucciones de cómo instalarlo.

    SDK 1.6 en VS2010 sobre Windows 8:

    Aquí solo es necesario activar algunas características adicionales del sistema operativo y luego descargar los bits requeridos.  

    1. Activación de Características:

    a. Presione TeclaWindows+F para abrir el cuadro de búsqueda y escriba Windows Features. Luego haga click en settings y escoja en los resultados Turn Windows Features on or Off.

    b. Una vez allí, asegúrese de tener todas estas características activadas:

    clip_image004

    2. IDE: Instalar VS2010 Pro o superior o Visual Web Developer 2010 Express como alternativa free

    a. Instalar el Service Pack de VS2010

    b. Descargar e Instalar MVC3

    3. DB: Windows Azure usa una base de datos SQL para emular el storage. La DB que debe instalarse es SQL Express 2008 R2 with SP1

    4. Descargar e instalar los componentes individuales de Windows Azure bien sea para x86 o para x64.
    Hasta aquí ya estamos listos para desarrollar aplicaciones de Windows Azure convencionales. Pero a hoy, tenemos unas nuevas herramientas especialmente creadas para desarrollar aplicaciones para Windows 8 basadas en Windows Azure sobretodo para los servicios de notificaciones y almacenamiento. Aquí les muestro cómo habilitarlas:

    5. Apps de Windows 8 sobre Azure:
    Descargar e instalar el Toolkit de Windows Azure para Windows 8

    a. Instalar la última versión del Nuget Package Manager (si existe ya instalada una versión distinta a la antigua, abrir Visual Studio en modo administrador y desinstalarlo desde el extensión manager el menú de tools)

    b. Ejecutar el script Setup.cmd que queda en el root de la instalación del anterior Toolkit

    Obtendremos:
    clip_image006

    c. Después al abrir nuestro VS2010, nos encontraremos con que ya podemos crear Windows 8 Cloud Applications

    clip_image008


    y en VS11 podremos crear aplicaciones basadas en Notificaciones más control de Acceso:


    clip_image010

    Conclusión:

    Windows 8 Consumer Preview por ser aún una versión de evaluación requiere ciertas configuraciones especiales para poder servir como máquina de desarrollo de aplicaciones basadas en Windows Azure y para Windows Phone. En este post, vimos las acciones a tomar para poder lograrlo.

  • WarNov Developer Evangelist

    Pimp my rIDE

    • 4 Comments

    Visual Pimp-My-Ride-XE

    Recuerdan ese reality de MTV con XZibit donde tomaban un auto y le ponían cientos de mejoras para que su conducción fuera mucho más agradable?

    Pues lo mismo pasa con Visual Studio!

    Usé la alegoría de rIDE con r de rapid :P Esto obviamente, dado que nuestro IDE (Visual Studio) nos permite ir de cero a una aplicación completamente funcional, in no time!

    Para muchos, Visual Studio es nuestra segunda casa.

    No para tantos lo era hace unos años (me incluyo en los que sí), cuando a pesar de que era bueno, no era tan completo como hoy en día, de manera que de vez en cuando teníamos que salir de casa para ir a hacer ciertas tareas de desarrollo en otras tools independientes.

    -Uy! Ojalá tuviera algo que me alineara automáticamente todas las asignaciones por el igual.

    O por ejemplo: -Ufff! De lujo si pudiera implementar un tema basado en Matrix para desarrollar.

    O tal vez: -Súper si pudiera enviar por correo automáticamente un segmento de código que hice para que mi jefe vea que soy bueno programando lo que él no pudo

    Yo siempre solía soñar con eso y tenía mi propia biblioteca de macros para ejecutar tareas dentro de VS.

    Pero las macros es lo más sencillo que se puede hacer.

    Luego cuando entré al equipo de desarrollo de un lenguaje de programación sobre .NET llamado VisualAPL basado en el viejo APL (un lenguaje de programación basado en símbolos muy poderoso para cálculos financieros avanzados) conocí todo lo que se podía hacer con el modelo de extensibilidad de Visual Studio y fue glorioso, la verdad.

    Este post sin embargo, no trata de cómo crear estos addons y extensiones sino más bien de cómo usar los existentes y a mi modo de ver, cuáles son los más útiles.

    Sucede que como yo, había miles de desarrolladores con sus ideas para mejorar Visual Studio y por ende se abrió la gran Visual Studio Gallery. Allí aquellos desarrolladores hard core que lo que no encuentran lo construyen pueden exponer sus creaciones para que estén disponibles al resto de la comunidad. De manera que podemos encontrar un sinnúmero de aditamentos que nos van a permitir personalizar nuestro IDE para ser aún más productivos y realmente hacer un Pimping a nuestro rIDE.

    En el video he usado Visual Studio 2010 Ultimate, pero en general con las extensiones de VS ocurre que siempre se ponen disponibles para las nuevas versiones de Visual Studio que van saliendo. En este caso, la versión 11. De hecho, hay extensiones que han sido tan buenas y usadas, que en Visual Studio 11 ya vienen nativas y disponibles sin instalaciones adicionales, como lo veremos en el video. Entonces pasemos a la acción, donde enseño las extensiones que siempre aplico a mi Visual Studio:

    Addons Usados:

    Aquí el listado de las extensiones mostradas:

    Nombre

    URL

    Productivity Power Tools

    http://bit.ly/g4fUGG

    Background Customizer

    http://bit.ly/fXhJOF

    Color Theme Editor

    http://bit.ly/fPKKEV

    Dark Expression Blend Color Theme

    http://bit.ly/aYDWOG

    WarMatrix Theme

    http://wnov.it/WarNovTheme

    Hide Main Menu

    http://bit.ly/hQoFYI

    CSharpIntellisensePresenter

    http://bit.ly/GLp8ht

    Numbered Bookmarks

    http://bit.ly/hSbRdy

    Presentation Zoom

    http://bit.ly/hAMtDI

    MoveToRegionVSX

    http://bit.ly/GJZ5M1

    Y tú? Ya usas alguna extensión no citada aquí y quieres recomendarla? Súper si la adjuntas a este post en los comentarios!

  • WarNov Developer Evangelist

    Shortcuts de teclado para aplicaciones Windows

    • 0 Comments

    En Windows, y aún en la experiencia Desktop de Windows 8, podemos asignar shortcuts de teclado a las aplicaciones que más usamos o que más nos convienen, para poderlas activar desde el teclado sin necesidad de buscarlas o hacer click en su ícono.

    En este corto video, muestro como.

     

  • WarNov Developer Evangelist

    Divide y Vencerás (Windows Azure)

    • 0 Comments

    Suponga que Ud. ha creado el siguiente Facebook… o twitter

    Millones de usuarios acudirán a sus servicios.

    Sé que a estas alturas la respuesta a la siguiente pregunta es sencilla para muchos, pero para los que están empezando hasta ahora, es mejor clarificarla y ese es el motivo de este post:

    Es mejor tener un servidor gigante, poderoso y costoso? O un montón de unidades de cómputo baratas?

    La respuesta la copio de un twitt que puse (ligeramente extendido)
    La instancia cara pero poderosa, llegará a un límite en el que no puede aceptar más ram o cpus; en este momento, el mega servicio que nos inventamos, ya no podrá soportar más usuarios; además qué pasa si se cae? No tendríamos cómo respaldarla y el servicio dejaría de funcionar.

    Aunque esto hoy día parece muy evidente, back in 1995, ni siquiera grandes empresas tecnológicas como Amazon lo tenían muy en cuenta. Ellos comenzaron con su sistema como un gran silo de software/hardware para su gigantesco sitio de ventas online. Pero ya en 2002, viendo todas las posibilidades que se venían en el futuro y sabiendo que un acercamiento monolítico haría muy difícil a sus sistemas crecer, implementar más funcionalidades y sobretodo soportar más usuarios, el CEO de Amazon, el señor Bezos, toma la decisión de reorientar todo el sistema a un modelo en el que se pudieran tener muchos componentes de software independientes que también pudieran funcionar en unidades o instancias de hardware independiente. Básicamente, a todos los desarrolladores se les dieron estas estrictas normas para trabajar:

    1. Todos los equipos deberán exponer los datos y las funcionalidades a través de interfaces de servicios.

    2. Los equipos se deben comunicar entre sí a través de estas interfaces.

    3. No habrá otra forma de comunicación aceptada.

    4. Sin importar qué tecnología usen, estas reglas se deben cumplir. A Bezos no le interesa.

    5. Todas las interfaces sin excepción, deben ser diseñadas pensando en ser expuestas al resto del mundo... Sin excepción!

    6. Cualquiera que no haga esto, será despedido

    7. Gracias, y tengan un buen día


    Algo parecido sucedió con Facebook, en 2007, tres años después de ser fundada. En contraste, curiosamente Google+ que es de 2011, salió al aire sin una sola API. Tres meses después lanzaron solo una gran MEGA API que muestra todo lo que un usuario ve. Lo que la sigue mostrando como un Silo.

    En fin… esos componentes de los que nos habla el señor Bezos, son los que hoy conocemos como servicios, y esa arquitectura es la que conocemos como SOA y es la que ha dado origen a conceptos como Infraestructura como Servicio (IaaS), Plataforma como Servicio (PaaS), Software as a Service (SaaS) y Cloud Computing.

    Una vez logramos que nuestras aplicaciones no sean silos complicados de administrar y extender, tanto para tener más funcionalidades como para soportar más usuarios, empezamos a observar que necesitamos hardware adecuado para soportar estas instancias. Un hardware monolítico de ninguna manera podría aprovechar un software diseñado para poder crecer y ser cada vez mejor.

    Así nace el concepto de IaaS que permite a los usuarios tener disponibles un montón de máquinas en internet para que en ellas pongamos los OS que necesitemos y encima de ellos nuestras aplicaciones. Esto se comenzó a conocer como la nube. Lo bueno, es que son máquinas arrendadas y solo nos cobran lo que consumimos. Además podemos instalar lo que queramos. Lo malo, es que como hay que poner sistemas operativos y demás, son difíciles y costosas de administrar. Amazon es uno de los pioneros y grandes proveedores de IaaS.

    Uno como desarrollador soñaría mejor en tener cientos de miles de máquinas en la nube listas para nuestra mega aplicación, sin necesidad de preocuparnos del sistema operativo ni mantenimiento ni nada de eso. Y es allí donde nace PaaS. Windows Azure de Microsoft, es uno de los pioneros y grandes proveedores de PaaS. Obviamente el software que ponemos sobre Plataforma como servicio, en general se presenta como Software como Servicio (SaaS) dado que los costos de arrendamiento se trasladan a los usuarios finales quienes por ejemplo comienzan a pagar una mensualidad por los servicios del software que se prestan. Como se ve, el viejo esquema de licenciamiento se ve modificado, erradicando problemas de distribución, empaquetado, solución de errores, mantenimiento, etc. Además garantizando la posibilidad de atender a tantos usuarios como vayan llegando, siendo un servicio escalable y robusto.

    Esto lo notó Amazon y hoy también está implementando su propuesta de PaaS junto a muchos otros proveedores. Pero también resulta cierto que a veces, de acuerdo a la complejidad de la aplicación generada, se hace necesario poder administrar el sistema operativo sobre el cual corre, así sea esto más costoso. Es por esto, que Azure ya está implementando también alternativas de IaaS.

    Todo lo anterior responde a que hemos notado que son mejores instancias baratas que se puedan activar a discreción, de acuerdo a las exigencias que las aplicaciones van teniendo. Pero esto requiere un diseño de aplicación pensado en el patrón shared-nothing, donde cada instancia dentro de un tier no comparte nada con otras instancias del mismo tier. Esto es básico para PaaS y SaaS.

    En síntesis, los mayores proveedores están pensando en varias alternativas para tener hardware como servicio en el que nos sea muy barato poner nuestros servicios con una cantidad de instancias de cómputo “ilimitada” que pueda crecer de acuerdo a nuestros requerimientos y que nos permita ofrecer un servicio robusto en el cual si una instancia cae, las otras siguen respondiendo, mientras la caída es reemplazada. Los silos, están OUT.

    Windows Azure nos ofrece muchas ventajas sobretodo a nosotros desarrolladores de .NET, porque hacer aplicaciones para la nube es muy natural y familiar; no hay que aprender un montón de técnicas o lenguajes nuevos y tenemos el soporte y la seguridad que nos ha dado siempre Microsoft.

    Por ejemplo, en Windows Azure tenemos diversos tamaños para las instancias de cómputo sobre las cuales queremos poner nuestro software. Hay desde instancias Extra Grandes de 8 cores de 1.67GHz cada uno y 14GB de RAM hasta pequeñas con 1 sola CPUs y 1.75GB de RAM.

    El hecho de que se diga que es mejor unidades baratas de cómputo que un solo silo poderoso y costoso no quiere decir entonces que lo mejor sea escoger siempre instancias pequeñas. O sea, ya definimos que no vamos a poner el software en una sola instancia… así que nos falta determinar cuál es el tamaño que deberán tener las instancias que compondrán el sistema. Y esto se hace de acuerdo a las características de nuestra aplicación. Por ejemplo si es una aplicación que necesita responder a muchos usuarios peticiones poco complicadas, es mejor tener muchas instancias pequeñas. Pero si por el contario son más bien pocos los requests pero con una demanda de cómputo alta, es mejor escoger instancias más grandes. Experiencia, intuición y sobretodo muchas pruebas, nos mostrarán cuál es la mejor alternativa.

    Una de las inclusiones de Windows Azure en los últimos tiempos, fueron las instancias extra small. Estas instancias son muy baratas. Solo valen a 4 centavos la hora que estén encendidas. Tienen 768MD de ram y la CPU es compartida. Esto no quiere decir que sean como los servidores compartidos típicos de internet. Esto, en virtud a que no están compartiendo el disco duro asignado, ni las unidades de memoria, ni el OS, ni el App Server ni el Web Server. Lo único que se comparte, son los cores de cómputo. Las instancias extra small son recomendadas sobretodo para pruebas de concepto o funcionalidades muy básicas, teniendo en cuenta sus características. En general para aplicaciones de línea de negocio, es mejor comenzar a analizar desde las pequeñas hacia arriba.

    Post Complementarios:

    Stairway to Azure

    Windows Azure: Compilado de Recursos

    Agradecimientos a: @afwilliams y @julitogtu por provocar el post Smile

  • WarNov Developer Evangelist

    Microsoft Techday Cali

    • 0 Comments

    Microsoft llega Cali el próximo jueves 23 de Febrero, con el Microsoft TechDay, la conferencia de tecnología más importante para Desarrolladores y Profesionales de TI, en donde podrán ver en vivo las mejores tecnologías, productos y soluciones.
    Si estás desarrollando, implementando o administrando soluciones de Tecnología, este evento es la mejor oportunidad para enfocarse en las tecnologías clave y los escenarios de negocio que les ayudarán a enfrentar los retos del mundo real de TI y prepararse para las innovaciones de mañana.

    En este evento, personalmente les estaré contando todo lo que necesitan saber para comenzar a desarrollar aplicaciones de Windows 8.

    Windows 8 Logo

    También tendremos a dos de nuestros Microsoft Community Specialists caleños:

    El investigador y empresario Leonardo Bernal y el MSP Henry Ruiz, mostrándonos la integración de aplicaciones móviles de Windows Phone 7 con la nube de Windows Azure.

     

    cloudphone

     

    En un track paralelo, para los IT Pro, nuestro nuevo Evangelist, Alfredo Barba, nos estará contando de la Nube Privada de Microsoft y luego, tendremos a nuestro MCS Gold, Guillermo Taylor, mostrándonos lo que nos espera de SQL Server 2012.


    Pueden inscribirse para el evento en http://aka.ms/TechDayCol

    image

  • WarNov Developer Evangelist

    Azure: Computación en la nube, con precios bajo tierra

    • 0 Comments

    Tal cual… Antes, tener un servidor web en Windows Azure (Web Role) más una base de datos de una giga, nos costaba no menos de USD$100 mensuales.

    Pero que pasa con los emprendedores que tienen su aplicación para móviles o para pequeños clientes que no necesitan todavía tanto poder?

    No hay una forma más económica para acceder?

    A partir de hoy, sí!

    Ya tenemos base de datos de 100MB!! Y el costo por mes es de apenas USD$5 por mes! Y esto incluye todo el poder de SQL Azure: Alta Disponibilidad, Tolerancia a Fallos, Auto Administración, Escalamiento Elástico, Conectividad On-premises y full SLA.

    Súmenle esto al costo de una instancia Extra-Small completamente dedicada a ustedes donde podrán desplegar su sitio/servicio que accede a la DB. Esto vale USD$28.8. Redondeando, esto nos llevaría a USD$35 como precio de arranque en Azure para una APP con un servidor web y base de datos.

    Otros costos, en las tablas que les dejo a continuación.

    Tamaño de MV

    CPU Cores

    Memoria

    Costo por Hora

    Extra Small

    Shared

    768 MB

    $0.04

    Small

    1

    1.75 GB

    $0.12

    Medium

    2

    3.5 GB

    $0.24

    Large

    4

    7 GB

    $0.48

    Extra Large

    8

    14 GB

    $0.96

    Tamaño de la BD

    Precio por mes (USD)

    0 a 100 MB

    $5.00

    de 100 MB a 1 GB

    $9.99

    de 1 GB a 10 GB

    $9.99 por la primera GB, $4.00 por cada GB adicional

    de 10 GB a 50 GB

    $45.99 por las primeras 10 GB, $2.00 por cada GB adicional

    de 50 GB a 150 GB

    $125.99 por las primeras 50 GB, $1.00 por cada GB adicional

    Tangamos en cuenta sin embargo, que 100MB no es un tipo de DB que escojamos al crearla. Solo sucede que si por ejemplo escogemos una DB de 1GB pero el consumo siempre se mantiene por debajo de 100MB, entonces el cobro siempre será solo de USD$5.

    Como se observa, entre más grande el servicio, más barato!

    Recordemos que cuando salió Azure, 50GB de SQL Azure nos costaban USD$500! Hoy valen $125.99.

    Seguimos aterrizando los precios…

  • WarNov Developer Evangelist

    Me sirve en Development Environment, pero no en Azure!

    • 0 Comments

    Este post estará dedicado a recopilar las posibles causas por las cuales una aplicación Windows Azure corre bien en desarrollo, pero no puesta en el cloud.

    1. Aplicaciones basadas en la hora: Recuerden muy bien que la hora de los servidores en Windows Azure, no es la misma que aquella que uds. tienen en sus máquinas de desarrollo. Bueno, a menos que vivan sobre el meridiano de Greenwich. Para ser más explícitos, la hora de estos servidores es UTC. Mientras que por ejemplo Colombia es UTC-5. Así que tengan esto en sus cuentas.

    2. La cultura por defecto en los servidores de Azure, puede variar con respecto a la de sus máquinas. En Azure es por defecto en-US, con todo lo que esto conlleva con respecto a determinación del punto decimal y demás. Si ustedes por ejemplo tienen una rutina que convierte strings en números decimales, tengan muy en cuenta que los símbolos de separación de decimales por ejemplo pueden cambiar y la aplicación se comportará distinto. Esto puede pasar con fechas, etc.

    3. Por defecto Windows Azure no maneja variables de sesión ni aplicación distribuidas. Así que si observan que los valores de estas variables desaparecen cuando tienen más de una instancia en la nube, piensen que es hora de adquirir los servicios de AppFabric para poder tener este caché distribuido y que sus aplicaciones se comporten igual en la nube. Por qué pasa esto? Cuando hacemos un request, nos contesta por ejemplo el WebRole A. Allí iniciamos la variable de sesión MiIngenuaVariable. Luego volvemos a hacer un request, pero esta vez el LoadBalancer lo envía al WebRole B. Estos WebRoles, no comparten la memoria y solo fueron iguales al principio de la ejecución del servicio. Luego cada uno comenzó a tener una historia distinta. Entonces cuando consultamos la variable MiIngenuaVariable, claro, estará en NULL.

    4. Creé un pdf, lo grabe en el disco duro del servidor y luego cuando lo llamé ya no estaba? Juas! Muchos me han llegado con ese problema y es muy parecido al anterior. Recuerden que no se comparte el estado cuando tenemos varias instancias. Entonces una instancia no tiene ni idea de lo que hemos grabado en el disco duro de otra. Así pues, la solución es que los archivos que requieran ser consultados luego, los graben en el Blob Storage, donde quedarán con una dirección única accesible desde cualquier instancia o desde cualquier parte del universo que posea internet.

    5. Los cambios que hago en mi despliegue se revierten! Despliego mi servicio, luego ejecuto una rutina para modificar unos archivos de configuración (bien sea incluida en el servicio, o a través de RDP). Luego al otro día, esos archivos de configuración ya no están como los dejé y el servicio me falla!!! Eso pasa, porque en Windows Azure las máquinas ocasionalmente se reinician y vuelven a su estado original; esto es producto de patchs que se aplican, o reinicios determinados por el AppFabric al ver que una instancia se está comportando necia, o no quiere responder educadamente. En esots casos, la instalación vuelve a quedar idénticamente a como estaba la primera vez. No esperes encontrar tus modificaciones en caliente! Se espera que a futuro cercano los VM Role de Windows Azure tengan estas capacidades. Se llamarán VM Role Persistentes. Por ahora, lo recomendado obviamente es que estos valores de configuración sean almacenados en el archivo ServiceConfiguration, que es una archivo separado del paquete de despliegue, por lo que sus valores permanecerán una vez sean modificados, aun cuando se reinicien las instancias. Lo mejor de todo, es que estos valores se pueden cambiar “en caliente” de una manera muy sencilla desde el portal de Windows Azure.

    6. La aplicación me trae los datos más rápido de mi SQL Server local que de SQL Azure! Por caridad, espero que no hayan puesto en Azure la DB de SQL Azure en North US y luego la aplicación en South Central! Imagínense la cantidad de espacio que han de recorrer sus datos antes de llegar al destino! Usen siempre el mismo grupo de afinidad! Para Colombia y Sur América en general, es mejor siempre poner todo en South Central US.

    Otros ejemplos que vaya encontrando los iré anexando a esta guía. Keep on coding!

  • WarNov Developer Evangelist

    SQL Azure: Index was outside the bounds of the array

    • 1 Comments

    Dice el corresponsal, que trabajando con SQL Server Management Studio conectándose a SQL Azure, luego de estar conectado y ejecutar algunas consultas sin problemas, empieza a experimentar comportamientos erráticos, que no le permiten borrar objetos de SQL Azure ni tampoco obtener el script de creación de los mismos, obteniendo siempre el mensaje de error: Index was outside the bounds of the array

    He de decirles, que esto sucede dado que desde el último cambio grande en la estructura de SQL Azure en Julio del año pasado, es necesario acceder a SQL Azure usando la versión SQL Server 2008 R2 SP1 . Que ya está preparada para los cambios que hubo en SQL Azure.

    El número de versión de SSMS con el que deben quedar, es 10.50.2500 a hoy, febrero 11 de 2012, para poder acceder correctamente a SQL Azure. Esto debería ser suficiente para evitar esos comportamientos “erráticos”.

  • WarNov Developer Evangelist

    Windows 8: Lo que deberías saber y nadie te ha contado

    • 7 Comments

    Ya a estas alturas del partido, sabrás que con Windows 8 vienen grandes innovaciones dentro de este sistema operativo. Eso, si es que no lo has probado por tu propia cuenta, bajándolo gratuitamente de aquí. Cualquier máquina que corra Windows 7, te servirá para probarlo.

    La innovación más grande por su puesto es la inclusión del ambiente de Interfaz Moderna

    clip_image002

    En pocas palabras, el ambiente de Interfaz Moderna está orientado a ser amigable en dispositivos con touch screen. Específicamente Tablet PCs y Slates:

    Ojo: que esto no quiere decir que el desktop tradicional haya desaparecido. Este sigue existiendo y también ha evolucionado con muchas mejoras como un Explorer con Ribbon, copia de archivos optimizadas, soporte a USB3 para velocidades de transferencia impensables y otras más que pueden encontrar en el blog oficial de Windows para usuarios finales.

    Desktop8

     

    Desde el punto de vista de un desarrollador, el ambiente desktop no tiene muchos cambios radicales a nivel de presentación de nuestras aplicaciones. Habría que tener sin embargo en cuenta las novedades de la nueva versión del Framework .NET que viene con Windows 8, que es la 4.5 y que entre otras cosas interesantes, tiene la inclusión de Async, que nos permite crear interfaces fluidas de una manera más sencilla. Sin embargo, básicamente podemos pensar en estos cambios como sencillamente un par de librerías más por aprender.

    El cambio radical está en la interfaz Moderna:  aunque es radical solo en estructura; pues como veremos, la programación es la misma. De hecho, si ya sabes .NET y XAML o HTML y Javascript, ya sabes programar para Windows 8 en Interfaz Moderna!

    Pero antes de describir estos cambios estructurales consideremos el por qué de aplicaciones de Interfaz Moderna o Windows Store Apps, como son más conocidas, ya que estas apps solo van a estar disponibles a través de una tienda online llamada el Windows Store. Es evidente que la movilidad se ha vuelto supremamente importante hoy en día y que todos queremos tener un sistema operativo fácil de transportar. Hemos visto que estas características son ofrecidas por los tablets y slates. Que estos en general no poseen teclado, sino que son muy basados en touch. Entonces, necesitábamos una versión de Windows adecuada para estos escenarios. Esto sin mencionar que la durabilidad de la batería es súper importante. Queremos que nuestro dispositivo aguante aunque sea todo un día de trabajo sin necesidad de ser conectado a la electricidad. Pero para lograr esto, requerimos de procesadores y discos duros que no consuman tanta energía y de un diseño de aplicaciones que las permita suspender de manera óptima para ahorrar hasta el último vatio cuando no se estén usando.

    Existe un tipo de procesador que tiene un consumo supremamente bajo de energía y que fácilmente puede garantizar 8 horas de funcionamiento. Es el procesador ARM.

    Cómo pueden garantizar esto? Pues teniendo un conjunto de instrucciones reducido en comparación con los procesadores de arquitectura x86 o x64 a los que estamos acostumbrados en nuestras PCs. Es un precio que hay que pagar para lograr durabilidad. Pero si lo vemos bien, un rediseño del sistema operativo pensando en aplicaciones fácilmente suspendibles y en la eliminación de características que no son muy necesarias en un dispositivo móvil, sumado a la inclusión de hardware especial como los discos duros de estado sólido, nos permite tener un aparato que funciona como lo necesitamos y con la duración requerida. Como si fuera poco, por añadidura cuando logramos esto, tenemos un sistema operativo que arranca y está listo para usarse en tiempo de solo 3 segundos!!! Lo cual es una característica súper importante para la movilidad.

    En síntesis, se requería un ambiente de aplicaciones amigables al tacto, que corrieran de manera óptima en procesadores ARM (y por ende en procesadores de arquitectura tradicional) y que además ofreciera muchas facilidades para tener una experiencia de usuario impactante.

    Y precisamente eso es lo que ofrece la interfaz Moderna.

    Esta gran iniciativa nuestra no para con la creación del sistema operativo y la habilitación de excelentes dispositivos móviles que lo usan. También dispondremos de un marketplace: Windows Store. Diseñado específicamente para enriquecer el ecosistema de Windows Store Apps que se van a empezar a requerir bajo este nuevo esquema. Aplicaciones innovadoras, muy atractivas para el usuario que van a poder ser vendidas y compradas de una manera muy sencilla a través del store. Cualquier desarrollador desde su casa va a poder crear su aplicación, subirla al atore y empezar a recibir ganancias por ella, muy al estilo de Windows Phone. Y en este caso, para Colombia tenemos garantizado el acceso al store. Somos uno de los pocos países de Latinoamérica con este privilegio.

    Visto lo visto, supongo que ahora estarás preguntándote cómo crear estas Windows Store Apps…

    Como te dije antes, si sabes .NET; en especial Silverlight, entonces ya sabes crearlas!!! Además, no necesitas ser un desarrollador experimentado en .NET para lograrlo. Si sabes HTML y Javascript, también el desarrollo de este tipo de aplicaciones está a la mano. Así que si has desarrollado sitios web por algún tiempo con cierta carga de Javascript, también estás listo para arrancar! De hecho si tu experiencia es en C++, también hay cabida para ti.

    Lo único necesario es aprender un par de librerías más; tarea nada difícil, teniendo en cuenta que el intellisense es completo para todos los lenguajes aceptados en la plataforma de desarrollo para Interfaz Moderna.

    Entonces, ya sabiendo que a nivel de desarrollo todo funciona de una manera familiar, entremos un poco más y aprendamos realmente cuál es la plataforma sobre la que están las Windows Store Apps.

    WinRT

    WinRT es la abreviación de Windows Runtime. Y es la plataforma sobre la cual se programan aplicaciones de tipo Interfaz Moderna para Windows 8.

    WinRT NO está basada en .NET. De hecho, WinRT está al nivel del API nativa de Windows por excelencia que es Win32. WinRT accede nativamente al Kernel de Windows, ofreciendo gran velocidad de ejecución por un lado y por otro una abstracción muy útil para poder acceder a todos los recursos del sistema a través de un paradigma orientado totalmente a objetos, de una manera extremadamente sencilla.

    .NET tradicional trataba de solventar esta tarea… pero alguna vez trataron de acceder a la webcam de su máquina para obtener una sencilla foto? Si es así de seguro recordaran lo divertido que es hacer los DLLIMPORT requeridos para traer APIs de WIN32.

    Con WinRT estos llamados ya no son necesarios, pues la conexión ya es directa y se logra completamente a través de objetos ya existentes en la plataforma.

    WinRT está basado en 33 APIs nativas con las que se puede acceder al core de sistema operativo. Como se aprecia, están divididas en 5 grandes grupos: Fundamentales, Dispositivos, Media, Comunicaciones y Datos e Interfaz de Usuario.

    clip_image007

    En general WinRT se presenta como la base sólida y eficiente para construir Windows Store Apps.

    De acuerdo a lo anterior, si equiparamos a WinRT con .NET tradicional, tendríamos una gráfica como la siguiente:

    clip_image009

    Como lo había mencionado vemos que WinRT (la zona verde) accede directamente al Kernel de Windows, de igual forma que lo hace .NET, Win32 e Internet Explorer. Vemos sin embargo que estos últimos van a estar destinados para las aplicaciones de escritorio tradicionales, con los conocimientos que ya tenemos.

    WinRT está basado en un modelo de aplicaciones (Application Model) en el cual cada aplicación es una clase como tal (contenedora de otras clases), que son instanciadas por el proceso WWAHost.exe que es el encargado de administrar funciones como la suspensión. Cada aplicación es instanciada por un WWAHost independiente, a través del ejecutable de la aplicación que aparece como miaplicación.exe, pero tiene el comportamiento particular de luego lanzar el Host:

    image

    Esto me recuerdo mucho el viejo esquema de COM; y efectivamente muchos de los conceptos de WinRT provienen de allí, excepto que ya no usamos un acercamiento basado en interfaces sino basado en objetos. Además tenemos variedad de lenguajes gracias a las proyecciones y también nos podemos olvidar del DLL Hell, gracias a la metadata que aún conservan los componentes de WinRT, que son una gran herencia de .NET, que por su puesto sigue su camino en aplicaciones de escritorio convencionales, así como en las capas de backend y servicios en los sistemas n-layer.

    Vemos que sobre este modelo de aplicaciones tenemos todas las apis que describí anteriormente y que básicamente nos permiten acceder a los recursos del sistema y a librerías que nos facilitan el desarrollo de nuestras aplicaciones.

    Sobre las apis, ya podemos extender nuestras proyecciones de lenguaje que nos permiten acceder a ellas de distintas maneras, de acuerdo a nuestros gustos. Si somos familiares con Silverlight y .NET, usamos VB o C#. También podemos usar C++ o si venimos del mundo Web, podemos usar Javascript que usa el motor Chakra. El mismo de Internet Explorer.

    Finalmente, sobre estas proyecciones de lenguaje ofrecemos los lenguajes de marcado para poder crear interfaces declarativamente. No es más que el típico XAML que conocíamos de WPF, Silverlight y WP7 para cuando usemos C#, VB e interesantemente C++. SI algo recuerdo con pena y dolor de C++, es la creación de interfaces gráficas a punta de C++. Era algo completamente dispendioso, complicado y propenso a errores. Ahora tenemos todo el poder nativo de C++, complementado por el poder declarativo de XAML para la UI.

    En el caso de Javascript, naturalmente el lenguaje de presentación viene a ser HTML acompañado de CSS para la definición de estilos. Esto obviamente hará muy fácil traducir aplicaciones HTML5 para web, a aplicaciones HTML para Windows Store.

    .NET y WinRT

    Ya vimos que básicamente estos son dos stacks distintos dentro de Windows. Sin embargo, dado que WinRT ofrece proyecciones de lenguaje para C# y VB, el resultado es que la mayoría de librerías de .NET tienen su equivalente en WinRT. Algunos métodos tienen diferencias sutiles y encontramos nuevas librerías en WinRT que mejoran el acceso a dispositivos y recursos del sistema. De hecho es posible para nosotros crear componentes en .NET que puedan ser consumidos por WinRT, siempre y cuando usen las librerías del Namespace Windows.

    Componentes en WinRT

    En WinRT podemos crear componentes que pueden ser reutilizados en otras apps WinRT. Todos los componentes y aplicaciones generan una metadata que permite un versionamiento transparente y la garantía de que las aplicaciones correrán correctamente en el futuro.

    Cómo comenzar con WinRT y Windows 8?

    Es muy sencillo y free, solo tienes que bajarte tu versión de desarrollador de Windows 8 que además incluye las herramientas de desarrollo que en este caso es Visual Studio 2011, de este link.

    Además para más recursos y videos instructivos, les recomiendo visitar el sitio oficial de Windows para desarrolladores: http://buildwindows.com y http://dev.windows.com. Para saber más de Windows Store Apps: http://msdn.microsoft.com
    /windows/apps
    . Para comentar y resolver dudas: http://forums.dev.windows.com. Para saber más del marketplace: http://blogs.msdn.com/b/windowsstore; para saber más de características de usuario final de sistema operativo, visiten el blog oficial. Y para obetener la información de primera mano desde las redes sociales:

    Facebook (developer)

    http://fb.windows.com/developers

    Twitter (@b8)

    http://twitter.com/BuildWindows8

    Twitter (@windevs)

    https://twitter.com/windevs

    YouTube (developer)

    http://www.youtube.com/user/WindowsVideos

  • WarNov Developer Evangelist

    ActivaTV: La evolución del Webcast

    • 0 Comments

    Como han de saber, uno de los medios que hemos usado para comunicar y difundir nuestras tecnologías, es el Webcast.

    Un mecanismo a través de nuestra herramienta de LiveMeeting, que permite a la audiencia conectarse a una reunión virtual donde un speaker activa su PPT y la expone.

    Con el ánimo de hacer esta actividad más dinámica y agradable, desde Microsoft Colombia hemos preparado {Activa}TV. Un espacio donde a través de LiveMeeting transmitiremos varias secciones en las que actualizamos a la audiencia con lo último de nuestras tecnologías y actividades.

    Es así como en este “show” tendremos un tema principal tratado de una manera distinta a las típicas presentaciones magistrales. Será más bien un diálogo en el que se podrá aprender de la tecnología que se trata. Estaremos presentando además casos reales de aplicación de nuestras iniciativas en la industria nacional. También tendremos sección de noticias y concursos.

    En general, este espacio lo estaremos llevando a cabo mensualmente, el primer martes y estaremos contando con diversos invitados.

    Nuestra primera emisión será este martes 7 de febrero. El tema principal será Windows 8 y los fundamentos de su nueva plataforma de desarrollo. Y dentro de nuestros invitados, contamos con un emprendedor que usando nuestras iniciativas logró sacar un producto que hoy día es crucial para las entidades de salud en nuestro país.

    Regístrense a {Activa}TV para que se activen desde sus casas u oficinas aquí: http://aka.ms/activatv

  • WarNov Developer Evangelist

    Múltiples Líneas en los Textblock de Windows Phone 7

    • 2 Comments

    Nivel: Básico: 100.

    También surgido de otra pregunta que me hicieron en http://formspring.me/warnov, aquí una corta explicación de cómo funcionan los Texblock multilínea en WP7.

    Básicamente la duda de este developer, era cómo hacía para generar un Textblock (Texto no editable que aparece como nativo en la interfaz) que presentara varios párrafos.

    Lo primero que debemos garantizar, es que el TextBlock haga autoajuste de línea de acuerdo al ancho que tenga en determinado momento. Para esto ajustamos la propiedad de “ TextWrapping” en Wrap. Luego, existen varios métodos para agregar el texto que viene en párrafos.

    El primero, es aprovechando la mayor flexibilidad que nos da el editor XAML para asignar textos. Como ven, sencillamente podríamos traer nuestros párrafos tal y como están por ejemplo en Word o notepad y asignarlos al control:

    image

    Como ven es un sencillo copy paste o escribir las líneas y darles el salto de línea donde sea pertinente.

    Este copy paste también se puede ejecutar en el cuadro de propiedades:

    image

    Sin embargo si queremos escribir las líneas, observaremos que para darles un salto de línea el Enter no funciona. Sencillamente usamos Shift+Enter y listo. Tendremos nuestro salto de línea. Y el resultado es el esperado:

    image

    Obviamente, este tipo de ajuste de contenido no es posible en tiempo de ejecución, ya que no podremos copiar/pegar de ningún lado, sino indicar con una variable el contenido. Esta variable es fácil de armar con el carácter especial de cambio de línea \n:

    txbInstructions.Text = "primera larga línea \n segunda \n tercera";

    Esto nos da:

    clip_image008

    Y qué pasa si el texto está en un archivo de recursos?

    En un mercado de aplicaciones como el de Windows Phone 7, es muy importante ofrecer la capacidad de multilenguaje de nuestras aplicaciones, así que es muy frecuente que nos encontremos con la necesidad de crear un archivo de recursos distinto para cada lenguaje a usar. En estos casos, cada archivo tiene los textos a usar. Entonces cómo poner valores multilínea en los archivos de recursos?

    Allí también podemos copiar y pegar de otra fuente. Igual funciona el mecanismo de Shift+Enter para ingresar un salto de línea.

    image 

  • WarNov Developer Evangelist

    Replicando una aplicación tradicional a Windows Azure I: Base de Datos

    • 0 Comments

    ABSTRACT

    Esta es una serie de post en la que exploraremos las condiciones que deben tener las aplicaciones web para poderse ejecutar desde Windows Azure, bien sea porque se requiere hacer una migración, o porque se quiere tener las dos versiones (hosting tradicional y cloud computing) para una aplicación dada. Este es el post 1/3 y mira los aspectos esenciales a tener en cuenta en lo referido a bases de datos. Los siguientes dos hablarán de la capa de negocios, y de la interfaz gráfica como tal.1

    Nivel: 100-200 Básico

    El rango de opciones para tener una aplicación que se comporte igual de bien tanto en Windows Azure como en servidores tradicionales, depende mucho del tipo de aplicación que se tenga. En esta serie de posts, estaré tratando únicamente aplicaciones web (también en Azure se pueden desplegar servicios destinados a ser consumidos por clientes inteligentes, móviles, a través de TCP, etc).

    Las aplicaciones Web estándar, generalmente tienen la siguiente distribución: Una base de datos (Sql Server, Oracle, etc), una capa de acceso a datos (Entity Framework,LINQ2SQL, ADO.NET, Hibernate, etc) , una capa de negocio (uno o varios proyectos de tipo Class Library) y una capa de presentación conformada por WebForms.

    En este post específico, estaremos observando qué pasa primero con la base de datos:

    Base de datos

    SQL Server

    Si la base de datos viene siendo SQL Server o alguna de sus variantes (Como SQL Compact, SQL Express, etc), nos encontraremos con el caso más sencillo a desplegar en Windows Azure, donde como saben el acceso es casi transparente para las aplicaciones que usan estas variaciones.

    Los temas que deberíamos tener en cuenta en este caso serían sobretodo aquellos que tienen que ver con escenarios muy específicos como:

    1. Consultas distribuidas (no son soportadas)

    2. Tamaño máximo por Base de datos de 150GB

    3. El escenario actual de SQL Azure está completamente enfocado a almacenamiento transaccional y reportería. No tenemos aún servidores de integración ni BI en SQL Azure. Solo OLAP y Reporting. Sin embargo esto no impide que servidores externos a Windows Azure puedan conectarse a las bases de datos de SQL Azure para manipular su información.

    4. La estructura interna e implementación física de SQL Azure es distinta a la de SQL Server; sin embargo para los clientes esto es totalmente transparente, pues SQL Azure ofrece la interfaz TDS que soporta perfectamente las cadenas de conexión tradicionales, así como el T-SQL que todos conocemos. De esta manera podremos acceder a la DB a través de ADO.NET, OLEDB, ORMs como NHibernate, LINQ, Entity Framework y muchos otros.

    Otros temas más fáciles de solucionar se pueden arreglar automáticamente a través del Sql Azure Migration Wizard

    Otros Motores Free

    Si la base de datos se encuentra en otros motores free como MySql, tendremos una limitante total y es el hecho de que para poder instalar un MySQL en Windows Azure, es necesario usar el VM Role de Windows Azure, que permite crear una máquina virtual a la cual le adicionamos un disco duro virtual (VHD) que tiene la configuración previa que le hemos hecho. Esta configuración previa entonces puede incluir la instalación de MySQL por nuestra parte antes de agregar el VHD. Sin embargo, los VM Role son stateless. Esto quiere decir que si por algún motivo la máquina ha de ser reiniciada, todos los cambios generados desde la distribución del VHD se perderían. Situación nada conveniente cuando se tiene la DB instalada en una instancia. En un ambiente de Web Roles y Worker Roles, esto no es un inconveniente, pues su única función es operar y no almacenar. El almacenamiento está en SQL Azure. Pero si en el VM Role ponemos una DB, con cada reinicio, aunque la DB aparezca instalada, estará restaurada a su condición inicial.

    Una de las próximas características que estaremos liberando en Windows Azure, son VM Roles persistentes que permitan instalar servidores de Sharepoint, Biztalk, y herramientas de terceros como MySQL y hasta otros sistemas operativos como Linux.

    Si se implementasen los VM Roles persistentes s instaláramos por ejemplo MySQL, tendríamos una complejidad adicional y estaríamos desperdiciando ciertas características de nuestra plataforma.

    Cuando tenemos un servidor como MySql, que es gratuito, no tendremos ningún problema en instalarlo en un VM Role de Windows Azure. Esto se logra haciendo una instalación del MySQL en una máquina virtual local, y luego subiendo el disco duro de esta máquina virtual a Windows Azure, donde quedará desplegada para ser accedida desde cualquier parte del mundo. Como se aprecia, ya de entrada hay una complejidad y es el proceso de preparar la máquina virtual y luego subirla a Windows Azure.

    Otros problemas se presentan cuando nuestra base de datos MySql comienza a requerir escalabilidad. Es así como si la máquina en la que habíamos instalado el MySql ya no es suficiente para los requerimientos de nuestros usuarios, habremos de entrar a una operación manual de migración hacia una máquina más grande.

    Sql Azure está diseñado para auto escalar los recursos que necesita, de acuerdo a la demanda por parte de los usuarios. Es así, como automáticamente se administra la memoria, discos, etc., para brindar un funcionamiento óptimo.

    Por otro lado, dado que la única opción para instalar MySql sería en un VMRole, entonces necesitaríamos entrar a ejecutar operaciones administrativas adicionales a las que requeriríamos si usáramos solo SQL Azure. En SQL Azure nos desentendemos de la administración del sistema operativo, sus parches, sus actualizaciones, etc. Solo nos enfocamos en usar y mejorar la base de datos. Pero el VM Role al estar más cerca a la Infraestructura como Servicio (IaaS) que a la Plataforma como Servicio (PaaS) requiere un trabajo manual que en SQL Azure se puede omitir completamente.

    Todo esto sin mencionar que no habría un SLA para la MySQL, mientras que para SQL Azure si hay y es de 99.99%

    Recomendación: Migrar la DB a SQLAzure

    Otros motores no Free

    Otros motores no free, como Oracle se podrían instalar en Windows Azure, con las mismas consideraciones de los motores free. Pero adicionalmente le deberíamos sumar otra complejidad, y es que por lo general estos productos aún no tienen definida una licencia específica para ser instalados en esquemas de Cloud Computing como Windows Azure, por lo cual se podría entrar en conflictos legales al desplegar un servidor de estos en la nube. Primero ud. Debería consultar con su proveedor e investigar alrededor de este tema.

    Recomendación: Migrar la DB a SQLAzure.

    Conclusión:

    Una aplicación web que se pueda desplegar fácilmente entre ambientes tradicionales y Windows Azure, debería emplear para su DB (si es que usa DB), un esquema SQL Server. Luego, en la evolución hacia la nube, este SQL Server debería migrarse a SQL Azure (las aplicaciones tradicionales se pueden poner a apuntar a la nube y seguirían funcionando perfectamente) y finalmente la aplicación como tal se pasaría de los servidores tradicionales a la nube, sin tener que hacer cambios sobre la DB. Recordemos que operaciones de Servicios de Integración de Datos, Análisis y Minería siguen estando disponibles a través de conexiones de servidores externos que tengan estas funcionalidades, a la nube.

    Este es el post 1/3 y mira los aspectos esenciales a tener en cuenta en lo referido a bases de datos. Los siguientes dos hablarán de la capa de negocio y de la interfaz gráfica como tal.

  • WarNov Developer Evangelist

    Fallas en el despliegue remoto de aplicaciones al Emulador de Windows Azure

    • 0 Comments

    Abstract:

    En escenarios de testing, por ejemplo pruebas E2E, es necesario desplegar todo el ambiente en los llamados Builds Nocturnos, para verificar la completitud del sistema antes de pasarlo a producción. Las acciones requeridas generalmente se pueden automatizar, pero adquieren cierto nivel de complejidad cuando se trabaja con Windows Azure, en cuyo caso se requiere automatizar el despliegue sobre el Emulador en el cual se harán las pruebas. Esto presenta ciertos retos y aquí veremos cómo solucionarlos.

    Nivel: 400 – Avanzado

    Dice la corresponsal que ya tenía su .bat con todos los CmdLets de Windows Azure requeridos para su despliegue. Básicamente se requiere ejecutar las siguientes tareas:

    1. Apagar los emuladores del fabric y del storage de la máquina a operar
    2. Remover todos los despliegues existentes
    3. Inicializar ambos emuladores
    4. Desplegar el servicio al emulador
    5. Hacer un ping al servicio recién desplegado para verificar que quedó correctamente instalado.

    Me cuenta ella también que cuando entra a la máquina virtual de pruebas con su usuario y ejecuta el batch con las operaciones descritas anteriormente, este funciona correctamente y despliega los servicios sin ningún problema.

    Sin embargo, su objetivo es poder ejecutar el batch remotamente, en este caso a través de la herramienta psexec, que el gran Russinovich nos describe en este post. Desafortunadamente para ella, cuando usa este tool observa que el proceso no es exitoso, aun usando los switch –w (para ejecutar el batch como system y usando –i para seleccionar el id de sesión activa. De hecho me cuenta que hasta usó msbuild para llamar el bat, sin éxito.

    Solución:

    CSRUN.EXE es un tool de la línea de comandos que se instala con el SDK de Windows Azure. Su función es la de desplegar una aplicación o servicio al emulador de Windows Azure y administrar el servicio allí hosteado. Obviamente vemos que en el ejercicio que se intentó llevar a cabo CSRUN es parte esencial. Desafortunadamente, este tool no funciona correctamente y aparecerá como bloqueado si no es lanzado por una sesión interactiva en la máquina donde se encuentra el emulador. Por eso es que a nuestra apreciada corresponsal su solución le funciona cuando hace login con su usuario, pero no sirve usando psexec. Siendo una buena idea poner el switch –i para identificar el Id de Sesión, esto no basta para que csrun pueda identificar completamente la sesión. Así que es necesario ajustar la variable de sesión _DEVFABRIC_SESSIONID_ con el id de la sesión en la que se está corriendo. Con esto, se solucionará el problema de inmediato, así que solo basta adicionar en el bat el código necesario para ajustar esta variable de sesión.

  • WarNov Developer Evangelist

    Del Agregado de Referencias en Visual Studio 2010

    • 0 Comments

    A través del tiempo, una de las tareas que siempre ha representado pérdidas innecesarias de tiempo al desarrollar, fue buscar en el mundo de componentes y dlls, aquella que estábamos buscando. Recuerdo que era todo un pain in the… (sí… allá) encontrar por ejemplo System.Windows.Forms.DataVisualization.Design. Empezando porque el cuadro de diálogo tardaba mucho en cargar. Segundo, desplazarse por las diversas listas, también tenía bastante delay.

    En Microsoft recibimos bastante feedback al respecto, y mejoramos mucho esos tiempos.

    Por si fuera poco, gracias a la extensión gratuita para Visual Studio llamada Productivity Power Tools ahora tenemos un cuadro de búsqueda de estos assemblies difíciles de encontrar a mano (ver campo resaltado en azul).

    image

    Observarán ustedes queridos blog lectores, que también he resaltado un elemento en rojo? Lo habían visto?

    Este aviso solo aparece luego del SP1 de Visual Studio 2010. No lo han instalado? Pues junto a las tools de productividad deberían instalarlas ya… en serio, ya!

    El aviso es una excelente cura a un mal bastante molesto que teníamos antes del Service Pack originado por la inclusión del .NET Framework Client Profile.

    Sucede que con Visual Studio 2008 SP1 se incluyó la posibilidad de desarrollar una aplicación orientada a este Client Profile, que no es más que un subconjunto de .Net mucho más pequeño que la versión completa.

    Esto, pensando que muchas veces codificamos aplicaciones de escritorio que no necesitan saber por ejemplo de ASP.NET para funcionar. Por ende, reducimos la cantidad de dependencias que requiere y por ende las máquinas en que instalemos nuestra aplicación no requerirán de todo el Framework .NET, sino de un subconjunto de este, que tan solo pesa 28MB y trae la mayoría de funciones básicas para una aplicación cliente de escritorio.

    En realidad es algo muy benéfico para la mayoría de casos, pero el problema es que por defecto, desde VS2008SP1 todos los proyectos de WinForms creados, quedan por defecto orientados al Client Profile, entonces cuando uno quería hacer algo avanzado, como por ejemplo una comunicación desde el Form a un servicio Web sencillo a través del Objeto WebClient, por más que buscara System.Net, no lo encontraba! De pronto a ud. Le pasó y se sintió muy frustrado de no saber por qué era. La razón, es que al estar el proyecto orientado al Client Profile, se filtran las dlls que aparecen en el cuadro de diálogo de agregar referencias y solo se muestran las de este perfil. Entonces la solución era cambiar el profije por ejemplo al Framework 4.0 completo, y ahí sí ya nos comenzaban a aparecer. Pero esta solución solo se hallaba solo después de dar muchas vueltas, “cacharrear” y buscar por todo lado.

    Ahora, con agrado les cuento que después del SP1 en VS2010, esta situación ya ha sido solucionada. Aunque por defecto igual, si escoge ud. desarrollar una aplicación de WinForms, esta estará orientada al Client Profile, ahora las DLLs no son filtradas, sino que aparecen en un color gris  especial que las identifica. Si ud. Llega a escoger una de estas DLLs, de inmediato le aparece el aviso que señalé en rojo! Así que esa es la razón de ser de ese aviso: Indicarnos que si escogemos esa dll, estaremos cambiando la orientación de nuestra aplicación desde Client Profile, a usar todo el Framework completo. Esto ya es totalmente intuitivo y no nos deja con la duda de por qué diablos no me aparece la dll que buscaba…

    Cuando cerramos el cuadro de diálogo, nos aparece esta confirmación que nos pregunta si en realidad queremos cambiar la orientación del proyecto. Si lo hacemos, todos los archivos abiertos del proyecto se cierran, y luego de esto casi que de inmediato, se produce el cambio, quedando nuestro proyecto listo para usar todo el poder del framework completo:

    clip_image003

  • WarNov Developer Evangelist

    Paso a paso para instalar SQL Server 2012 Evaluation en Windows 7 SP1 (32 bits)

    • 0 Comments

    La versión 2012 de Sql Server ya está muy evolucionada. Nuestro servidor de Base de Datos ahora está ahora enfocado nativamente a trabajar con Cloud Computing y tiene unas mejoras que siempre hemos esperado y además sorpresas en su funcionamiento que nos hacen nuestro trabajo cada vez más fácil y agradable.

    La siguiente, es una guía de instalación de este producto que en su momento tuvo el nombre código Denali.

    Ha sido preparada por un gran amigo muy querido por toda la audiencia técnica de Latinoamérica. Se trata de Guillermo Taylor, quien muy amablemente me  ha permitido invitarle a postear su guía en mi blog. Guillermo es reconocido sobretodo por los IT Pros. Y es que SQL Server es una tecnología que une ambos mundos: Desarrollo y IT de una manera muy fluida. Es por esto que aprovecho este post, para anunciar el estreno del blog para IT Pros Colombianos. Que estará tratando temas específicos de esta área y donde encontramos como regalo de bienvenida dos excelentes libros para IT Pros. Además, este post también estará allí, para que la audiencia de IT lo encuentre en un ambiente más especializado para ellos.

    Sin más preámbulos, aquí los dejo con esta excelente guía.

    Compilado por Guillermo Taylor para el evento IT Camp 2011 – Track SQL Server 2012

    Abstract

    Este documento recopila los pasos realizados para instalar SQL Server 2012 Evaluation en un sistema Windows 7 Ultimate SP1. Durante el paso a paso, se incluirán imágenes que aclararán mejor este; sin embargo no todos los pasos incluyen o tienen una imagen asociada, principalmente en donde estime que no es conveniente. De igual manera, no asumo responsabilidad alguna por algún paso realizado erróneamente o que no se tuvo en cuenta o que no aplica para un sistema operativo diferente. Por último, este documento se hace para efectos ilustrativos de cómo realizar una instalación del producto SQL Server 2012 Evaluation y de ninguna manera me compromete con los resultados obtenidos al seguirlo.

    Pasos

    Configuración de IIS en Windows 7

    Antes de instalar y de configurar SQL Server 2012 y particularmente Reporting Services en un PC corriendo Windows 7 SP1, validé, particularmente por trabajo realizado en servidores, que tuviese al menos el Internet Information Server corriendo.

    Este es un servicio que generalmente no se habilita en desktops o laptops, pero que para efectos de lo que quiero hacer, tengo que activarlo. Para esto, hay dos maneras de hacerlo; la manual, que es la que describiré en este post y la automática, la cual contempla la instalación mediante Microsoft Web Platform Installer y que además permite instalar SQL Server Express y Visual Web Developer Express, entre otras herramientas.

    El método manual es el siguiente, solo para habilitar el IIS en Windows 7; si ya lo tienen habilitado, sugiero no hacerlo.

    Primero, hay que abrir el panel de control de Windows 7:

    Seleccionar la opción "Programs":

    Y dar clic en la opción "Turn Windows features on or off", recordando que si no son administradores en esta máquina, ésta les pedirá que eleven los privilegios para ejecutar esta opción.

    La ventana que me apareció, puede ser diferente en su caso en cuanto a opciones habilitadas o no, fue ésta:

    A continuación, las opciones que se pueden habilitar:

    En este punto, hago el popular disclaimer de "instalen lo que necesiten y si lo instalan todo, a mí no me echen la culpa si algo no funciona". Si quieren saber qué hace alguna opción en particular, hagan "mouse hovering" sobre el elemento deseado y ahí les aparece un pequeño mensaje. Sin embargo, si les resalto lo que instalé en mi PC:

    Luego de la selección de las características, fui a la parte inferior de la ventana y presioné el botón de OK.

    Luego de algunos pocos minutos, sale el panel de control y IIS está instalado. Para validar que en efecto es así, abran una instancia de su navegador Internet y escriban en la barra de direcciones http://localhost. Debe verse algo similar a:

    Listo. Para abrir el IIS Manager, búsquenlo por la caja de búsqueda de Windows 7 ingresando inetmgr o Internet Information Services; yo no lo encontré en alguna de las opciones del menú Start, tal vez no busqué bien:

    Instalación de SQL Server 2012 Evaluation

    A continuación, los pasos a seguir para instalar el producto.

    Dirigirse a la ubicación del SQL Server 2012.

    Ejecutar SETUP.EXE. Como estoy como usuario, voy a correr el archivo con privilegios elevados. Para ello, doy clic derecho sobre el programa SETUP.EXE y en las opciones que aparecen, selecciono "Run as administrator".

    Aparece la siguiente ventana:

    En el panel izquierdo, ir a "Installation" y dar clic en la opción "New SQL Server stand-alone installation or add features to an existing installation":

    Aparece la siguiente ventana:

    Presionar OK. Esperar que se procese la operación:

    Para este RC, no hay actualizaciones…

    Presionar Next para que aparezca la siguiente pantalla:

    Como el Firewall está habilitado, sale ese aviso de precaución… Luego se indicará que hacer para que el Firewall esté debidamente configurado, sobre todo porque esta instalación contiene una instancia. Presionar Next para que aparezca esta pantalla:

    Presionar Next.

    En esta pantalla se deben aceptar los términos de licenciamiento. Es opcional lo de enviar utilización del producto hacia Microsoft. Presionar Next

    Seleccionar la primera opción, "SQL Server Feature Installation". Presionar Next

    Las características a seleccionar son:

    Si al presionar Next, les aparece esta pantalla:

    Es porque esta versión de SQL Server requiere el SP1 de Visual Studio 2010; esto porque el encontró rastros de la instalación anterior, es decir la de CTP3.

    Así que instalen el SP1 de Visual Studio 2010 para continuar con la instalación…

    Presionar Next

    El nombre de la instancia es sugerido. Y particularmente generé una instancia porque tengo una instancia por omisión de SQL Server 2008 R2 SP1.

    Presionar Next

    Presionar Next para que aparezca la pantalla de configuración del servidor

    Presionar Next

    Además de agregar la cuenta de instalación, agrego una de administración; esto porque como mejor práctica la cuenta de instalación no debe quedar registrada como administradora… De hecho, es muy probable que sea incluso una cuenta creada específicamente para dicho fin, por lo cual después se elimina…

    Se dejan los directorios de datos por omisión y se habilita FILESTREAM…

    Presionar Next

    Seleccionar Multidimensional and Data Mining Mode… Y agregar las mismas cuentas de administración…

    Luego de presionar Next, aparece la pantalla de configuración de SSRS. Seleccionar la opción de instalar y configurar.

    Presionar Next

    Presionar Next

    Presionar Next para que aparezca la pantalla de "Ready to Install":

    Presionar Install y esperar a que termine el proceso…

    Presionar Close.

    Ya en el menú principal del servidor, aparecen las opciones para ejecutar SQL Server 2012 RC0:

    Al correr el SQL Server Management Studio, tal vez les aparezca esta opción si tienen configurado un SQL Server 2008 o 2008 R2, como es mi caso:

    Yo indiqué que no…

    Ahora bien, la instalación de las bases de datos de ejemplo para SQL Server 2012 no tiene el instalador al que nos acostumbramos para versiones anteriores, por lo menos no por ahora… Así que hay que descargar los archivos y adjuntarlos a mano; no es difícil si se siguen las instrucciones.

    1. Descarguen el archivo AdventureWorks2008R2_Data.MDF desde http://msftdbprodsamples.codeplex.com/releases/view/55330 y ubíquenlo en la carpeta de datos de SQL Server. Para mi caso, dicha carpeta es C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA.
    2. Ejecuten el siguiente código:

    CREATE DATABASE AdventureWorks2008R2 ON

    (FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\AdventureWorks2008R2_Data.mdf')

    FOR ATTACH_REBUILD_LOG

    GO

     

    1. No se preocupen si sale alguna advertencia… La base de datos queda creada y lista para usarse…
    2. Para la base de datos dimensional o base del DW o de la solución BI, AdventureWorksDWDenali_Data, descarguen el archivo desde la misma ubicación del punto 1 y sigan los mismos pasos.
    3. El código a ejecutar es el siguiente:

    CREATE DATABASE AdventureWorksDWDenali ON

    (FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\AdventureWorksDWDenali_Data.mdf')

    FOR ATTACH_REBUILD_LOG

    GO

  • WarNov Developer Evangelist

    Fin de Año con Camps: Los mejores eventos técnicos de Microsoft Colombia!

    • 0 Comments
        
    UPDATE: Si quieres convertirte en un desarrollador WaW, te tengo esta herramienta que te ayudará a descargar todos los SDKs necesarios de una manera muy sencilla!

    A llevarse a cabo en Medellín y Bogotá, estaremos ejecutando los Camps de Microsoft para 2011. Para todos hay! Es así como para los ITPROs, tenemos el ITCAMP y para desarrolladores, el Code Camp.

    IT CAMP (Para IT Cloud Champs):

    Sql Server 2012 (Denali)
    Private Cloud

    Fechas:

    Medellín: 29 de Noviembre. De 8am a 12.30pm
    Bogotá: 6 de Diciembre de 2pm a 6pm.

    CODE CAMP (Para desarrolladores WAW)

    WebMatrix
    A
    zure
    Windows Phone 7

    Fechas:

    Medellín: 29 de Noviembre. De 8am a 12.30pm
    Bogotá: 1 de Diciembre de 2pm a 6pm.

    Como observan, en Medellín, el evento se ejecutará el mismo día para ITPROS y Developers. Mientras en Bogotá, tendremos dos días separados.

    Estando en una nueva era de alta integración con las comunidades, Microsoft Colombia ha recibido una invaluable ayuda de parte de las comunidades para poder realizar un evento de esta magnitud. Es así como se ha tenido el apoyo completo de las más grandes comunidades de desarrolladores y ITPROS del país, como lo son Avanet de Medellín y BNet junto con ITPROS DC de Bogotá, quienes han proporcionado gran parte de los speakers que estarán enriqueciendo los eventos.

    De esta forma, tendremos una inigualable nómina de speakers; sin precedentes! todos ellos parte de nuestro programa de Microsoft Community Specialist (MCS) y varios de ellos ya reconocidos MVPs de nuestro país:

    Sorey Gracía (WP7), Alberto Rivera (Denali), Andrés Fontán (Azure), Christian Moreno (Denali), Daniel Vargas (Private Cloud), Freddy Angarita (Denali), Gerardo Ramos (Azure), German Ruiz (Private Cloud), Guillermo Taylor (Denali), Hernán Guzmán (WP7), John Bocachica (Denali), John Bulla (Denali), Juan Carlos Ruiz (WebMatrix) , Juan David Gómez (WebMatrix), Juan Manuel Lombana (Azure), Julio Avellaneda (WebMatrix), Miguel Mendoza (Azure), Miguel Quintero (WebMatrix), Pavel Espitia (WP7), Ricardo González (Azure), Roberto Alvarado (WP7), Sergio Calderón (Private Cloud).

    A parte de tener los eventos presenciales, tendremos webcasts de Warm Up (o preparación para el evento presencial) que nos irán mostrando lo que veremos en el evento físico. Así que tanto para inscribirse a los eventos virtuales como a los eventos presenciales, solo tienen que hacer click en la imagen correspondiente al evento de su interés: Developers, o ITPROS:

    clip_image001

    clip_image002

    No se lo pierdan, aparte de estar actualizados con lo último de nuestras tecnologías, tendrán la oportunidad de ganar fabulosos premios de Microsoft Hardware!

     

    image

  • WarNov Developer Evangelist

    The Kinect Effect

    • 5 Comments

    Empezó sólo como un sueño en el que el cuerpo sería el control…

    Pero nunca nos imaginamos que llegaríamos a este punto, en que rompimos el Guinness Record, cómo el aparato electrónico de consumidor final con ventas más rápidas en la historia: 8 millones de sensores vendidos en solo dos meses! Algo que una vez fue ciencia ficción (Minority Report), se convirtió en un fenómeno mundial.

    Casi inmediatamente después del lanzamiento de Kinect, aficionados y académicos de todo el mundo adoptaron las posibilidades que Kinect ofrecía, en unas formas inimaginables! Un API no oficial rápidamente apareció y luego aparece el SDK oficial no comercial de Microsoft, lo que nos llevó a observar aún más aplicaciones en áreas como la salud, rehabilitación, educación, seguridad y muchas más!

    Es esto todo?

    Claro que no!

    Para darle más combustible a la innovación e imaginación de tantas mentes brillantes que sacan provecho del Kinect, estaremos ofreciendo el programa comercial de Kinect para Windows al comenzar el siguiente año!

    Ya estamos trabajando con varias compañías alrededor de más de 20 países a través de 25 industrias distintas, recibiendo al día de hoy más de 200 aplicaciones que usan Kinect más allá de la XBOX 360! Entre estas compañías podemos contar a Toyota y Razorfish.

    Observemos la historia extendida de Kinect durante este primer año de vida:

    clip_image001

    Rehabilitación: Pacientes de hospital británico son inducidos a “jugar” ciertos títulos de Kinect, dependiendo de la rehabilitación física que requieren.

    clip_image002

    En Cantabria España, ya hacen pilotos de cómo Kinect podría ser una valiosa herramienta en cirugías.

    clip_image003

    Estos estudiantes muestran en el Code Camp de Redmond cómo controlan un cuadracóptero a través de gestos y Kinect.

    clip_image004

    Exploración espacial a través del WorldWide Telescope y Kinect

    clip_image005

    Esta demostración hecha en Abril en el MIX11, nos muestra cómo podemos conducir una silla, a través de Kinect. Un gran invento para discapacitados.

    El Kinect Effect naturalmente nos ha llevado a concluir que son más poderosas las ideas nuestras cuando se suman al ingenio de los demás; Bill Gates nos dijo una vez: “Siempre sobreestimamos los cambios que ocurrirán en los siguientes dos años, pero subestimamos los que ocurrirán en los siguientes diez”. Hasta ahora solo ha pasado un año desde el lanzamiento de Kinect… no están ansiosos de ver lo que pase en los siguientes 9?

  • WarNov Developer Evangelist

    A Killer App: Especial de Halloween de Microsoft

    • 0 Comments

    Sabías que en el Marketplace de Windows Phone 7 hay una aplicación que si la descargas, al séptimo día recibes una llamada y… mueres?

    Mira este cortometraje, tiene escondido el nombre de la aplicación… a ver si te atreves a bajarla.. además es gratuita:

  • WarNov Developer Evangelist

    Crea tu Angry Birds en WP7 y sin código!

    • 0 Comments

    ABSTRACT: Para la programación de animaciones en Silverlight y Windows Phone 7 existen un conjunto de librerías Open Source que contienen funcionalidades físicas (comportamientos y efectos especiales predefinidos) que nos permiten agregar efectos muy realísticos a las animaciones usadas en este tipo de aplicaciones, basándonos en leyes físicas de gravedad, colisiones, aceleraciones y demás. Estas librerías están en el portal Open Source de .net: Codeplex. Y solo descargándolas, ya podemos crear aplicaciones muy impactantes sin una sola línea de código. En este post observaremos cómo se pueden usar, a través de Expression Blend.


    Content:
    Dentro de nuestro programa de MCS una de las actividades que he venido ejecutando es proponiéndole a nuestros entusiastas que creen publicaciones de alto valor para nuestra audiencia, suministrándoles el material requerido para que lo hagan.

    Aquí tenemos la primera muestra. Se trata de un blog post de Carlos Rojas (@carojaspaz), quien es un candidato a convertirse en uno de nuestros nuevos MCS.

    Descarga: Proyecto Angry Birds Clone
    Recursos: Physics Helper 4.2.0.0

    En este post, vamos a mostrar cómo crear un pequeño clone de Angry Birds para Windows Phone 7 en 5 minutos usando Expression Blend y ninguna línea de código (si ninguna), por supuesta el juega que crearemos está lejos del completo, pero puede servir como un inicio de un nuevo y sorprendente juego.

    Usaremos las Herramientas de desarrollo para Windows Phone (están incluidas en el Expression Blend para Windows Phone 7) las cuales se pueden descargar del sitio http://create.msdn.com y además utilizaremos las bibliotecas de clases que se encuentran en CODEPLEX, la Physics Helper que es una biblioteca muy utilizada para recrear fenómenos físicos y Farseer Physics, que básicamente adiciona algunos comportamientos dentro de Expression Blend con el fin de ser usados en nuestra máquina sin utilizar ni una sola línea de código.

    Como primer paso descarga las bibliotecas de clases, extrae las DLL y crea una aplicación Windows Phone 7 pero recuerda usar la versión 7, (Aún no se ha probado la aplicación con la versión 7.1 aunque podría funcionar perfectamente).

    Eliminamos todo el contenido dentro de la página y cambiamos el tipo del elemento LayoutRoot por un elemento Canvas, con el fin de poder trabajar con la Biblioteca Farseer.

    Definimos la propiedad SupportedOrientations en Landscape de PhoneApplicationPage, si no podemos encontrar la propiedad se puede ubicar escribiendo su nombre en la caja de búsqueda de propiedades.

    Cambiamos también orientación del dispositivo, la pestaña Device sino esta visible la puedes activar en el menú Window y cambias la orientación del dispositivo.

    Agrega como referencia al proyecto las bibliotecas descargadas con anterioridad, las DLL que debes agregar son: Farseer Physics 3.0 WinPhone.dll, Spritehand.FarseerHelper.dll, Spritehand.PhysicsBehaviors.dll y FarseerPhysics.dll.

    Reconstruye la aplicación (Ctrl + Shift + B) para que los comportamientos aparezcan en la lista de de Assets.

    Ahora agregamos el control PhysicsControllerBehavior a nuestro objeto LayoutRoot, este control identificara al objeto como el objeto donde suceden los fenómenos físicos.

    Seleccionamos el nuevo control agregado y modificamos la propiedad MousePickEnabled a activa.

    Ahora vamos a dibujar algo sobre el LayoutRoot, usaremos un camino cerrado para crear una forma para jugar, siéntete libre de dibujar lo que prefieras.

    Agregamos al objeto que acabamos de dibujar un PhysicsObjectBehavior y activamos la propiedad IsStatic esta propiedad permite referenciar este objeto como si fuera la tierra y las leyes de gravitación se aplican a él.

    Ahora dibujamos unos rectángulos que será donde los puerquitos se posaran para ser derribados por el pajarito, a cada rectángulo le agregamos un PhysicsObjectBehavior y puede ponerlos en la posición que desee.

    Ahora agregaremos a los puerquitos y los pajaritos, para ello agregaremos las imágenes, en el proyecto daremos click en agregar ítems existentes y agregaremos las imágenes de los puerquitos y el pajarito, estos objetos deben recibir también el PhysicsObjectBehavior.

    Ahora que tenemos los objetos dentro de nuestro escenario vamos a agregar un nuevo comportamiento a los puerquitos, agregamos PhysicsExplodeBehavior este comportamiento permite que el puerco explote al chocar con el pájaro furioso, para esto, agregamos el comportamiento a todos los puercos, después configuramos unas propiedades, el disparador (Trigger) escogemos uno nuevo y le asignamos PhysicalCollisionTrigger, seleccionamos los objetos que van a colisionar el BodyOne será el pajarito y el BodyTwo será el puerquito para ello usaras una mira que está en la caja de texto y la arrastras hasta el objeto seleccionado, así para los puercos que tengas en tu tablero después de esto listo podemos probar nuestra aplicación.

    Y ASI SE VERA NUESTRA APLICACIÓN

    Este post lo pueden encontrar en el blog de Carlos Rojas: http://carojaspaz.wordpress.com/

  • WarNov Developer Evangelist

    Microsoft recibe tu feedback para mejorar

    • 0 Comments

    image

    Hoy en día, Microsoft Colombia ha tenido la oportunidad de mejorar muchos aspectos a favor de su relacionamiento con los profesionales en tecnologías de Información y de Desarrollo. Por ejemplo, en {Activa} encuentras todos los recursos para tu actualización permanente, solución de problemas técnicos y evaluación de nuevas tecnologías.

    Esto ha sido posible gracias a que a través de diversos mecanismos se ha podido recibir retroalimentación de nuestros usuarios, para poder ir mejorando cada vez más.

    En este caso, Microsoft quiere escuchar de ti para averiguar cómo estos aspectos se pueden seguir mejorando, para brindarte más apoyo en tu trabajo y crecimiento profesional.

    Así que es muy probable que hayas recibido una encuesta por correo electrónico, proveniente de feedback@e-mail.microsoft.com, cuyo asunto es: "Ayude a Microsoft a centrar su atención en Clientes y socios". Para Microsoft es muy valioso que nos colabores contestando esta encuesta, que nos ayudará a ofrecerte recursos superiores. Colabóranos para ser cada vez mejores!

  • WarNov Developer Evangelist

    Denali: Guía de Producto

    • 0 Comments

    Si quieres estar al tanto de lo último en nuestro servidor de Bases de Datos: SQL Server, que en su siguiente versión traerá enormes innovaciones y una gran integración con Cloud Computing, entonces esta guía de producto está hecha para ti: se trata de la Guía del producto de SQL Server  "Denali" para el (CTP3). Ya está disponible para su descarga!

    image

    Esta versión de la Guía de producto representa un hito importante para los clientes y socios que quieren experimentar el extenso valor entregado por "Denali".  Aprende como puedes ayudar a las organizaciones a construir soluciones basadas en datos, muy rápido bien sea en los esquemas de despliegue tradicionales o en la nube pública o privada, todo respaldado por la confianza que nos da Denali en el manejo de sistemas de misión crítica.

    Esta guía incluye recursos útiles y demostraciones que le ayudarán en su evaluación de CTP3. Esto incluye:

    •14 hojas de descripción de producto

    •8 Presentaciones de PowerPoint

    •5 White Papers técnicos

    •13 Prácticas de laboratorio

    •19 demostraciones listas para su audiencia

    •26 Enlaces a referencias en línea

    •44 Enlaces a Videos en línea incluyendo 26 presentaciones del TechEd 2011 en Norte América

    La Guía del producto viene con una pequeña aplicación para ayudarte a navegar por el contenido. Una vez que descargas el archivo ZIP, lo descomprimes donde lo deseas y para iniciar el visor, has clic en el  archivo STARTHERE.CMD y luego acepta la ejecución de ActiveX. 

    No tienes el servidor Denali CTP3? Descárgalo de aquí!

    Mencioné que todo esto es gratis?

  • WarNov Developer Evangelist

    La guía total del Marketplace de Windows Phone 7

    • 0 Comments

    ABSTRACT: En este post condenso en un artículo en Español, todo lo que ustedes, desarrolladores de Windows Phone 7 deberían saber acerca del marketplace, cuando ya vayan a subir sus aplicaciones a dicho portal, para comercializarlas. No se tratan aspectos técnicos. Se muestran las reglas más importantes al trabajar con el marketplace, así como links para obtener información más detallada. Si requieren aprender a programar aplicaciones de Windows Phone 7, les recomiendo este post.

    El marketplace de Windows Phone 7 es un portal en el cual podemos poner nuestras aplicaciones para este sistema operativo, de manera que puedan ser exploradas y descargadas/compradas por nuestros clientes.

    La única forma de comercializar aplicaciones para WP7, es a través de este marketplace. No se pueden instalar aplicaciones comercialmente de otro modo. Ni siquiera con los conocidos “Jailbreaks”.

    Aplicaciones en modo de prueba para desarrollo se pueden instalar directamente desde la computadora a un teléfono si éste está desbloqueado para desarrollo.

    Este desbloqueo requiere suscribirse al marketplace de WP7, para identificarnos como desarrolladores.

    Entonces, tanto si queremos subir aplicaciones o desbloquear en modo desarrollo algún WP7, es necesario suscribirse al Marketplace. Solo mayores de 18 años pueden suscribirse.

    image

    Una guía completa para la suscripción al Marketplace la encuentran aquí. Si tiene problemas en el registro, consulte este post.

    La suscripción sólo está disponible para algunos países entre los cuales se encuentra Colombia, Chile y México en Latinoamérica.

    Esta suscripción es gratuita si la persona que se está suscribiendo es un estudiante perteneciente al programa DreamSpark de Microsoft. En otro caso tiene un costo cercano a los 100 dólares anuales, que se pagan con una tarjeta de crédito. Y que permiten publicar hasta 100 aplicaciones gratuitas en el marketplace. Después de exceder este límite, cada aplicación gratuita publicada tendrá un costo de $19.99. Las aplicaciones pagas no tienen límite. Tras tener la suscripción al marketplace, se pueden subir tantas como sea deseado.

    Condiciones de la tarjeta de Crédito:

    En ocasiones al hacer el registro en el marketplace, a pesar de usar una tarjeta de crédito válida la operación no puede realizarse. Esto puede ocurrir por los siguientes motivos:

    1. El nombre en la tarjeta no coincide con el nombre usado para el registro.

    2. La dirección de la tarjeta ingresada no coincide con la dirección registrada en los registros del banco que emitió la misma tarjeta.

    3. Si el LiveID usado para el registro en el Marketplace ya ha sido usado en otros servicios online de Microsoft como por ejemplo Xbox LIVE, la información de ambas cuentas debe ser precisa e idéntica.

    Si se siguen presentando problemas tras chequear los anteriores pasos, se puede contactar al soporte para asistencia.

    Registro de Compañías:

    El registro en el marketplace se puede hacer como individuos o estudiantes (casos anteriormente descritos) y también como compañías. Este caso es especial, pues requiere una aprobación especial por un partner de Microsoft llamado GeoTrust que constata que toda la información suministrada acerca de la compañía sea correcta. Es un mecanismo para proteger su compañía de usuarios inescrupulosos que quieran usar su nombre para vender una aplicación. Una vez verificado esto, se envía un email a la persona ingresada como el Aprobador Corporativo para que apruebe la suscripción final al marketplace. Es probable que si GeoTrust lo considera necesario, solicite información física acerca de la compañía.

    Desbloqueo de teléfonos tras la suscripción al marketplace:

    Basados en el tipo de cuenta, existen límites en la cantidad de dispositivos que se pueden desbloquear:

    Cuentas individuales y de compañías: Se pueden desbloquear 3 dispositivos y se permite transferir hasta 10 aplicaciones en modo desarrollo a cada uno de los dispositivos.

    Cuentas de estudiantes: Se puede desbloquear 1 dispositivo y se permite transferir hasta 10 aplicaciones en modo desarrollo a éste.

    Cómo subir aplicaciones al Marketplace?

    Una vez registrados correctamente en el marketplace, el paso siguiente es subir las aplicaciones que queremos vender o distribuir gratuitamente. Aparte de subir el archivo .xap (el paquete de aplicación que publicaremos), debemos indicar el tipo de distribución que deseamos, pues en el marketplace podemos poner aplicaciones en modo Beta, para que nuestros clientes la prueben y nos den feedback. También podemos escoger la modalidad de distribución privada por ejemplo para aplicaciones empresariales y la distribución pública. Más detalles de los tipos de distribución, los encuentran aquí. Y aquí hay todo un tutorial acerca del proceso completo.

    Precios de las aplicaciones:

    Si queremos que la aplicación sea gratuita, en el formulario de publicación escogeremos el precio de $0. Luego, el mínimo precio posible es el equivalente en pesos a USD$0.99 y el máximo es el equivalente a USD$499.99

    En dónde estará disponible la aplicación?

    Se puede escoger en qué países se puede distribuir la aplicación. Pueden ser solo algunos, o todo el mundo donde exista marketplace activo.

    Cómo se retira una aplicación del Marketplace?

    Se debe esperar hasta que sea aprobada y luego desde el portal se escoge la opción de un-publish.

    Se pueden cobrar actualizaciones a las aplicaciones?

    No. La única vez que se puede cobrar una aplicación es la primera vez que es comprada.

    Certificación de Aplicaciones:

    Con el fin de ofrecer a sus usuarios la mejor calidad en aplicaciones de WP7, Microsoft ejecuta un riguroso proceso de certificación sobre las aplicaciones que desean ser publicadas en el marketplace.

    Este proceso evalúa condiciones que si no son cumplidas, no permiten que la aplicación se publique en el marketplace. Las condiciones son de los siguientes tipos:

    1. Reglas de Negocio: Estas reglas incluyen aspectos como que Las aplicaciones deben publicarse completas y no pueden exigir pagos a los usuarios para desbloquear contenidos adicionales. No pueden vender o promocionar planes móviles de voz. Y en general muchas reglas de este estilo, que se pueden consultar exactamente aquí.

    2. Reglas de Contenido: Establecen que por ejemplo los juegos deben incluir su clasificación. O que contenidos violentos o sexuales explícitos no son permitidos. También da indicaciones acerca de contenidos licenciados, logos y demás. Una completa guía aquí.

    3. Requerimientos en el paquete subido: Son las normas que debe cumplir el .XAP en su compilación, su archivo de manifiesto, etc., así como en los archivos que lo acompañan, como son los screenshots de la aplicación y la iconografía de la misma. Los detalles están aquí.

    4. Requerimientos Técnicos: Aquí se dictan normas acerca de la fiabilidad de la aplicación (manejo de excepciones, etc), desempeño y manejo de recursos (tiempos de renderizado, respuesta de la aplicación tras presionar los botones estándar del teléfono, empleo de memoria RAM, etc), funcionalidad del teléfono (que no haya interferencia con la calidad en las operaciones propias del teléfono como el tiempo en que se puede hacer una llamada, o enviar o recibir un SMS, etc) , Seguridad (no virus, malware ni algoritmos maliciosos), Contenido (manejo de temas que se vean fácilmente, localización del lenguaje), y finalmente, la Información de Soporte Técnico (se debe incluir el nombre de la aplicación, su versión y los datos de contacto para el soporte técnico, ubicados en una sección fácil de encontrar). Detalles más específicos acerca de estos requerimientos técnicos los puede encontrar aquí.

    5. Requerimientos adicionales de acuerdo al tipo de aplicación: Hay reglas que deben seguir las aplicaciones que son especiales por cuento usan la funcionalidad extendida del teléfono. Por ejemplo cuando tienen capacidades de geolocalización, o cuando usan las conocidas “Push Notification”, o cuando corren con el teléfono bloqueado o cuando son aplicaciones multimedia, de streaming o transferencia en segundo plano. Detalles aquí.

    En general el proceso de envío, certificación y publicación de una aplicación WP7, se puede resumir en la siguiente gráfica:

    Se necesita un certificado digital para firmar la aplicación que se sube al Marketplace?

    No, el marketplace provee uno.

    Qué pasa cuando mi aplicación no es certificada?

    Se recibe un documento que muestra cuáles fueron los puntos de falla para ser corregidos. Este es un PDF descargable del sitio que tiene información de este estilo:

    Además de esto, se pueden hacer preguntas acerca de la solución a los errores presentados a los foros

    Cuánto tarda el proceso de Certificación?

    Puede tomar en promedio 5 días hábiles. Si tarda más de 7 días hábiles, hay que contactar a soporte. Hay una opción para hacerlo desde el portal.

    Puede un comprador pedir la devolución de su dinero por una aplicación del marketplace que no le gustó?

    No. No es posible. En Microsoft recomendamos que ud. provea funcionalidad de prueba para que los consumidores puedan probar antes de comprar. Aquí mostramos cómo crear aplicaciones tipo trial.

    Cuál es el pago que obtengo por mis aplicaciones?

    Se obtiene un 70% del valor de venta. Este es enviado a su cuenta bancaria una vez alcance un mínimo de USD$200 en ventas. Para que el dinero pueda ser enviado a su cuenta bancaria, ud. debe proveer los siguientes datos: Número de cuenta y número BIC/Swift (este último se puede preguntar en su respectivo banco). Estos datos se ingresan en el App Hub en la pestaña de pagos.

    Una vez comprada una aplicación en cuántos teléfonos se puede instalar?

    La licencia incluye la instalación en 5 dispositivos.

    Hay alguna forma para solicitar que mi aplicación tenga un mercadeo especial en el marketplace?

    No. En estos momentos este es un proceso que determina el equipo de mercadeo de Windows Phone 7.

    Puedo obtener soporte Premium al desarrollar mis aplicaciones?

    Sí. Hay dos tipos de soporte Premium. El primero es a través de llamadas telefónicas. De 4 a 8 horas, tiene un costo de USD$259 y por email, un día cuesta USD$99. Para contratar este soporte visite la página de Microsoft Support e ingrese “Windows Phone Developer Tools”en el Product Finder.

    Si su problema no es de desarrollo sino de registro y Sign-in, entonces el soporte será gratuito escribiendo aquí.

    De igual forma, los foros del App Hub, son gratuitos y brindan guía en todos los temas relacionados con Windows Phone 7, desarrollo de aplicación y comercialización de las mismas.

    Existen reportes que me informen cómo se está comportando mi aplicación y cómo van sus ventas o descargas?

    Sí, en el App Hub, encuentra una herramienta de reportes que muestra el número de descargas incluyendo las aplicaciones trial, las free y las pagas. Los reportes aquí mostrados tuenen un delay de 6 días. Este delay es generado por el tiempo en que las transacciones con tarjeta de crédito tardan en llevarse a cabo. También se dispone de un reporte de los “Payouts” o transferencias a su cuenta del dinero ganado por la venta de sus aplicaciones. Todos estos reportes se pueden exportar a Excel. Por si fuera poco, un reporte de los errores que ha estado teniendo su aplicación está disponible también En este reporte puede observar el contenido de los Stack Traces, para determinar cuál es el motivo de los errores. El delay de los reportes de Crash es de 3 días.

  • WarNov Developer Evangelist

    Bing ahora con HTML5

    • 1 Comments

    El buscador BING de Microsoft, ahora incluye video HTML5 en su ya bello y característico home.
    Esta característica al igual que muchas otras características avanzadas está solo disponible cuando se hacen búsquedas localizadas en Estados Unidos. En este video muestro cómo localizar las búsquedas, para aprovechar todas estas características avanzadas. Esto sin mencionar que los resultados de las búsquedas son mucho más precisos en Bing, cuando hacemos la búsqueda localizada en Estados Unidos

  • WarNov Developer Evangelist

    A un día del //build/

    • 1 Comments

     

    WP_000550

    Estamos solo a unas cuantas horas de que uno de los eventos más importantes para Microsoft en los últimos años comience.

    Se trata del //build/. Donde Windows 8 será gran protagonista.

    Muchas dudas serán resueltas así como el futuro de varias tecnologías. Así que nombres como HTML5, XAML, Silverlight, C++, C# y muchos otros, serán muy mencionados.

    Mientras tanto, aquí les dejo unas imágenes del ambiente que se respira un día antes de esta gran conferencia que se llevará en el centro de convenciones de Anaheim. Muy cerca a Disneyland en California.

    El pequeño auditorio para el Build:

    WP_000552

    La pequeña estación de Registro del Build:

    buildstitch

    Por si fuera poco, también hay estaciones de auto-registro:

    WP_000559

    Y este es el kit que entregan a los asistentes…

    es pequeño no? Será que tienen más regalos?

    WP_000561

    Los espero pronto con las primicias!

  • WarNov Developer Evangelist

    Windows Azure en el negocio

    • 2 Comments

    Abstract: Windows Azure es la joya de la corona en el desarrollo Microsoft. En general, aquí se agrupa el conocimiento de muchas tecnologías .NET para lograr desarrollos brillantes. Sin embargo, los roles de negocio en las organizaciones deben tener cierta comprensión de nuestra plataforma de cloud computing, para poderla implementar en sus empresas. Este artículo da un vistazo breve y de muy alto nivel, enfocado en el negocio para que puedan tomar decisiones más informadas.

    GoingToAzure

    Las ventajas de negocio de Windows Azure incluyen aspectos como el ahorro en costos, tiempo (time to market), administración, costo de implementación reducido (upfront), un retorno de la inversión más rápido y gran escalabilidad y disponibilidad.

    En cuanto al ahorro en costos y upfront reducido, estos se obtienen debido a que la plataforma de cloud de Microsoft se encarga absolutamente de todo el manejo de hardware y sistemas operativos en la nube, librando a sus clientes de tener que comprar máquinas que luego se depreciarán y también del manejo de licencias de los servidores. Por si fuera poco, la administración automatizada de Windows Azure permite a los desarrolladores enfocarse en hacer su aplicación cada vez mejor, sin tener que preocuparse de tareas alternas que no hacen parte del core del negocio, tales como estar pendientes de actualizaciones, patchs, antivirus y demás.

    El hecho de que en Windows Azure solo se paga lo consumido brinda una gran ventaja a los desarrolladores ya que minimiza el costo de upfront en sus soluciones. No tienen que hacer gigantescas inversiones en infraestructura. Por el contrario, van solicitando los recursos necesarios de Windows Azure transfiriendo los costos a sus clientes, a medida que estos van consumiéndolos servicios expuestos. Esto permite que así como el negocio va escalando, la inversión retorna inmediatamente.

    Para los clientes de los desarrolladores esto también es una ventaja, porque no tienen que preocuparse por la infraestructura de las soluciones que les están ofreciendo. Además en cuanto a costos, tampoco tienen que preocuparse por esquemas de licenciamiento ni por pagar altos costos. En general los servicios expuestos por Windows Azure se pueden cobrar a una tasa muy baja cada mes a los clientes que los estén usando. Y además también se les puede ofrecer la posibilidad de que paguen solo lo consumido.

    Esto sumado a todas las ventajas que representa el modelo de (Software as a Service) SaaS que está perfectamente mapeado dentro del modelo de (Platform as a Service) PaaS, le brinda a los clientes y desarrolladores muchas ventajas, pues las aplicaciones se encontrarán permanentemente online con unos SLA de altísima calidad y unas capacidades de distribución que son solo posibles bajo esta metodología. Es así como a través de nuestra plataforma de cloud computing el mensaje de Power of Choice se ve totalmente llevado a la realidad dado que los despliegues en Windows Azure nos permiten tener clientes tanto en el escritorio, como en la web y también en teléfonos móviles de una manera bastante sencilla. Windows Azure es una plataforma bastante abierta que permite el despliegue de aplicaciones creadas en los lenguajes y tecnologías más populares tales como lo son Java, PHP, Ruby y por supuesto, .NET. Por si fuera poco, se ofrece una amplia gama de opciones de almacenamiento para que las aplicaciones puedan persistir sus datos de acuerdo a la forma que más se adapte a las necesidades y al presupuesto. De esta manera se encuentra el Windows Azure Storage y SQL Azure. Esto nos permite también ofrecer la alternativa de que en Windows Azure podamos ubicar únicamente nuestras aplicaciones sin Storage, o solo el Storage sin aplicación o las dos cosas. La decisión es nuestra de acuerdo a lo que se requiera.

    Mi invitación es a que analicen un nuevo modelo no solo tecnológico sino de negocio, que le abrirá muchas puertas a su empresa.

Page 5 of 13 (324 items) «34567»