MSDN Blogs
  • WarNov Developer Evangelist

    NodeJS Crash Course: El curso rápido y sencillo para aprender Node.JS

    image

    Queremos sitios web realmente veloces. Sitios web que puedan atender a miles de usuarios concurrentes sin presentar fallas de escalabilidad en sus servicios.

    Necesitamos un nuevo acercamiento que nos permita a nosotros como developers poder desarrollar este tipo de sitios Web y, efectivamente, NodeJS cumple esta tarea a cabalidad.

    Este es el primer episodio del curso Noding With WarNov, en el que aprenderás a manejar Node.js para crear sitios web de última generación que funcionan a grandes velocidades y soportando grandes cargas. Node.js básicamente es una compilación de paquetes. Por un lado incluye el engine V8 JavaScript de Google. Por el otro la capa de abstracción provista por libUV y finalmente una librería core de Node.js escrita principalmente en JavaScript.

    Creado en 2009 por Ryan Dahl, hoy es altamente usado en aplicaciones web que requieren alta velocidad y manejo de tráfico optimizado. Es mantenido por Joyent, aunque sigue siendo open source. La principal característica que lo distingue de otros acercamientos similares, es que no necesita de un browser para correr, pues se ejecuta del lado del server. Además implementa un API de I/O creada específicamente para no generar bloqueos, lo que es bastión en la velocidad de respuesta del server.

    Adicionalmente Node.js incluye también un ambiente REPL (Read, Evaluate, Print, Loop) que permite el testing interactivo de instrucciones Node.js.

    En este video, veremos cómo todos los elementos mostrados anteriormente se integran para producir sitios web, de una manera básica.

    En siguientes capítulos iremos avanzando sobre el estudio de esta tecnología.

     

    Bien. A manera de documentación, aquí les dejo el código que usé para hacer nuestro primer servidor Web basado en Node.js:

    var http = require('http');
    var serv = http.createServer(
        function (req, res) {
            res.writeHead(200, { 'Content-Type': 'text/html' });
            res.end('<marquee>Noding with @WarNov</marquee>');
    
            var d = new Date();
            var hours = d.getHours();
            var minutes = d.getMinutes();
            var seconds = d.getSeconds();
    
            var time = hours + ":" + minutes + ":" + seconds;
            console.log('Somedoby just node with @WarNov at ' +
                time);
        });
    serv.listen(3000);
  • WarNov Developer Evangelist

    SetConfigurationSettingPublisher needs to be called before FromConfigurationSetting can be used

    • 2 Comments

    Este error de Windows Azure nos indica que el método FromConfigurationSetting no puede usarse para obtener el valor de una variable de configuración del servicio cloud, pues para poderse usar, es necesario haber establecido un publicador de ajustes de configuración.

    clip_image002

    Se soluciona sencillamente inicializando el publicador con éste código estándar:

    CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) =>
    {
        configSetter(RoleEnvironment.GetConfigurationSettingValue(configName));
    });

    Aquí vemos como Windows Azure es muy flexible pues no nos limita a extraer las variables de configuración de un único archivo (como en el Web.config en el caso de ASP.NET) sino de donde queramos a través de un delegado anónimo.

    Este código se puede poner por ejemplo en el inicializador del WebRole, para que quede disponible durante el resto del ciclo del vida del servicio.

    Pero en este momento algunos de ustedes deben estarle gritando a la pantalla: “Pero si yo ya hice eso!!!”

    No se preocupen… en este caso lo que sucede es que puede que ya estén usando el modo Full IIS propio de la versión 1.3 de las herramientas y SDK de Azure. Esto implica que a pesar de que ya escribieron el inicializador del Publisher, este no se ejecutó en el IIS (w3wp.exe). El inicializador del publicador de configuraciones (aquel que nos permite leer programáticamente las variables que ponemos en los archivos de configuración de los roles) no se inicializará en el sitio Web (que corre en el IIS) pues el código de inicialización que teníamos antes, solo funciona en el entorno de ejecución del WebRole (WaWebHost.exe) pero cuando usamos Full IIS lo que pasa es que el sitio web se ejecuta en el IIS (w3wp.exe) mientras el inicializador del WebRole lo hace en el WaIISHost.exe. Por ende cualquier llamado al archivo de configuraciones desde el sitio Web fallará pues el publicador no se inicializó allí.

    Entonces hay tres opciones de solución.

    1. Elimine la sección de Sites para indicar que todo correrá en HWC (Esto en el caso en que no requiera múltiples sitios en el mismo web role.

    2. Ejecute la inicialización del Publisher en el Application_Start del Global.asax

    3. No use el Publisher para obtener los valores de los setting, sino un código similar a:
    var storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("ConnectionString")); (Esta sería la opción menos clara y menos recomendada, a menos de que solo necesite llamar un par de variables).

  • WarNov Developer Evangelist

    Development Storage en Windows Azure no puede ser accedido

    • 0 Comments

    Sea el siguiente escenario:

    Ud ha hecho desarrollos con Visual Studio 2008 o 2010 para Windows Azure y no ha tenido problemas. Luego, después de un par de semanas sin programar nada en Azure vuelve y se encuentra con un error cuando se intenta crear el Development Storage Service de Windows Azure. Un error que le dice que el usuario no tiene permiso en la DB master para ejecutar cierta operación.

    image

    Entonces Ud. se pregunta: Cómo puede ser esto, si hasta hace poco todo me funcionaba perfectamente?

    Pues lo mismo me ocurrió a mi, con una máquina en la que había dejado de programar Azure por un buen tiempo. Así que emprendí resolución del problema.

    En primera medida, tengamos en cuenta que por defecto Windows Azure Development Fabric,  siempre busca la instancia SQLEXPRESS para simular crear el Development Storage (recordemos que cuando se antepone la palabra Development al fabric o al storage siempre estamos haciendo referencia a los ambientes locales simulados que nos sirven para tener una pequeña réplica de Azure en nuestras máquinas de desarrollo)

    Con ello ya pude minimizar el campo de pruebas, así que traté conectarme a la instancia SQLEXPRESS con el Sql Server Management Studio.

    La conexión se hizo sin problema. Pero noté que no tenía permisos de nada. Ni siquiera para crear una base de datos. Así que pensé  que algo realmente andaba mal. Obviamente pensé en recurrir a la desinstalación – reinstalación de mi versión de SQLEXPRESS. Y de antemano, pensé en actualizarla, pues tenía la versión SQL Express 2008 y hoy en día ya está disponible la SQL Express 2008 R2.

    De hecho, ya había instalado la versión SQL Server 2008 R2 Developer Edition…
    Momento, Eureka!
    Eso fue lo que dejó “inservible” a mi SQL Express anterior. Hallé la respuesta indirectamente!

    Conclusión:

    Si se tiene SQL Express 2008 instalado y luego se instala SQL Server 2008 R2, es probable que la versión Express se arruine. En cuyo caso la solución es desinstalar la versión Express 2008 e instalar la versión Express 2008 R2, si es que se va a requerir  (como cuando hacemos desarrollos para Windows Azure).

    Para desinstalar SQL Express 2008, no encontrarán en Desinstalar Programas del Panel de Control algo que diga SQL Express. En su lugar, encontrarán una entrada llamada SQL Server 2008 y otra que dirá SQL Server 2008 R2. Obviamente escogeremos la primera y de allí seleccionaremos la instancia a remover. O sea, SQLEXPRESS.

    De allí en adelante la desinstalación es bastante sencilla.

    Luego nos bajamos la versión R2, la instalamos, volvemos a ejecutar las aplicaciones de Windows Azure que teníamos en desarrollo y voilà: De nuevo todo funcionando correctamente.

    Es una solución sencilla, a la cual no se puede llegar fácil si no entendemos ciertos detalles de la operación de Windows Azure en ambientes de desarrollo.

  • WarNov Developer Evangelist

    Mayo en Colombia y LATAM, es de Windows Phone 7

    • 2 Comments

     

    Windows Phone 7

    Como ya lo describí en el review de mi anterior post, Windows Phone 7 es todo un nuevo mundo para las aplicaciones móviles, que aparte de ser tan novedoso, nos da la gran ventaja de aprovechar lo que ya sabemos para construir aplicaciones orientadas a esta plataforma. Es así como si ya sabemos Silverlight o XNA, ya sabremos el 70~80% de lo requerido para programar en Windows Phone 7 (WP7).

    En todo caso, la web está llena de recursos para aprender de esta tecnología. Me permito aquí citar algunos recursos que nos ayudarán < salir adelante con aplicaciones para WP7:

    Para desarrollar todo esto, tenemos numerosas herramientas y lo mejor de todo es que hoy en día, la mayoría de ellas están gratuitas.

    Por ejemplo, tenemos totalmente gratis:

    Visual Studio 2010 for Windows Phone

    También en forma gratuita, tenemos el RC de Blend 4.0, que nos permite crear interfaces de usuario realmente impactantes:

    Expression Blend

    Para poder trabajar con Blend 4.0 RC para Windows Phone 7, es necesario instalar:

    También es necesario instalar las herramientas de desarrollador que si además tenemos instalado Visual Studio 2010 RTM, nos lo dejan listico para programar WP7. Hasta hace dos días, no podíamos programar WP7 en el RTM, pero con esta descarga, ya es posible:

    Windows Phone Developer Tools CTP - April Refresh

    Esta última descarga incluye Visual Studio 2010 Express for Windows Phone. Así que no sería necesario descargarlo.

    Con todo eso, no queda más que poner manos a la obra y comenzar a aprender. Para más recursos, vamos al portal oficial de WP7:

    Windows Phone Developer Portal

    Pero un momento!

    Es todo para nosotros desarrolladores colombianos y latinos?

    No!

    By: Javier Cáceres He organizado junto con nuestro nuevo MVP en desarrollo para móviles: Javier Cáceres un conjunto de workshops y capacitaciones para aquellos que prefieren aprender con un tutor.

    Así es como en todo Mayo, en las instalaciones de Microsoft tendremos cada martes una sesión de Workshop en la que Javier nos estará enseñando acerca de WP7. A estas sesiones también podrán asistir de manera online a través de Live Meeting.

    La agenda es la siguiente:

    • 04/Mayo Introducción a la Plataforma Windows Phone
    • 11/Mayo Arquitectura de Windows Phone
    • 18/Mayo Desarrollo de aplicaciones para iPhone en .Net
    • 25/Mayo Distribución de apps y juegos para Windows Phone

    Para ver los detalles de cada workshop y registrarse para asistir presencial u online pueden visitar: http://www.microsoft.com/colombia/activa/activa_conocimiento_desarrollo.aspx

    Habrán otras 4 sesiones que son webcast en el horario de 08:00PM a 09:00PM (GMT-5) a los cuales pueden asistir solo a través de Live Meeting. Los temas y enlaces a LiveMeeting de los webcasts son:

    • 05/Mayo: Navegación en el Windows Phone: En esta sesión se mostrará la navegación y los controles de la plataforma Windows Phone. Click aqui.
    • 12/Mayo: Silverligth para Windows Phone: En esta sesión se mostrará como reutilzar el conocimiento de Silverligth para desarrollar en Windows Phone y la integración con otras herramientas. Click aquì.
    • 19/Mayo: Servicios de la Plataforma Windows Phone: En esta sesión se mostrarán las implicaciones en cuanto a botones, barra de aplicaciones y demás consideraciones de la platafoma. Click aquí.
    • 26/Mayo: Windows Phone 7 Data Binding: En esta sesión se mostrará cómo hacer enlace a datos e integraciòn con LINQ. Click aquí.

    Para finalizar, Javier nos comenta:

    Javier Cáceres (MVP Windows Mobile) Para que se vayan preparando les dejo: este artìculo http://tinyurl.com/39wfgto, este foro en el cual pueden preguntarme cualquier duda sobre Windows Phone 7 en inglés http://tinyurl.com/ASKjacace, este foro en español http://tinyurl.com/WP7esp y mi cuenta en twitter @jacace

     

    Agradezco mucho a Javier por su colaboración, y los espero en nuestros eventos. WP7 en nuestras manos!

  • WarNov Developer Evangelist

    Gobierno 2.0 Camp Colombia 2010

    • 0 Comments

    Es una iniciativa que se ha realizado en ciudades como Washington, Berlín, México DF  y que ahora tendremos en Bogotá. Los primeros en Sur América!

    image

    Se trata de un foro de participación abierta, donde se tratarán temas de Gobierno 2.0 y cómo las redes sociales y la web 2.0 han apoyado 3 pilares de gobernabilidad:

    • Transparencia
    • Colaboración
    • Participación ciudadana

    En este encuentro contaremos con la participación de entidades como:

    • Alcaldía Mayor de Bogotá
    • Ministerio de Comunicaciones
    • Programa Colombia en Línea
    • Corporación Colombia Digital
    • Universidad Externado de Colombia
    • Colombia es Pasión

    image

    Entre otros, veremos temas muy interesantes como:

    • Open Government (Demo de Participación Ciudadana). Esto incluirá TownHall de Azure
    • Gobierno electrónico, ciudades inteligentes y protección del medio ambiente
    • Gob Camps alrededor del mundo

    Es una gran oportunidad para que nosotros desarrolladores nos pongamos al día en los nuevos campos en los que nuestros conocimientos pueden ser aplicados! Sean cordialmente invitados a participar!

  • WarNov Developer Evangelist

    Antivirus Gratuito: Microsoft Security Essentials

    • 0 Comments

    Cansado de buscar un antivirus gratuito en el que en verdad pueda confiar?

    Ya no es necesario buscar más! Microsoft ofrece uno completamente gratis y no solo es un antivirus, sino toda una suite de seguridad que respeta la libre elección de sus usuarios, su privacidad y no exige registro ni identificación alguna:

    Se trata de Microsoft Security Essentials que brinda seguridad en la que usted puede confiar;  es fácil de obtener y utilizar y brinda una protección silenciosa que no interfiere con el performance de su máquina. Brinda protección en tiempo real para atender las necesidades de seguridad continua de un PC con Windows, lo que ayuda a protegerlo contra virus, spyware y otras amenazas maliciosas. 

    Cualquier usuario del HOGAR con Windows versiones Windows XP, Windows Vista o Windows 7 que tenga una versión ORIGINAL de Windows lo puede descargar GRATUITAMENTE de la RED y usarlo indefinidamente. Es Gratuito y exclusivo para los usuarios con una versión Original de Windows. (Para entornos empresariales está disponible el producto Microsoft Forefront). 

    Los únicos requisitos para correr este software son: Cualquiera de las versiones de 32 o 64 bits de Windows XP SP2 y superior, Windows Vista y Windows 7 incluyendo el modo XP.

    La idea de ofrecer disponibilidad gratuita de este producto únicamente con copias originales de Windows, obedece a que la protección en tiempo real como aquella que se encuentra en Microsoft Security Essentials es una gran herramienta en la lucha contra software malicioso conocido; sin embargo para mejorar el estado general del ecosistema también se requiere tratar el malware en la fuente de distribución. Las fuentes de software falsificado y soluciones temporales de activación maduran con el malware. Una vez infectados, los PC con software no original están más propensos a convertirse en hosts de malware, que propagan software malicioso a otras máquinas en el ecosistema. Conducir más sistemas al software original tiene el potencial de atender mejor las necesidades comerciales y de seguridad del ecosistema en general. Si el PC no aprueba la validación de originalidad, la instalación de Microsoft Security Essentials termina y al usuario se le envía a información sobre cómo resolver los problemas relacionados con software original.

    Uno de los detalles especiales de este producto, es que los usuarios de Microsoft Security Essentials contarán con acceso al soporte de la comunidad y de correo electrónico sin costo alguno.

    Microsoft Security Essentials no estará disponible como una descarga crítica de Windows. El instalador estará disponible como una descarga individual sin costo pero utilizará el servicio Microsoft Update tanto para las descargas de firmas como para las actualizaciones de producto.

    Se puede descargar de http://www.microsoft.com/security_essentials y no se requiere que los consumidores ingresen una ID de Windows Live ni registro para descargar la solución.

    Microsoft ya ha liberado productos para proteger el software de programas malintencionados como Windows Defender que detecta y elimina sólo spyware conocido (tecnología que ayuda a recopilar información acerca de una persona u organización sin su conocimiento o consentimiento). Sin embargo, no está diseñado para brindar protección contra la gama completa de software malicioso, y en específico no evita que virus, gusanos, troyanos, y otro software malicioso infecten su máquina. La nueva solución sin costo será una solución antimalware completa que se encarga de estas amenazas. Esto no significa que Microsoft Security Essentials esté diseñado para reemplazar a Windows Defender. Pero si usted ejecuta Microsoft Security Essentials, no necesita ejecutar Windows Defender. Microsoft Security Essentials deshabilita Windows Defender para administrar la protección en tiempo real del PC, incluyendo antivirus, rootkits, troyanos y spyware.

    Aparte de ser gratuito y ofrecer tantas ventajas, Microsoft cree en la elección del cliente. Al ofrecer Microsoft Security Essentials como una descarga individual e independiente, Microsoft ofrece a los usuarios de Windows la opción de elegir, gratis o de otro tipo, la solución de seguridad de PC que se ajusta mejor a sus necesidades individuales. Además también protege la privacidad de sus usuarios, Microsoft Security Essentials no desencadena un cambio en el estado del PC con Windows sino que lee el valor de originalidad almacenado en la máquina donde está disponible, o de otra manera invoca una API para que valide dónde no exista un estado local. No se ve ni recopila información personal como parte de la validación de originalidad.

    Conózcanlo, instálenlo y recomiéndenlo a sus conocidos para evitarles tediosas búsquedas de antivirus gratuitos!

  • WarNov Developer Evangelist

    Aprender Azure podría significarte una XBOX de última generación más un Kinect!

    • 4 Comments

    Microsoft Virtual AcademyDescarga el trialMicrosoft Activa

    Aquí mismo en mi blog encuentran más recursos para aprender!



  • WarNov Developer Evangelist

    Reproduciendo Sonidos Secuencialmente en Silverlight

    • 1 Comments

    Ya hace poco les mencioné un proyecto OpenSource en el que trabajo; pronto postearé al respecto.

    Bien; en ese proyecto Silverlight es protagonista. De hecho el proyecto se llama SilverTeacher.

    Dado que es un proyecto altamente cargado de multimedia, obviamente se necesita reproducir sonido.

    Cómo se reproducen sonidos en Siverlight?

    Rocket Science!!! Observen:

     
       1:  private void ReproduceSound(string name)
       2:  {
       3:      melSounds.Source = new Uri(
       4:          String.Concat("/sounds/", name, ".wma", UriKind.Relative));
       5:      melSounds.Stop();
       6:      melSounds.Play();
       7:  }

    Bueno… aquí el único sujeto desconocido es el tal melSounds

    Se los presento:

    internal System.Windows.Controls.MediaElement melSounds;

    Es un sujeto de tipo MediaElement. MediaElement es un control que uno arrastra del toolbox. No tiene representación visual en el editor. Queda a un ladito invisible, casi como los DialogBox de la programación Windows tradicional.

    Observen entonces que lo único que hay que hacerle, es proporcionarle la Uri del elemento a reproducir y luego darle “Play”.

    Observen también que primero doy la instrucción “Stop”. Por qué?

    Esto lo hago, porque cuando por primera vez se reproduce un sonido, el “cursor” de la reproducción queda al final del mismo. Así que si luego de reproducirse le damos “Play” no se ejecutará nada, porque el cursor está al final.

    La forma de reposicionar el cursor, es mediante la instrucción “Stop”. Súper fácil no?

    Hasta ahí todo bien. Pero que tal si quisiéramos reproducir dos o más sonidos consecutivamente?

    Usando el método anterior, uno pensaría: “Muy fácil, ejecuto este código:”

       1:  ReproduceSound(nombrePrimerArchivo);
       2:  ReproduceSound(nombreSegundoArchivo);

    Desafortunadamente la cosa no funciona bien así

    Dado el carácter asincrónico de la reproducción de los sonidos, lo que pasaría es que sólo el último sonido se reproduciría.

    La solución no es muy directa. Es más bien “tricky”.

    Luego de probar y probar, descubrí que el MediaElement tiene un evento llamado MediaEnded. Entonces lo único que habría que hacer, es controlar ese evento, para que se comience a reproducir el siguiente archivo.

    De hecho, ya una aplicación real de esta teoría, se aprecia en el siguiente método:

       1:  private void melSounds_MediaEnded(object sender, System.Windows.RoutedEventArgs e)
       2:  {
       3:      switch (melSounds.Source.OriginalString)
       4:      {
       5:          case "/sounds/success.wma":
       6:              if (goals == GOALS_TO_WIN)
       7:              {
       8:                  //ShowStars();
       9:                  ReproduceSound("cheer");
      10:              }
      11:              break;
      12:          case "/sounds/error.wma":
      13:              SayColor();
      14:              break;
      15:          default:
      16:              break;
      17:      }
      18:  }

    Observen allí cómo de acuerdo al sonido que haya acabado de reproducirse (lo sé a través de su “source” o fuente) escojo cuál debería ser el siguiente archivo y lo reproduzco.

    Tal cual, es la solución!!!

  • WarNov Developer Evangelist

    Ideas panorámicas para aplicaciones de Windows Phone 7

    • 1 Comments

    Una de las formas gráficas (no la única) para crear aplicaciones de Windows Phone 7, es a través del control panorama. Este control básicamente nos muestra una aplicación extendida horizontalmente, de manera que no hay necesidad de menús adicionales ni muchos botones. La navegación se lleva a cabo de un desplazamiento al “arrastrar” la ventana a través de la pantalla capacitiva de los dispositivos Windows Phone 7.

    Dejando volar la imaginación un poco y con miras a dar ideas de lo que serían aplicaciones para Windows Phone 7 en este caso enfocadas al mercado Colombiano, creé algunos borradores de lo que podrían ser estas aplicaciones. Luego se los pasé a @andresruiz quien los puso en limpio gracias a sus aptitudes de diseño. Aquí se las dejo: (Pueden ver las imágenes en alta resolución haciendo click sobre ellas)

    Aplicación Móvil de Un Gimnasio

    BodyMovil

    Aplicación Móvil de una Aerolínea

    AviaMovil

    Aplicación Móvil de Una Cadena de Supermercados:

    ExiPocket

    No les inspira esto a crear su propia aplicación de consumo masivo para Windows Phone 7? Qué tal una que compren 300k usuarios a razón de USD$2 en el marketpacle?

  • WarNov Developer Evangelist

    Simulando carpetas en los blobs de Windows Azure

    • 2 Comments

    En los blobs de Azure no tenemos un manejo de carpetas como en el sistema de archivos al cual estamos acostumbrados. Solo tenemos contenedores y dentro de estos contenedores tenemos múltiples blobs; no más contenedores. Así que para imitar una estructura de carpetas, podemos nombrar los blobs imitando una estructura de carpetas.

    Por ejemplo; si tenemos:

    clip_image002

    Donde cada carpeta contiene un grupo de imágenes que nos servirán como fuente para un sitio web, entonces tendríamos que simular dentro del contenedor llamado “temp”, que tenemos tres carpetas llamadas pics, pics1 y pics2.

    Esto se logra sencillamente renombrando cada uno de los archivos dentro de las carpetas con la ruta relativa desde temp (que sería el nombre del contenedor). Esto hará que se puedan referenciar luego como si estuviesen en una jerarquía de carpetas.

    Por ejemplo si dentro de cada folder tenemos los archivos 1.jpg, 2.jpg, n.jpg, entonces luego del renombramiento tendríamos:

    Representando a la carpeta pics:

    pics/1.jpg, pics/2.jpg, pics/3.jpg

    Para la carpeta pics1:

    pics1/1.jpg, pics1/2.jpg, pics1/3.jpg

    y así sucesivamente.

    De la misma manera operaríamos en jerarquías más complejas.

    Por ejemplo un blob bien podría llamarse:

    carpeta/subcarpeta/subsubcarpeta/archivo.extensión

    Más detalles en inglés aquí

  • WarNov Developer Evangelist

    23 y 24 de Agosto. Windows Phone 7 Jump Start

    • 0 Comments

    Un curso Jump Start está diseñado específicamente para desarrolladores experimentados que requieren saber cómo usar de la mejor manera las nuevas tecnologías de Microsoft.

    Estos cursos avanzados asumen un cierto nivel de experiencia y conocimiento del dominio, de manera que se cubren rápidamente los temas a través de situaciones y ejemplos del mundo real.

    Es un curso de dos días. En Inglés. Dirigido a desarrolladores que buscan construir aplicaciones cool y juegos para la nueva plataforma Windows Phone Mango.

    Fecha: Agosto 23 y 24.
    Hora: 10am – 6pm (Hora Colombia)
    Duración: 8 horas diarias incluyendo una hora de descanso.
    Registro: http://bit.ly/Mango-Jump

    Aquí un vistazo a los temas que se estarán viendo:

    Plantilla para hacer bosquejos de aplicaciones Windows Phone

    Día 1:

    • Building Windows Phone Apps with Visual Studio 2010
    • Silverlight on Windows Phone – Introduction
    • Silverlight on Windows Phone – Advanced
    • Using Expression to Build Windows Phone Interfaces
    • Windows Phone Fast Application Switching
    • Windows Phone Multi-tasking & Background Tasks
    • Using Windows Phone Resources (Bing Maps, Camera, etc.)

     


    Plantilla para hacer bosquejos de aplicaciones Windows Phone

    Día 2:

    • Application Data Storage on Windows Phone
    • Using Networks with Windows Phone
    • Windows Azure and Windows Phone
    • Notifications on Windows Phone
    • XNA for Windows Phone
    • Selling a Windows Phone Application

    Si el inglés no es un problema para ustedes, les recomiendo enormemente este gran curso

  • WarNov Developer Evangelist

    IE9 PP3: Osom, babe!

    • 1 Comments

    Han mantenido su promesa.

    Hablo del equipo de desarrollo de Internet Explorer 9 (IE9).
    En qué consistía?
    1.    Mantener progresos constantes en la estandarización del markup (html/css3), performance y aceleración por hardware.
    2.    Escuchar y responder a las sugerencias de los desarrolladores.
    3.    Liberar nuevos previews cada 8 semanas.

    Lo mejor es que según he experimentado, esta promesa cumplida se refleja en beneficios para todos los desarrolladores y usuarios que tenemos que ver con el desarrollo para browsers.

    Me siento orgulloso de anunciar nuestro tercer platform preview de IE9 (PP3). Un preview enfocado específicamente en permitirnos usar TODA nuestra PC en la Web.

    image[23]

    Al decir TODA, me refiero a que aunque muy bien sabido es que la mayoría del tiempo que estamos pegados al computador nos la pasamos navegando, sucede que los browsers hasta ahora solo usan un pequeño porcentaje del poder de cómputo de la PC, aun cuando en los últimos meses el poder de cómputo ha llegado a cuadruplicarse con el mismo precio! Por ejemplo, como experiencia personal, les comento que comprarme una tarjeta de video en el 2010 con el doble de rendimiento que la que había comprado en el 2007, me costó 4 veces menos!

    Así que hoy en día, la Web solo está tomando ventaja del hardware que existía años atrás. Esto no solo aplica para PC sino para cualquier plataforma de cómputo.

    Hablemos sin embargo del mundo PC: En los últimos dos años, el ecosistema de Windows ha alcanzado grandes avances, pero los browsers hoy no están tomando ventaja de todos esos avances. Pero esto ha cambiado con IE9. Un browser donde un markup aún más estándar conoce la aceleración por hardware para hacer pedazos el techo de cristal en el performance gráfico de la web.
    Esto obviamente crea un sinfín de posibilidades para nuevas aplicaciones Web que ahora se pueden arriesgar a ser más gráficas y funcionalmente ricas, dado que el hardware está ya disponible para soportarlo.
    IE9 a través de Windows y hardware moderno especialmente concebido para trabajar con Windows libera toda una nueva clase de experiencias para la Web. Una muestra de ello, son los siguientes tags disponibles ya en IE9:

    •    canvas potenciado por la GPU… sí! CANVAS! No qué no? HTML5 Canvas!
    •    <audio> y <video> también potenciados por la GPU!

    Así que las operaciones más exigentes para IE9 dejarán de ejecutarse en la ocupada CPU, para ir a ser devoradas por la veloz hambrienta GPU. Esto se ha logrado trabajando estrechamente con partners como NVIDIA y AMD/ATI para asegurar la más fuerte de las compatibilidades.
    Veamos este video para darnos cuenta de la abrumante ventaja en rendimiento gráfico contra Chrome:

    Tan abrumante es la ventaja, que por allí he oído algunos comentarios graciosos acerca de que: Eso no puede ser! Es un fake contra! Es un demo amañado! Es solo un video!
    Si usted también cree que es un complot, puede comprobarlo por sí mismo descargando la plataforma aquí.
    No tema bajar e instalar la PP3. No afectará su actual IE ni mucho menos cualquiera de sus otros preciados browsers. Son solo 16Mb. Al ser un preview, funciona perfectamente standalone. Instálelo y visite este demo (el mismo del video). Haga la prueba del demo y luego si no es muy susceptible, haga la prueba en cualquier otro browser que “soporte” HTML 5. Winking smile

    A medida que los desarrolladores construyen Webs más asombrosas, un performance adecuado se hace obligatorio. Estamos a punto de llegar a un punto en el tiempo en que si no accedemos a un buen performance, la nueva Web dejará de ser una experiencia y comenzará a ser un fastidio.

    Para nosotros como desarrolladores, el hecho de que nuestros sitios carguen rápidamente y corran correctamente significa una mejora en la experiencia de nuestros clientes y esto es lo que mueve nuestro trabajo. Por eso es que IE9 ha trabajado mucho en las mejoras en performance.

    Es así como para esta liberación, hemos aumentado la velocidad de ejecución de JavaScript en un 25% respecto al PP2 para estar por debajo de los 400ms en la prueba del SunSpider. (Todas estas pruebas se pueden acceder desde el portal de la plataforma y replicar en sus browsers preferidos. Son pruebas independientes de terceros.)


     image
    Agreguemos a esto el hecho de que hoy podemos ejecutar estos JavaScript aprovechando a las CPU multi-core en su totalidad. De esta manera, una aplicación por ejemplo de mapas que se podía desplazar a 5 frames por segundo, ahora alcanzan hasta 60 frames por segundo (una tasa que cualquier juego envidiaría). Al final tendríamos una Web que se siente como si fuera parte nativa del PC en el que se ejecuta… Imaginen entonces la diferencia para aplicaciones JavaScript más complejas como Excel Web App!!!

    y esto me lleva a pensar… “Uy, se sentirá como Silverlight” Entonces para donde me voy? Para Silverlight? O para HTML5…. Desaparecerá alguno de los dos?

    Personalmente creo que ninguno desaparecerá… se trata más bien del poder de elección que da Microsoft. Si queremos un aplicativo totalmente estándar por defecto, lo haremos usando HTML5; y estaremos confiados de que con IE9 estas aplicaciones brillarán por su performance y respuesta a estándares… obviamente renunciando a todo el poder de desarrollo rápido que se puede lograr con Silverlight, donde podemos emplear todos los conocimientos y estructura definidas por el Framework .NET. Pero si el que el usuario final instale un plugin de Silverlight no es problema, entonces qué mejor que usar todo lo que ya sabemos y herramientas tan poderosas como Visual Studio y la suite de Expression!

    Los desarrolladores hemos pedido mejor interoperabilidad de manera que el mismo markup (tags, script, language, css) funcione en todos los browsers. PP3 incluye soporte a ES5 el estándar por excelencia de JavaScript.
    Por si fuera poco, el marcador en ACID 3 subió enormemente desde el PP1, cuando posteé al respecto:


     image


    Y eso que venimos de un muy humilde 12 en IE8. Pues ahora en PP3 tenemos:


     image


    83!!! Me preocupa en que se basarán las futuras críticas de IE que siempre usaban el ACID como derrotero. Esto, sin tener en cuenta que el test ACID 3 no es tan imparcial como pareciese. De hecho fue creado por un empleado de Google.
    Por si fuera poco, miren lo que obtuve al probar los Selectores de CSS3!


    “From the 43 selectors 43 have passed, 0 are buggy and 0 are unsupported (Passed 578 out of 578 tests)”
    That’s Right! Full Support!

     

    image
    IE9 + Windows + aceleración por hardware es como el vino...  se pone mejor con el tiempo… Es hora de aprovechar todo el poder de nuestra PC y reinventar la Web! Ingrese a http://ietestdrive.com Descargue la plataforma, vea las demos, ejecute las pruebas de estandarización y rendimiento y prepárese para lo que viene!
     

  • WarNov Developer Evangelist

    SQLite: DB Locales en Win8

    • 5 Comments

    Hoy estuve charlando con Sorey Garcia acerca de la app que está creando para el lanzamiento de Windows 8. Me contaba que estaba implementando mucho en el backend, por que estaba siendo muy difícil para ella manejar información estructurada del lado del cliente, dado que la promesa de SQLite, que era la tecnología que se había puesto disponible por parte de terceros para este tipo de manejos, aún no estaba claramente desarrollada… sin embargo, eso hoy ya ha cambiado, y se lo hice saber:

    - Niña, hoy en día ya está completamente implementado!!!
    le dije… ella muy juiciosa y proactiva me respondió:
    - Súper! Voy a estudiarlo y a hacer un post, porque ya hace rato no escribo…
    - Eso sería excelente… - musité…
    - Porque yo iba a escribir ese post… te parece más bien si te invito al mío con el post que escribas??
    A ella le gusto la idea, y aquí está su post acerca de cómo usar SQLite en Win8:

    _________________________________________

    Sorey says:


    Aprovechando que hoy ando trabajando por estos días con Windows 8, hoy les traigo este tema que nos hizo sufrir a más de uno mientras esperábamos el RTM, en realidad esperábamos ansiosamente el wrapper de SQLite sin saberlo.

    SQLite es una biblioteca de software que implementa una en sí misma, sin servidor, sin necesidad de configuración, el motor de base de datos transaccional de SQL y su código fuente para SQLite es de dominio público.

    Pues bien, SQLite ahora está disponible para nuestras aplicaciones Windows 8 que requieren almacenamiento estructurado local. El dolor que teníamos es que hasta ahora no existía una implementación de un wrapper estable y aprobado por Microsoft, que nos permitiera usarlo en nuestras apps. Soy enfática en el tema de aprobado por Microsoft puesto que ya habían varias implementaciones por ahí que muchos estaban usando, sin embargo al enviar nuestras aplicaciones a ser certificadas para publicarse en el Windows Store, estas podían recibir observaciones. Sin embargo ya la librería oficial escrita en C++ y que nos provee todo el poder y funcionalidad de SQLite está disponible para nuestras apps.

    A continuación voy a hacer un ejemplo sencillo, paso a paso, mostrando como usarlo en una aplicación  Windows 8, este ejemplo está basado en el artículo publicado por Tim Heuer, una de mis fuentes recurrentes.

    Aclaro y soy muy enfática en ello, de la interfaz que use en el ejemplo, nada que ver con como debería ser una aplicación Windows 8, en este caso el ejemplo está más centrado en como usar SQLite.

    En primer lugar debemos instalar la extensión que nos permite usar la librería de C++ creada por el equipo de Windows. La encontramos en Tools > Extensions and Updates


    Luego buscamos los componentes en línea SQLite for Windows Runtime y la descargamos para que sea instalada en nuestra máquina.


    Se nos pide una confirmación, que aceptamos para proceder con la instalación.

     
    Visual Studio nos notifica que debemos reiniciar para que la extensión sea tomada.
     
     
    Reiniciamos y abrimos nuestro proyecto y seleccionamos la opción de añadir referencias.
     
     
    Debemos seleccionar SQLite y Microsoft Visual C++ Runtime para que la librería funcione correctamente.


    En mi caso Visual Studio reportaba un error, ya que debía seleccionar una plataforma específica a pesar de que en realidad se nombran todas las posibles en el mismo mensaje de error.
     

    Para corregir ingresamos a las propiedades del proyecto

     
    Y seleccionamos en la sección Build, la plataforma de destino.

     
    Ahora bien,  en este punto si tenemos el conocimiento podríamos acceder a la librería y usarla, sin embargo lo recomendado es buscar algún Wraper existente en C# como es mi caso, para no tener que lidiar con esto si no sabemos como hacerlo. Muchos de esos wraper se encuentran disponibles en NuGet. Si usamos VB debemos continuar los pasos hasta añadir el código del wraper, y compilar una librería en C# y luego referenciar esta desde nuestro proyecto VB.
     
    Para iniciar la instalación del wraper verificamos en las extensiones si lo tenemos instalado y si no procedemos a hacerlo igual que se hizo con el SQLite.
     

    Ahora bien ingresamos a NuGet para buscar un wrapper adecuado para nuestra aplicación.
     

    El wrapper recomendado en el artículo de base de este post es sqlite-net, lo seleccionamos e instalamos.
     

    Se nos pide seleccionar en que aplicación vamos a añadir el código, en este caso solo tengo un proyecto.
     
     
    Lo que sucede es que añaden dos API a nuestro código, una de ellas es una API que usa  Async , palabra que si no entiendes a este instante te recomiendo estudiar en Channel 9 o en el Blog de Walter Novoa
     
    En este post usaré Async, si quieres ver como usar la otra API, puedes ver el post de Tim Heuer o bien leer la documentación en español del Windows Developer Center

     
    Para esto también es muy importante tener los conceptos de objetos y ORM claros en tu cabeza. De hecho empezamos nuestro ejemplo construyendo la clase que mapea con la estructura de nuestra tabla de ejemplo. No debemos confundir la clase con la tabla, la tabla de hecho no la veremos, sin embargo es la clase quien nos ayudará a que finalmente se cree la tabla (esto solo suena enredado si no tienes claros los conceptos que te mencioné)
     
    La clase es sencilla, sin embargo podrás ver unos decoradores sobre ella
     
    Otros decoradores pueden ser AutoIncrement, MaxLength(30).

    Ahora creamos nuestra interfaz sencilla, les comparto el Document Outline para que se guien.
     

     
    Tambien pueden ver el XAML del formulario. Solo recuerden que hacer una aplicación Windows 8 requiere de mucho más, pero es bueno iniciar desde lo fácil.
     
    Aprovecho para recomendarles que aprendan a manejar Blend, de verdad es una gran herramienta para abstraernos un poco del arduo trabajo de hacer XAML, sin embargo es igual de importante entender y saber modifical el XAML cuando algo va mal.
     
     
    Ahora va el código del botón insertar como ven es bastante sencillo de usar cuando ya tienes el wrapper correcto.
     
     
    Aquí la aplicación funcionando.

     
    Luego tenemos el botón consultar que lleva un ListView los items de la base de datos, bastante sencillo tambien.

     
    Aqui vemos la aplicación mostrando los nombres registrados.

     
    Recuerden que hay mucho que hacer con respecto a las listas, y en XAML si sabemos manejar los enlaces correctamente podemos mostrar más información sin hacer más código, veamos un ejemplo de esto para terminar.
     
    Pueden modificar el DataTemplate del ListView así:


    Como mostraremos todo el objeto y no solo una parte de el modificamos el código.

     
    Y de esta forma podemos tener una lista con más forma, que de hecho podemos editar mucho mejor si usamos Expression Blend.

     
    Espero que este corto ejemplo les resulte de mucha utilidad. Nos vemos la próxima.
    ______________________________________________
     
     
    WarNov Says: Para estar al tanto de muchos otros posts muy buenos como este, les recomiendo que visiten el blog de Sorey.
     

    Sorey García es líder de la comunidad Avanet, MCS Gold en Colombia con especialidad de Windows Phone,
    Organizadora de Eventos como el Barcamp Medellin
    y también lidera la investigación tecnológica en su actual empleo.
  • 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.

  • WarNov Developer Evangelist

    Mono Tools for Visual Studio

    • 4 Comments

    Cada vez que encuentro noticias como esta me siento bastante agradado pues nunca me ha gustado cuando dicen por ahí que la tecnología Microsoft es cerrada y para nada extensible a otras plataformas. Y el agrado surge básicamente de que obtengo cada vez más argumentos para demostrar lo contrario.

     

     

    En esta ocasión, la gente de Novell llega con este brillante producto. Aquél que nos permitirá a nosotros desarrolladores de software cuyo cubil de trabajo no es otro más que Visual Studio, tener nuestras creaciones en Linux, Unix y hasta MacOS, sin necesidad de aprender lenguajes ni plataformas nuevas.

    image

    Es un Add-In comercial (versión gratuita de evaluación) que se instala en Visual Studio y que permite entre otras cosas hacer escaneos de nuestras aplicaciones para ver si podrán correr bien sobre el Framework Mono (versión del Framework.Net para plataformas no Windows), hacer pruebas de nuestras aplicaciones usando Mono en Windows o en una imagen virtual de Linux, hacer debug remoto en Linux, empaquetar para Linux estándar o mediante un Appliance para SUSE Linux que proveerá un servicio de deployment muy sencillo para nuestra aplicación.

     

     

    Imaginen entonces qué cantidad de trabajo nos podremos ahorrar a la hora de programar nuevas aplicaciones .NET que queramos que corran en las plataformas no Windows, pero sobretodo la posibilidad de poder reusar todos los componentes que ya existen!

     

     

    Todo esto nos permitirá a nosotros, a los ISVs y proveedores de servicios de desarrollo expandir nuestras oportunidades de mercado de una manera muy sencilla. Sobretodo viendo que en el mercado actual, hay muchas instalaciones no Windows.

    image

    Además, para aquellos acostumbrados a desarrollar en otras plataformas, puede ser una oportunidad para explorar nuevas formas de desarrollo (Con Visual Studio) que de seguro harán que vean todas sus ventajas sobre los modelos de desarrollo que han usado siempre para llegarle a plataformas como Linux o MacOS. El sitio oficial de Mono Tools for Visual Studio se encuentra en este link.

     

     



  • WarNov Developer Evangelist

    Could not load file or assembly 'Microsoft.WindowsAzure.StorageClient, Version=1.0.0.0

    • 0 Comments

    Si recientemente ha migrado a una nueva versión de Azure, este es un claro síntoma de error de migración desde la versión 1.2 de las herramientas y SDK de Windows Azure a la versión 1.3.

    Indica obviamente que la referencia a StorageClient.dll v1.0.0.0 no se encuentra y el proyecto no compile. Esto pasa porque la versión 1.3 viene con una versión más avanzada del API de acceso al storage. Así que solo basta con eliminarla y buscar la nueva que es la v1.1.0.0. Hágalo sin temor; no va a dejar de funcionar nada. Lo único que trae la nueva versión son mejoras y soluciones a bugs de antes. No se eliminaron funcionalidades ni cosas por el estilo.

    clip_image002

    Puede ver los cambios específicos entre ambas versiones en este post.

  • WarNov Developer Evangelist

    Aprende Windows Phone con los Student Partners de Colombia!!

    • 2 Comments

    Una semana de sesiones dirigidas por Marylin Alarcón y Juan Giraldo sobre las principales características y funcionalidades de la plataforma.

    Al finalizar estarás en la capacidad de crear tus aplicaciones, publicarlas y distribuirlas a través de Marketplace y te enteraras de como participar por la oportunidad de ganar un teléfono Windows Phone 7 completamente nuevo para tus desarrollos o para uso personal.

    Sesion 1 - Preparando el terreno:

    Windows Phone 7 como plataforma para desplegar tus soluciones para tus clientes

    URL de Registro: http://bit.ly/WP7S1

    Sesion 2 - Controles, Launchers y Choosers:

    Utilizando el máximo potencial de los controles Silverlight y las características que nos provee WP7 para nuestras aplicaciones.

    URL de Regitro: http://bit.ly/WP7S2

    Sesion 3 - Databinding y servicios web:

    Cómo WP7 nos permite manipular y comunicar datos desde y hacia el dispositivo.

    URL de Registro: http://bit.ly/WP7S3

    Sesion 4 - Haz tu aplicación:

    Tips adicionales para el desarrollo de tus aplicaciones.

    URL de Registro: http://bit.ly/WP7S4

    Puede revisas la lista completa de requerimientos para trabajar con Windows Phone 7 siguiendo este vínculo: http://bit.ly/WP7HyS

    ¡¡No dejes pasar esta oportunidad de capacitación gratuita!!

  • 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

    Codificando N Veces más rápido con Visual Studio

    • 9 Comments

    Video ultra rápido mostrándonos un tip súper cool de Visual Studio 2010. Say no more.

  • WarNov Developer Evangelist

    Portal S2B. Un sitio de Microsoft en la Web, donde conectamos empresas con profesionales de tecnología.

    • 0 Comments
    del.icio.us Tags: ,
    S2B, una iniciativa de comunidad que conecta a Microsoft, sus socios de negocio y clientes, con profesionales y estudiantes de tecnología, calificados para pasantías y trabajos desde primer nivel, hasta proyectos de gran envergadura.

    [ www.s2bprogram.com/colombia ]

    ¿Está interesado en la selección de lo mejor de lo mejor para su empresa?

    Con S2B puede encontrar profesionales y estudiantes, capacitados en tecnologías de Microsoft como .NET, Windows, SharePoint y SQL Server entre otras, y que han participado activamente en diversos programas de Microsoft de capacitación y certificaciones profesionales y en programas académicos como Imagine cup, Microsoft Student Partners y Microsoft Student Tech Clubs.

     

    Empiece ya, es muy sencillo

    1. Registre su Empresa en el portal del programa S2B
    2. Publique sus Ofertas Laborales
    3. Consulte los candidatos que aplican a sus ofertas

    Si usted es estudiante profesional de tecnología buscando oportunidades laborales, también lo invitamos al portal para que registre su hoja de vida.

    Cada oferta publicada a través del Portal S2B, será replicada a través de diversos medios de comunicación de Microsoft Colombia hacia profesionales y estudiantes, y además será compartida con las comunidades profesionales y académicas con las que tenemos relación en el país.

    Instrucciones detalladas aquí

    Si desean incluir un widget en sus sitios web para que sus visitantes tengan la oportunidad de buscar empleos a través de nuestro portal, pueden obtener instrucciones ingresando aquí.


  • WarNov Developer Evangelist

    Windows Phone Developer Tools 7.1 Beta Release

    • 0 Comments

    Hoy en Nueva York fue anunciada al mundo la siguiente versión de Windows Phone con nombre código “Mango” . En el evento se revelaron las principales características de esta versión, así como las mejoras al Marketplace que no habían sido mostradas en eventos previos. Para ver el video de este evento poder ir aquí.

    Tras este evento, las herramientas para que los desarrolladores puedan crear aplicaciones que explotan todas estas nuevas características están disponibles públicamente y sin costo.

    Características Liberadas

    · Profiler: Una herramienta que permite identificar y resolver problemas de performance de una manera rápida y sencilla.

    · Emulador Mejorado: El nuevo emulador permite simular entradas para los sensores. Incluyendo información de GPS y datos para el acelerómetro. Así que ya no tendrás que ir hasta la India a ver si su aplicación GPS funciona allá como debería.

    · Visual Basic: En este reléase se provee soporte para este lenguaje tanto para crear proyectos XNA como Silverlight con Visual Studio y Expression Blend.

    · Multi Targeting: Que nos permite escoger para qué versión del OS queremos que corra nuestra aplicación (para la 7.0 o la 7.1)

    · Contactos que se pueden organizar por grupos y además se pueden ejecutar comunicaciones con dichos grupos

    · Filtros de información (por ejemplo; no quiero tener updates de Facebook para determinadas personas)

    · Comunicaciones integradas a través de threads: De esta manera por ejemplo se puede seguir un chat a través de SMS, Windows Live Messenger o Facebook, dependiendo de dónde se encuentren activos nuestros interlocutores.

    · Conversaciones en Email así cono “Information Right Management” para proteger la información corporativa.

    · Resolución de conflictos de Agenda.

    · Eventos de Facebook en la agenda

    · Si está oyendo música o con el teléfono fuera del alcance de sus manos (tal vez conduciendo) Ahora podrá ejecutar muchas acciones solo con la voz. Por ejemplo si llega un nuevo mensaje, el teléfono le informará a través de voz de quien es y su contenido. Además usted podrá replicar a dicho mensaje también solo diciendo lo que quiere que vaya en el SMS.

    · Detección de Rostros en las fotografías tomadas con el teléfono que permite etiquetar contactos y actualizar redes sociales

    · Mejor integración de los documentos de Office ahora con Office 365 y con Skydrive

    · IE9 FULL (exacto al de la versión de escritorio)

    · Búsquedas en Bing que incluyen comandos por ubicación, imágenes, y voz

    · Otras nuevas características:

    o Acceso a sensores adicionales: Cámara, compas, gyro

    o Background Agents

    o Cambio entre aplicaciones aún más rápido

    o Control de Web Browser basado en IE9 para incluir en nuestras aplicaciones

    o Live Agents que nos muestran información dinámica en el home del sistema

    o Silverlight 4

    o Silverlight interoperando con XNA

    o Sockets

    o SQL CE

    Recursos:

    · WPDT 7.1 Beta

    · Windows Phone Developer Blog

    · Sesiones de Windows Phone @ MIX11

    · App Hub

  • WarNov Developer Evangelist

    Windows Phone 7 Applications: Tipos de Distribución.

    • 0 Comments

    Abstract:

    Las aplicaciones de Windows Phone 7 siguen un modelo de distribución a través de un Marketplace centralizado en Internet. Este modelo que es bastante popular para las aplicaciones móviles de la mayoría de fabricantes sin embargo ofrece algunos inconvenientes para distribuir aplicaciones a grupos especiales; por ejemplo Beta Testers, o empleados de una compañía. La última actualización del APP Hub de Windows Phone 7 permite dar solución a este problema a través de sus dos nuevos tipos de distribución de aplicaciones: “Targeted” y “Beta”.

    Contenido:

    Hasta hace un tiempo, la única forma de publicar en el App Hub de WP7 era a través del mecanismo de distribución pública según el cual, al estar una aplicación en el Marketplace, esta se hace visible para todo el público sin que podamos por ejemplo elegir quienes sí la pueden comprar/descargar y sin que se puedan poner restricciones de tiempo para su uso. Aunque esto es adecuado para la gran mayoría de aplicaciones, qué pasa si como publicadores queremos poner nuestra app en Beta para que solo unos cuantos la prueben? O tal vez creamos una aplicación para una empresa que obviamente requiere que solo esté disponible para ciertos empleados?

    Para resolver estas situaciones, nuestra nueva versión del App Hub incluye dos nuevos tipos de publicación aparte del tipo “public”. Ahora tenemos “Targeted” y “Beta”.

    Targeted:

    Es el tipo de publicación ideal para empresas. En este, la aplicación se sube como se haría tradicionalmente al App Hub (incluyendo todos los procesos de validación tradicionales), pero manteniéndola oculta en el Marketplace, de manera que sólo los usuarios con el link de dicha aplicación la pueden descargar e instalar. Al finalizar el procedimiento de envío de aplicación al App Hub, habrá la posibilidad de escoger cómo y cuándo hacer pública la aplicación después de que esta pase el proceso de certificación, entonces escogeremos “As son as it’s certified, but make it hidden”. De tal manera que apenas la app pasa la certificación queda lista para ser descargada, pero invisible para quienes no tengan el link. Sin embargo, cuando uno lo desea, puede hacerla visible, convirtiéndola en una aplicación pública tradicional.

    clip_image002

    Luego de ser publicada se recibirá un correo con el link a la aplicación. Este es el que se deberá remitir a la audiencia objetivo. Cualquier persona con el link puede descargar la aplicación, hay que tenerlo en cuenta. No hay límite de personas para descargar la aplicación. Contrario a las publicaciones estándar, no se puede hacer actualización de la aplicación aún. Así que hay que hacer un re-envío en caso de una actualización. No se puede establecer un límite en el tiempo en que la aplicación está disponible para la audiencia (en el tipo “beta” sí). Este tipo de publicación también consume créditos de los que se tienen disponibles de acuerdo al plan de publicación adquirido.

    Beta:

    Una versión beta permite exponer al público una aplicación para su evaluación sin que necesariamente esto signifique ponerla en producción. Una de las ventajas obtenidas en este tipo de publicación, es que el proceso de certificación es automático, de manera que la aplicación queda disponible mucho más rápido. Además es un proceso gratuito que no consume créditos del plan. La aplicación solo es accesible a través de un link (oculta del marketplace) y se posee un completo control sobre quiénes pueden probar la beta, dado que se especifica el Windows Live Id del beta tester, quien descarga e instala la aplicación a través de los mecanismos tradicionales en dispositivos comerciales sin necesidad de estar registrados como developers. Eso sí, las aplicaciones en Beta expiran automáticamente a los 90 días después de su publicación. Lo que quiere decir que el link no funcionará más y que la aplicación no se podrá ejecutar, de tal forma que solo aparecerán dos opciones: desinstalar o dar feedback. Se pueden subir tantas aplicaciones en beta, como queramos, pero siempre las versiones Beta van gratuitas.

    Cuando estemos publicando nuestra app, podremos escoger si queremos que suba en beta privada:

    clip_image004

    De la misma manera, se pueden escribir los Windows Live ID de los testers:

    clip_image006

    Como se aprecia, tenemos hasta un máximo de 100 testers por aplicación en la lista. Esta lista se puede modificar cuando se desee durante los 90 días posteriores (para ningún efecto este tiempo es modificable) a la publicación exitosa de la aplicación. Luego de ejecutar este proceso, y de ser publicada la aplicación, se recibe un correo con la dirección de la misma, para distribuir entre los beta testers. Si el Live Id de la persona que intenta descargar la aplicación no está en el listado consignado anteriormente, dicha persona no podrá acceder a la aplicación.

    A diferencia del modelo “targeted”. Las aplicaciones en Beta no se pueden hacer públicas. Se necesita re-enviarlas.

    Conclusión:

    Vimos que el App Hub de Windows Phone 7 ha evolucionado permitir nuevos modelos de despliegue de aplicaciones orientado a empresas y a “Beta Testers” que facilitan enormemente el ciclo de vida de la aplicación y el alcanzar públicos especiales. Cosa que no se podía con el método de publicación tradicional.

  • WarNov Developer Evangelist

    Imágenes Link sin Borde Alrededor

    • 0 Comments

    Añadiendo un widget de twitter a mi blog, observé lo siguiente:

    image

    Como observan, se le pinta el borde azul típico de los hyperlinks. Cosa bastante molesta, más aún cuando la gente ya sabe que eso es un link.

    Lo que yo quería era algo así:

    image

    Después de investigar solo un poco, encontré una sencilla solución:

    Solo hay que agregar

    BORDER=0

    al tag

    <IMG ..>

    Así pues un ejemplo completo sería:

    <A HREF="http://warnov.com/dblog/"><IMG SRC="blog.gif"
    BORDER=0 HEIGHT=33 WIDTH=82 ALT="Visita mi Blog"></A>


  • WarNov Developer Evangelist

    IE9 Beta disponible dentro de 45 minutos!

    • 6 Comments

    Es 15 de Septiembre de 2010 y son las 11:15am

    Presentamos la nueva versión de nuestro navegador web: se trata de Internet Explorer 9 (IE9), un explorador pensado para mejorar la experiencia de los usuarios, simplificar el trabajo de los desarrolladores y sacar el máximo provecho a las páginas web.

     

    clip_image001

    Este nuevo explorador se enfoca en cuatro aspectos: rapidez, confiabilidad, sencillez y compatibilidad. En palabras de José Antonio Barraquer, director de Unidad de Negocios de Windows para Microsoft Colombia, “Internet Explorer 9 se apropia de las ventajas del computador para ofrecer una navegación mucho más ágil; tiene una apariencia limpia que da más importancia a los contenidos, mantiene un robusto sistema de seguridad y ofrece un mayor soporte a los estándares modernos de desarrollo en internet”.

    La historia de Internet Explorer se remonta al 16 de agosto de 1995, cuando con la salida de Windows 95 al mercado apareció la versión 1.0 de este navegador. Desde entonces, se han realizado sustanciales mejoras en materia de rendimiento, seguridad y apariencia. Tantas, que hoy, 15 años después, se calcula que el 59 por ciento del tiempo que la gente pasa en un computador Windows es invertido en el explorador de internet.

    ¿Qué es lo nuevo de Internet Explorer 9?

    Más limpio y sencillo

    IE9 se enfoca en los contenidos y en lo que el usuario quiere ver y encontrar, por eso, el número de botones se reduce y el marco del explorador se desvanece en el fondo, trayendo a un primer plano la página que se visita. Algunas de características son:

    · Barra de direcciones inteligente más inteligente: La barra de direcciones y el cuadro de búsqueda se combinan en un solo recuadro desde donde el usuario puede navegar a un sitio, buscar y obtener sugerencias de sus proveedores de búsqueda, tener acceso a su historial y a sus sitios favoritos, etc.

    · Navegación por pestañas mejorada. Un renovado diseño para las nuevas pestañas muestra los títulos de los sitios más visitados por el usuario y permite reabrir las pestañas cerradas recientemente, así mismo permite restaurar las última sesión del navegador y carga páginas y gráficos de una manera mucho más rápida. Además podemos extraer pestañas de una instancia de IE9 y ponerlas en otra instancia!

    · Integración con Windows 7: a través de un pin o alfiler se pueden anclar los sitios web a la barra de tareas, para acceder a ellos con tan solo un clic y sin necesidad de abrir el navegador. Además, con el ajuste de ventanas de Aero Snap, ahora se pueden ver dos pestañas o ventanas al mismo tiempo, sin tener que acomodar el tamaño de cada una de ellas. Crece el botón “Atrás”, mucho más usado que el “Adelante”, para que el usuario vea únicamente lo que es indispensable para su navegación.

    clip_image002[4]

    Más confiable

    IE9 responde a las necesidades de los usuarios en materia de privacidad y confidencialidad, que, según Juan Carlos Ruiz, MVP que ha trabajado mucho con nosotros el tema de IE9, “necesitan algo confiable. Poder concentrarse lo que hacen en internet sin pensar en nada más, o hacer transacciones bancarias sin temor a que los roben”. Por eso, IE9 cuenta con sistemas integrados de seguridad, privacidad y confiabilidad que mantienen seguros a los usuarios y evitan que su experiencia se vea interrumpida.

    En materia de seguridad, Internet Explorer 9:

    · Introduce el Download Manager o Administrador de Descargas: Se trata de una función que permite administrar fácilmente los contenidos que están siendo y han sido descargados y que remplaza el cuadro de “Ejecutar, Guardar como o Cancelar” usado en las versiones anteriores de Internet Explorer. El Download Manager permite, desde una misma ventana, abrir o cancelar cualquiera de las descargas, y escanea cada uno de esos contenidos en busca de virus o archivos ejecutables potencialmente dañinos.

    clip_image004[4]

    · Mantiene la navegación en privado (InPrivate): Es una forma ‘navegar a escondidas’, que permite trabajar en la red sin dejar rastro de las páginas que se visitan o las palabras que se ingresan en los buscadores. Además protege los datos de formularios y las contraseñas, garantizando que su información personal se mantendrá en privado.

    · Mantiene la más alta protección contra el malware: Con filtros como Smartscreen y Anti-pishing que bloquean los mecanismos de suplantación de identidad y software maliciosos, Internet Explorer sigue siendo el navegador más seguro del mercado.

    clip_image006[4]

    Más rápido

    Según Walter Novoa (WarNov), bloguero y Developer Evangelist, “pensando en que a los usuarios nos gusta navegar muy rápido y no podemos esperar montones de tiempo a que las paginas descarguen, Internet Explorer 9 está diseñado para descargar las páginas mucho más rápido que otros navegadores. Además IE9 se aprovecha totalmente del hardware de la máquina, incluyendo la tarjeta de Video para sacarle el máximo provecho a HTML5 por ejemplo”. Algunas de sus novedades en materia de rapidez son:

    · Aceleración por hardware: Actualmente los navegadores usan sólo el 10% de las capacidades del computador, pero IE9 toma ventaja de todo el poder de cómputo de la máquina y del sistema operativo Windows, permitiendo al explorador correr como si fuera una aplicación nativa instalada en el computador.

    · Olvida los Plug-in adicionales: Soporta elementos de audio y video, habilita sombras, video embebido y contenido de audio sin necesidad de un Plug-in adicional.

    clip_image008[4]

    Más compatible e interoperable

    “Muchas de las aplicaciones para desarrollar para internet requieren del uso de aspectos técnicos muy elaborados. La compatibilidad, en estos casos, exige que podamos crear aplicaciones desde diferentes lenguajes que sean interoperables con los diferentes navegadores”, explica Sergio Acosta, experto diseñador, y agrega: “el soporte de HTML5, el nuevo lenguaje de HTML establecido como el nuevo estándar para creación de aplicaciones en internet, permite que todas las aplicaciones se vean exactamente igual y funcionen de la misma manera sin tener que reescribir varias veces el mismo sitio para los diferentes exploradores”.

    Las mejoras de IE9 en materia de interoperabilidad permiten a los desarrolladores enfocarse en crear grandiosas aplicaciones, en lugar de gastar tiempo de creando tres veces el mismo sitio. Dentro de las mejoras en este ámbito se destacan:

    · Soporte HTML5: Haciendo más sencillo el trabajo de los desarrolladores y logrando que su trabajo se vea igual en todos de los exploradores.

    · Compatibilidad con estándares modernos basados en CSS3, DOM L2 y L3, SVG, ECMASScript5, entre otros.

    Pasos para descargarlo

    El beta de Internet Explorer 9 puedes descargarse gratuitamente en castellano desde: www.labellezadeinternet.com Y en ingles http://www.beautyoftheweb.com dentro de 45 minutos (12pm del 15 de Septiembre de 2010)



  • WarNov Developer Evangelist

    Estrategias para prevenir rechazos de tu app en el Marketplace de Windows Phone 7

    • 0 Comments

    Abstract:

    Con el pasar del tiempo y las consultas que me han hecho, he recopilado los motivos más frecuentes por los cuales una app de WP7 es rechazada para acceder al Markeplace (mp) después de subirla a través del AppHub. Este post recopila estos motivos y su solución.

    1. Marcas y logos registrados:

    Cuando se usan dentro de la aplicación marcas y logos reconocidos, nos pueden devolver la app para que indiquemos si tenemos permiso para usarlos. Esto se puede indicar en el último paso del proceso de subida de la app, en el espacio que dice Test Notes:

    image

    Estas notas deben ir en inglés y tal como lo recomiendo en el ejemplo, se debe indicar que la empresa dio los permisos adecuados, así como los datos de la persona de contacto que se podría requerir para certificar este permiso.

    2. Uso de GPS

    El uso de GPS como es bien sabido, interviene con la privacidad del usuario, pues se podría comenzar a reportar la ubicación de un usuario sin que este lo haya permitido. Es por esto que si empleamos el api de localización en nuestras apps, debemos proveer claramente un mecanismo para desactivar estas funcionalidades. Además cuando lo hagamos, la aplicación debe seguir funcionando correctamente. Además de esto, se debe proveer una política de empleo de la información de la localización que explique perfectamente al usuario para qué serán usados los datos, de manera que él pueda comprender las implicaciones de autorizar el empleo del GPS en la app. Esta política puede estar incluida en la app, o ser un link a algún recurso externo. Acá les escribo un ejemplo de política:

    La aplicación xxxxx ofrece servicios avanzados de búsqueda, basados en la ubicación del usuario. Los datos de ubicación del usuario son usados exclusivamente para este fin y nunca son compartidos. Sin embargo, si el interés del usuario es que esta aplicación no haga uso de los servicios de localización del teléfono, éstos se pueden deshabilitar en el menú de ajustes de la aplicación; en este caso la utilidad de búsqueda por cercanía quedará deshabilitada y la aplicación continuará funcionando correctamente.

    En este caso deberá de existir un menú de ajustes, donde se puedan deshabilitar estas características:

    image

    3. Screenshots

    Los Screenshots preferiblemente (obligación por ser la mejor opción) se han de capturar desde el emulador que tiene una utilidad para tomar estos screenshots.

    Pero con el emulador sucede que a veces puede estar mostrando el framerate de las imágenes que está mostrando. Si capturamos con esta opción habilitada, nuestra app será rechazada, porque estos elementos no pueden aparecer en los screenshots:

    image

    Esta opción por defecto viene habilitada, así que a la hora de hacer la captura la deshabilitamos desde el archivo: App.xaml.cs:

    image

    Basta solo con poner EnableFrameRateCounter en false.

    4. Lenguaje por defecto de la app

    Cuando creamos una app de WP7, el lenguaje por defecto de la misma está establecido en Inglés. Es por esto que cuando la subimos, el App Hub, allí esperan que pongamos una descripción de la App en inglés:

    image

    Es un error frecuente, porque si efectivamente nuestra app está en español, querremos ponerle descripción en español; pero el App Hub solo nos da la opción de inglés. Así que si ponemos la descripción en un idioma distinto al solicitado, nos rechazarán la app. Como lo mencioné es porque no hemos cambiado la opción de idioma neutral. Para lograrlo, vamos a las propiedades del proyecto y escogemos Assembly Information y allí podremos seleccionar el lenguaje neutral personalizado:

    image

    De esta manera cuando subamos la app al AppHub, nos aparecerá en este caso el idioma español, para poner la descripción.

    En situaciones más avanzadas queremos ofrecer nuestra app en varios idiomas. En otro post estaré mostrando cómo se logra tener localización de múltiples lenguajes. Por ahora veamos que si hacemos esto bien, cuando carguemos el xap al AppHub, observaremos que habrá una versión de toda la información que tenemos que suministrar, por cada lenguaje que hayamos incluido:

    image

    Como observamos en este caso, está seleccionado el idioma inglés y en este ponemos la información requerida. Luego seleccionamos español y procedemos escribiendo la información en el lenguaje adecuado. Recordemos que esto solo aplica cuando intencionalmente escogemos tener dos o más lenguajes para nuestras apps.

    Sabiendo que pueden surgir nuevos motivos de rechazo frecuentes, stay tunned, que aquí estaré citándolos y ofreciendo las posibles soluciones.

Page 5 of 14 (340 items) «34567»