MSDN Blogs
  • WarNov Developer Evangelist

    6 Capítulos de programación para Windows Phone 7 Gratis!!!

    • 0 Comments

    Para hoy les traigo este excelente draft - preview del libro “Programming Windows Phone 7 Series” escrito por el señor Charles Petzold (han de haber visto su nombre en la portada de muchos libros de MSPRESS)

    clip_image002

    Son seis capítulos que nos dejarán listos para programar cualquier tipo de aplicaciones en Windows Phone 7 Series!

    Disfrútenlo!



  • WarNov Developer Evangelist

    La nueva Eficiencia está en tus manos!

    • 0 Comments

    clip_image003

    Se trata de nuestro evento virtual de lanzamiento para Latinoamérica de 11 Productos!!!

    clip_image001

    clip_image002

    Tendremos webcasts y charlas en vivo con expertos de todo el continente.

    Personalmente estaré resolviendo sus dudas de Windows Azure desde la perspectiva de desarrollo a las 10am hora Colombia (GMT-5).

    También estaremos tratando temas relativos a Office 2010, SharePoint 2010, Visual Studio 2010, .Net Framework 4, SQL Server 2008 R2, Silverlight 4, etc.

    Regístrense haciendo click en la imagen!!!



  • 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

    Modificando el ancho de los ScrollBars en WindowsForms

    • 0 Comments

    Hace poco en mi foro me preguntaron acerca del mecanismo para modificar estos ScrollBars por ejemplo en un grid de WindowsFors…

    Primero, una mala noticia:
    El tamaño del scrollbar en aplicaciones Windows, independientemente de qué tecnología de programación se use para presentarlo, tiene un tamaño cuyo valor es una variable global del sistema. Es por esto, que no es posible modificarlo programáticamente. Si así lo hicieras, entonces TODOS los scrollbar de windows se modificarían y por tal motivo, esa opción no está disponible en el framework.

    Ahora las posibles soluciones:

    1. Cambiar en la personalización de Windows el tamaño de los scrollbar. Esto sería una buena idea, dado que todo el sistema está destinado para ser TOUCH. Al menú accedes dando click derecho sobre el escritorio, etc…
    2. Cambiar la aplicación a WPF: Para mí la mejor elección. Sobretodo dado que una interfaz touch tiene una interacción especial con el usuario. WPF está enfocado a permitir generar experiencias de usuario sofisticadas.
    3. Hacer el control en WPF y embeberlo dentro de un Panel de la aplicación WinForms: Esto si no quieren pasar todo a WPF. Aquí información de cómo hacerlo:
      http://msdn.microsoft.com/en-us/library/ms742215.aspx


  • WarNov Developer Evangelist

    Un mes de Windows Azure gratis para su aprendizaje

    • 0 Comments

    Si quieren aprender Windows Azure a su propio ritmo y con cuenta de Windows Azure, les tengo un pase especial por hasta un MES gratuito de Sql Azure y Windows Azure.

    NO SE REQUIERE TARJETA DE CREDITO!!

    Pueden iniciar el campamento en cualquier momento y podrán disfrutar de los servicios gratuitos hasta finalizar cada mes.

    Pasos a seguir:

    1. Para acceder a este beneficio, obtengan su pase aquí. Y luego entren al Portal de Desarrollo de Windows Azure con el pase obtenido.
    2. Descarguen las herramientas de Windows Azure para Visual Studio.
    3. Aprendan
      1. Aquí cómo crear su primera aplicación Windows Azure y súbanla con el pase obtenido.
      2. Entren rápidamente al mundo Windows Azure observando estos seminarios rápidos
      3. Aprendan Windows Azure a profundidad: Windows Azure Platform Training Kit

    Ánimo antes de que se acaben los cupos!



  • WarNov Developer Evangelist

    MIX10 Keynote Dia 2: Internet Explorer 9 y Visual Studio

    • 0 Comments

    El MIX10 es claramente uno de los eventos más importantes para desarrolladores y diseñadores alrededor del mundo. Cada año este evento es organizado por Microsoft en Las Vegas donde aparte de congregarnos a aprender los último en tecnología nos hemos maravillado con la magia de esta ciudad que nunca duerme.

    Son tres días de evento. Y durante los dos primeros tenemos Keynotes en las mañanas y el resto del día charlas. El tercer día está compuesto únicamente por sesiones de charlas.

    En mi anterior post vimos todo lo relativo al keynote del primer día que estuvo enfocado a Windows Phone 7.

    En el segundo día estuvimos apreciando un lanzamiento del que ya hemos sabido mucho gracias a las betas publicadas: Visual Studio 2010. Pero sobretodo tuvimos la fortuna de ser participes de un gran lanzamiento:

    Me siento complacido de anunciar la liberación del preview de la plataforma Internet Explorer 9 (IE9): La siguiente versión del navegador web más popular del mundo. IE9 esta siendo diseñado para ayudarnos en el desarrollo web creando aplicaciones enriquecidas, interoperables y que cumplen con los estándares, al proveernos la plataforma, las herramientas y las características que requiere la web moderna.

    Este primer vistazo a la plataforma está diseñado para permitirnos a todos en la comunidad del desarrollo y diseño web, una oportunidad de proveer feedback en nuestro progreso en la construcción de IE9. No está diseñado para ser un explorador web FULL, sino solo un primer vistazo… un pre-alpha. Esperamos liberar updates de la plataforma cada cinco a siete semanas.

    Internet Explorer 9

    Qué hay de nuevo?

    Sobretodo características que aprovechan la GPU (tarjeta de video) de las computadoras clientes para mejorar la experiencia con HTML5 y CSS3, usando SVG:

    • Podremos usar el poder de la aceleración de hardware para renderizar el HTML5 más rápido, con mejor resolución y usando menos recursos!
    • HTML5
      • Mejoras en el parsing, incluyendo el manejo de elementos genéricos y el overlapping de tags.
      • Soporte para parseo de XHTML
      • APIs de selección de texto para habilitar la selección programática de texto
      • SVG
        • Estructura de documentos con metadata y funcionalidad de extensibilidad.
        • Formas básicas como  rectángulos, círculos, elipses, líneas, polilíneas, y polígonos.
        • Sistema de coordenadas, transformaciones y unidades
        • Elementos de tipo Path!
    • CSS3
      • Esquinas Redondeadas a través de border-radius

        IMG_8086
      • Soporte para la propiedad CSS Opacity y el modelo de color RBGA
    • JAVASCRIPT
      • El nuevo motor interpreta aun más rápido:

        SunSpiderResults[1]
        Milisegundos empleados en terminar el test SunSpider con una Dell Optiplex con un procesador de 3.0 GHz Core 2 Duo Intel, 4GB RAM, video Intel Integrado y corriendo Windows 7.
    • DOM
      • DOM Level 2: Namespaces, Rangos y Vistas
      • DOM Level 3: Eventos
      • Soporte mejorado para los estilos y características HTML del DOM Level 2
    • DEVELOPER BAR
      • Network Analizer (Este es de los que más me gusta)
        • Permite a los desarrolladores capturar, mostrar y almacenar las peticiones web, sus estadísticas y análisis!!! Definitivamente era algo que le faltaba a las herramientas para desarrolladores.
    • AUN MAS ESTANDAR
      • De un ACID de 12, pasamos a uno de 55!!!

        Acid3ScreenCapture[1]

    Cuándo lo puedo tener?

    Aún más complaciente para mí, es anunciarles amigos, que el preview YA está disponible para su evaluación en http://www.IETestDrive.com. Allí también encontramos un conjunto de páginas web y aplicaciones diseñadas para demostrar características y mejoras incluidas en la última versión.

    Los desarrolladores y diseñadores pueden proveernos feedback a través del programa Microsoft Connect en www.connect.microsoft.com solicitando una invitación allí. Si realmente están interesados en usar la plataforma lo más pronto posible, comuníquense conmigo y les estaré dando un código de acceso inmediato.

    Visual Studio 2010

    IMG_8117Esta versión es definitivamente la que más cambios drásticos ha incluido en mis siete años de experiencia con la plataforma. Además, finalmente son los cambios más esperador personalmente hablando, pero también por muchos de mis amigos y conocidos desarrolladores.

    Los cambios han sido integrales y se han hecho inclusiones sin precedentes en la herramienta. Nunca me había sentido tan “en casa” como programando con Visual Studio 2010.

    Comencemos entonces:

    Soporte multi-monitor mejorado!!

    IMG_8120

    Esta característica es genial más ahora que tenemos una gran cantidad de herramientas nuevas para trabajar en vivo dentro de nuestro Visual Studio 2010 con la arquitectura de nuestros proyectos y necesitamos mucho espacio para ver diagramas mientras codificamos!! En anteriores versiones de la herramienta teníamos cierto soporte para estas características, pero ahora han sido mejoradas.

    IntelliSense más Inteligente

     

    IMG_8121

    El IntelliSense ya viene preparado para manejar las nuevas características del Framework 4.0 como parámetros por defecto. Además nos ahorra aún mucha más escritura con sus son consejos de código predictivo ya que con escribir cualquier parte de la palabra deseada (no solo el principio) nos muestra un listado de todas las posibilidades para que podamos escoger.

    También cada vez que estamos ubicados en un identificador, resalta dentro de todo el editor en donde se encuentra referenciado ese identificador al ponerlo en negrita.

    El editor de Visual Studio 2010 está basado en WPF. De manera que ahora las operaciones que podemos hacer sobre este son mucho mas flexibles. Una que personalmente me encanta es la posibilidad de hacer zoom sobre el editor usando el scroll del mouse acompañado de la tecla control. Esto es muy útil a la hora de ver nuestro código desde distancias considerables. Como esto es trabajado con WPF y texto vectorial, no se pierde nada de la calidad del código:

    image

    Estas son solo una de las pocas cosas que se han mejorado e incluido como nuevas en Visual Studio 2010 que darían para un post difícilmente terminable: Ventana de navegación de identificadores, generador de jerarquía de llamados, generador de dependencias... Pero aquí les dejo la referencia para que puedan ver con detalle de que se trata.

    Deployment

    Podemos manejar diversos ambientes de deployment de acuerdo a las condiciones, todo organizado dentro de nuestra solución. Por ejemplo, tenemos la habilidad de tener tres copias distintas de Web.Config: Una para desarrollo, otra para pruebas y otra para producción:

    IMG_8130

    ASP.NET 4.0

    Otro de los temas vistos en este Keynote fue ASP.NET 4.0 y todas sus novedades. Por ejemplo, la claridad y simpleza con que es traducido el código ASP.NET:

    IMG_8123

    Como pueden ver, el acercamiento al HTML plano y fácil de manejar luego con JQuery es total.

    Recuerdan cuando su página comenzaba a pesar 400kb y 500kb y cada vez crecía y crecía más, pues sobre el responsable en parte de este “sobrepeso” ahora se ha trabajado bastante así que el ViewState generado es mucho más pequeño:

    IMG_8124

    Otras características mejoradas:

    • URLs semánticas. Para hacer los sitios más accesibles a las personas y a los motores de búsqueda. Es de esta manera que ahora es mucho más fácil lograr urls como http://www.example.com/autos/acme/rojo/2009.
    • Muchas más gráficas (charts) nativas para mostrar datos

    Programación del Lado del Cliente

    Visual Studio también viene fuertemente enriquecido para mejorar el desarrollo de código para el lado del cliente, sobretodo ahora que es tan popular y benéfico.

    IMG_8128

    El Intellisense de Javascript es aún más rápido en esta versión. de hecho, observemos las mediciones en la velocidad de generar IntelliSense para librerías Javascript:

    IMG_8129

    De recalcar: JQuery se actualiza dos veces más rápido en VS2010 y librería como ExtJS se cargan SEIS veces más rápido!

    Este tipo de acciones de mejora para el lado del cliente, son solo una muestra más de todo el poder que Microsoft le está dando a estas herramientas que vienen a ser el futuro de la programación Web. Entre los esfuerzos, también podemos contar con que Microsoft está apoyando económicamente a la gente de JQuery para que sigan con su excelente trabajo!!

    IMG_8161

    Conclusión

    Si somos desarrolladores acostumbrados al tradicional ASP.NET y ADO.NET, tenemos que salirnos de esa “Zona de Confort” si en realidad queremos que nuestras aplicaciones puedan competir contra la avalancha de aplicaciones web ágiles que centran gran parte de la lógica en programación orientada a cliente también conocida como programación en el browser o sencillamente Javascript en todos sus sabores.

    Muchas veces hemos rechazado la programación de Javascript porque ASP.NET nos ofrecía un modelo bastante rico que nos permitía prescindir de ello. Sin embargo, esta encapsulación escondía la verdadera naturaleza de la operación Web (Request-Response) y terminó haciendo que nuestros productos fuesen muy pesados y no corrieran rápido bajo algunas condiciones.

    Hoy en día, Microsoft ofrece en su Visual Studio soporte a todas estas tecnologías. Un claro énfasis en permitir desarrollar fácil el Javascript, AJAX, JQuery, y en general todas las APIs para los servicios que se usan más en la actualidad. Sumemos esto a MVC y obtendremos sitios que llegan a ser hasta 10 veces más rápidos que sus antecesores ASP.NET clásicos.

    Es tanto el soporte que se quiere dar a esta tecnología, que hasta el browser: Internet Explorer 9, ahora tiene herramientas de depuración de código del lado del cliente y de monitoreo de comunicaciones HTTP que vienen enriquecidas para ofrecer más ventajas a este tipo de enfoque programático.

    No es fácil; pero solo es cuestión de animarse y dar el salto. De allí en adelante, todo será aprendizaje y mejora!



  • WarNov Developer Evangelist

    Diseñando Experiencias con Expression Blend

    • 2 Comments

    En estos últimos días, me he encontrado dictando varias conferencias en las que Expression Suite de Microsoft ha sido el protagonista. La recepción en general ha sido buena luego de mostrar las características de la herramienta. Sobretodo la integración entre los mundos del diseño y del desarrollo que ofrece Blend.

    BlendBanner

    Sin embargo en nuestro entorno, los diseñadores que la mayoría del tiempo han trabajado con herramientas Adobe no encuentran un punto clave para comenzar a aprender a manejar la Suite y adquirir los conocimientos necesarios para aprender a manejar la herramienta.

    Así que de las principales consultas que recibo es: Y cómo les enseño a mis diseñadores a manejar la herramienta?

    Una de las opciones más directas que siempre doy, es que accedan a los servicios (consultorías) de los entusiastas de Microsoft o cursos oficiales por ejemplo de CPLS.

    Pero hoy el mensaje va más allá gracias a dos excelentes recursos que tenemos mediante los cuales, los diseñadores con experiencia previa en herramientas Adobe, pueden acceder a unos cursos muy completos en los cuales aprenden fácilmente a dominar nuestra suite de Expression. El primer curso se enfoca en Windows y WPF y el segundo en Web y Silverlight.

    El primero de ellos es orientado a programación Windows con WPF:

    Designing Windows Experiences with Expression Blend (WPF)

    Entrenamiento

    Se trata del curso Designing Windows Experiences with Expression Blend. Un curso que provee el conocimiento experimental requerido para diseñar experiencias de usuario usando Expression Blend; herramienta con la cual podemos acceder a todo el poder de Windows Presentation Foundation.

    Es un curso enfocado a diseñadores gráficos especializados en Interfaces de Usuario que tengan una experiencia previa con Flash o Director. Además no se requieren conocimientos previos por ejemplo de desarrollo o del manejo de Visual Studio.

    Introducción

    El curso comienza enseñando la herramienta Expression Design con la que podemos general gráficos vectoriales de calidad profesional. Todo con procedimientos enteramente experimentales con los que llegan a construir una interfaz de un Video Player.

    Luego se enseñan otras herramientas de diseño que trabajan en conjunto con la Suite de Expression y que sirven para generar resultados más impactantes. En general son “Tips and Tricks” para preparar contenido 3D, gráficas, Video y contenido de audio para WPF, usando herramientas populares de diseño.

    Posteriormente nos enseñan cómo crear la interfaz del Video Player de una manera más avanzada usando Blend, para familiarizarnos con la herramienta.

    Colaboración

    Acto seguido nos ofrecen un proyecto pre-hecho que tiene toda la programación hecha, pero un diseño muy básico. Un capítulo de ejemplo que nos muestra la colaboración con el desarrollador. Los diseñadores toman este proyecto pobremente diseñado y lo convierten en un producto mucho  más atractivo.

    También hay otro escenario de colaboración en el que otro diseñador crea algunos recursos y assets previamente al diseño que se ejecuta. De esta manera el diseñador aprende a emplear assets generados en otra herramienta (por ejemplo Fireworks) y crea un ejemplo de una tienda de retail.

    Extras

    image

    Como si fuera poco también se ofrece un micro curso de UX para hacer énfasis a los diseñadores en los principios teóricos del manejo de la experiencia de usuario. Y muchos otros laboratorios para poder dominar la suite!

    El otro curso es:

    .toolbox (Silverlight)

    Es un curso online y más interactivo para aprender, crear y compartir experiencias con Silverlight y Expression Studio. Está creado completamente en Silverlight y ofrece una excelente experiencia de usuario genial para diseñadores y desarrolladores que quieran aprender más de la parte de diseño de aplicaciones Silverlight. Allí los participantes crean avatares para enriquecer su experiencia 2.0.

    image

    Tiene integración con Facebook y Twitter  y salones de clases. Básicamente se ofrecen dos tracks:

    • Escenarios de Diseño
    • Principios de Diseño

    Cada track ofrece How To Videos, Working Labs y características especiales que se desbloquean al mejor estilo de un videojuego en el que se van teniendo progresos a medida que nuestra reputación crece desde Rookie, hasta ser todo un All Star.

    image

    También tenemos ejemplos de aplicaciones de la vida real creadas por agencias expertas para Microsoft. Son aplicaciones avanzadas, cuyo código está completamente disponible para nuestro aprendizaje.

     

    Get Started!, Today!

    Otros Recursos:

    Silverlight 4 Training http://tinyurl.com/yebx3z7
    Curso en Videos de Silverlight http://tinyurl.com/yf32xl2


  • WarNov Developer Evangelist

    Silverlight Tour – Bogotá, Colombia (27Abr – 29Abr 2010)

    • 0 Comments

    Con permiso de mi buen amigo Rodrigo Díaz  me permito referenciar un post acerca de su visita a Colombia no solo para ser speaker de nuestro gran evento presencial para desarrolladores del 26 de Abril, sino para dictar también el curso de Silverlight 4 que hace parte del internacional Silverlight Tour:

    El Curso de Silverlight: Silverlight Tour Workshop en Español regresa a la capital colombiana el próximo día 27 de Abril.  Se llevará a cabo del 27 al 29 de Abril 2010 con un horario de 08:00 a 19:00 horas los tres días.  Les recuerdo que el material y todo el curso está completamente en Español :) .

    Asimismo, tengo el gusto de informarles que como una promoción especial en conjunto con Microsoft Colombia, esta fecha en Bogotá cuenta con 50% de descuento directo sobre el precio normal en Colombia.  Además, será el primero en utilizar el material actualizado a Silverlight 4 RC anunciado y liberado oficialmente la semana pasada en el marco del evento MIX 2010 en Las Vegas.

    Si desean comprender a profundidad la platataforma de desarrollo de Silverlight, conocer el uso de Expression Blend 4 (Beta), y prepararse para la construcción de aplicativos para Windows Phone 7 esta es su mejor opción.



  • WarNov Developer Evangelist

    MIX10 Keynote Día 1: Windows Phone 7 Series

    • 0 Comments
    Welcome to mix

    Este gran poster nos espero en el gigantesco Mandalay Bay en Las Vegas. Ciudad en la que cada año se congregan cientos y cientos de diseñadores y desarrolladores de todo el mundo para apreciar los últimos avances tecnológicos para mejorar la experiencia de usuario (UI) en los desarrollos de software.

    El keynote del primer día, estuvo nada menos que genial! Dirigido por el Vicepresidente Corporativo Scott Guthrie:

    WarNov y Scott Guthrie

    Con sus colaboradores mas cercanos, nos mostró a los asistentes un overview de la cantidad de tecnologías emergentes disponibles y en el día de hoy se hizo un alto enfoque en todo lo relacionado a Windows Phone 7 Series.

     

     

    Un Teléfono Amigable

    IMG_7907

    Y quien mejor para hablarnos de Windows Phone 7 que el señor Joe Belfiore. VP de Windows Phone 7!

    Para comenzar, se mostro como WP7 nace del concepto de usabilidad que se tiene con el Zune. El reproductor de multimedia de Microsoft, que desafortunadamente no es muy conocido en Colombia, y que realmente ofrece al usuario una experiencia bastante agradable.

    Es así, como ya no tenemos el Windows en “miniatura” que solíamos encontrar hasta Windows Mobile 6.5; y donde era muy complicado hasta el mero hecho de abrir el menú inicio. (Tocaba tener puntería)

    Hoy en día con WP7 el acceso a todos los comandos es bastante sencillo gracias a los Tiles que permiten con el dedo desplazarnos entre los aplicativos. (Adiós perdedizo Stylus!!!)

    Es un teléfono realmente amigable y fácil de usar. Enfocado claramente al manejo de redes sociales y reproducción multimedia.

    Un teléfono que se programa con Visual Studio .Net.

    IMG_7908 IMG_7909

    En este apartado, el señor Guthrie nos mostro como en cosa de 5 minutos escribía el “segundo cliente oficial” de Twitter para WP7. Solo escogiendo el tipo de proyecto para WP7 en Visual Studio 2010 ya tuvo un lienzo listo para trabajar y arrastrar un par de botones y luego usar la clase de WebClient para comunicarse con Twitter.

    Cómo obtenemos este tipo de proyecto en nuestro Visual Studio?

    Windows Phone 7 Series es un sorprendente sistema operativo para teléfonos móviles dada su innovadora interfaz de usuario y funcionalidad, así como la grandiosa plataforma de desarrollo sobre la cual nosotros como desarrolladores podemos construir rápidamente juegos y aplicaciones. Se vendrá toda una avalancha de dispositivos corriendo Windows Phone 7 Series (WP7). Y esto junto con la plataforma de desarrollo y el "Marketplace" hará que la demanda de WP7 de los consumidores sea muy alta, así que nosotros como desarrolladores podremos adoptar rápidamente la plataforma de WP7 para capitalizar este crecimiento.

    Para lograrlo, en el MIX10 se anunció la liberación del Windows Phone 7 Training Kit for Developers que incluye todas las librerías para programarlo de una manera similar a como programamos aplicaciones Silverlight, un emulador del teléfono y muchas otras herramientas! Este kit de capacitación les permitirá entrar en el nuevo mundo de WP7 por que le proporciona una explicación paso a paso de las herramientas a utilizar y algunos conceptos clave para la programación en esta plataforma! La información completa la encuentran aquí: http://developer.windowsphone.com/

    Un teléfono que tiene de todo!

    Ya muchas empresas han emprendido el viaje hacia el mundo de la nueva plataforma WP7. Por ejemplo Netflix el gran proveedor de alquiler y streaming de películas. Se creó esta aplicación que corre en WP7 y que nos permite entre otras cosas buscar títulos, ver los títulos recomendados, solicitar las películas a domicilio, y por si fuera poco, verlas en streaming directamente en nuestro teléfono gracias a las poderosas capacidades de reproducción de video de WP7 usando Silverlight 4 y OpenData operado desde Windows Azure

    IMG_7915

    Además se nos mostraron grandiosos juegos creados usando XNA! De manera que el mismo código de programación solo con unas pequeñas modificaciones fue usado para crear las versiones para PC y XBOX! One XNA!!!

    IMG_7904

    IMG_7946 IMG_7945

    Otra aplicación genial que vimos fue un reproductor de Comics:

    IMG_7918 IMG_7920 IMG_7922

    Vemos como nos permite ver toda nuestra colección de Comics, y para cada uno de ellos, leerlo como si fuera una revista normal o hacer acercamientos para ver mejor el arte del dibujo. Como si fuera poco, también se integra con Web 2.0, ya que permite comentar apartes de los Comics y publicar dichos comentarios en las redes sociales!

    Y hablando de redes sociales, me pareció de lujo la aplicación Foursquare que integra nativamente en el WP7 la información de todos nuestros contactos en todas las redes sociales en un solo aplicativo sencillo, fácil de usar y muy llamativo:

    IMG_7924 IMG_7927

    Permite ubicar a nuestros contactos (que tengan GPS) usando Bing Maps. Además permite la creación de eventos y los asistentes entonces tienen una guía basada en mapas para llegar al sitio de encuentro! Todo en WP7 gracias a SL, y programado con VS2010 y Blend 4. Osom!!!

    Otros aplicativos que vi bastante interesantes:

    • Shazam: Para poner al teléfono a oír una canción mientras descifra qué temas es y demás, usando bases de datos musicales online. De hecho, si hay una versión libre dela canción, nos permite descargarla o comprarla.
    • MLS: Un aplicativo que aprovecha tecnología de Message Push, que permite enviar información a aplicaciones WP7 aún cuando estas no estén corriendo actualmente en el teléfono. En este caso, información de los partidos de futbol era enviada al aplicativo y cuando el usuario abría dicha aplicación, encontraba ya toda la información actualizada.
    • Marionette: Trae ciertos “muñecos” personalizables a los que se les puede poner rostros de contactos y manipular como marionetas gracias al brillante manejo del Acelerómetro.
    • Loic Le Meur, gestor de seesmic nos enseñó la última versión de su cliente de twitter creado totalmente en WPF que ahora como novedad, permite a las empresas y personas, crear sus propios News Feed personalizados!! Pero para completar, nos mostró su brillante versión para WP7. Sencillamente genial…

    Para finalizar, nos sorprendieron con un aplicativo en WP7 que controlaba un robot cañón de camisetas real con el cual dispararon varias camisetas hacia la audiencia que luchó por ellas. Todo el manejo se hacía no solo con los botones del teléfono y el TouchScreen sino también con el acelerómetro:

    IMG_7936 IMG_7939 IMG_7976

    Todo esto fue desarrollado usando herramientas que afortunadamente tenemos disponibles desde AHORA!!!

     IMG_7950

    Las versiones Beta de Blend se pueden bajar de:
     http://expression.microsoft.com/en-us/cc507094.aspx

    Fue un gran KeyNote que nos dejó muy motivados para el resto de temas a tratar en el MIX. Hoy segundo día hemos visto que aún cuando fue tan impactante se quedó corto con todo el mundo de temas que se liberan en este año. Sigan conectados para más noticias y reviews!!



  • WarNov Developer Evangelist

    Lanzamiento de WebSiteSpark en Colombia

    • 0 Comments

    Aquí desde el MIX10 en Las Vegas, me complace informarles a todos los emprendedores, que en Microsoft Colombia tenemos muchas herramientas que nos permiten iniciar nuestros negocios y lo mejor de todo, GRATIS!!!

    Así es, GRATIS!

    Por esto me permito invitar a todos los que se consideren emprendedores en la industria del desarrollo de software para la Web, a que asistan a nuestro gran lanzamiento en el Salto del Ángel!!!

    A continuación los detalles de la invitación (hagan click en la imagen para registrarse)

    Click para Registrarse

    Los espero!!! smile_party



  • WarNov Developer Evangelist

    Transparencia en DIVs HTML (Div Opacity)

    • 2 Comments

    Cada mes acostumbro a cambiar el header de mi Blog usando una fotografía tomada por mí.

    Para este mes quise poner una foto del Palacio de Justicia ubicado en la Plaza de Bolívar en Bogotá.

    En esta foto fue difícil ubicar el título de mi blog, dado los colores de fondo. Así que la alternativa fue ponerle un color de fondo sólido al título.

    Sin embargo, un color sólido arruina la fotografía de fondo, pues no la deja ver para nada. Allí fue donde me nació la duda de cómo hacer un div transparente, para así poder modificar el estilo del blog.

    Investigando un poco, encontré que esto se hace distinto para distintas versiones de navegador. En especial, para Firefox se usa:

    opacity:0.6;

    Luego vi que esto no funcionaba en IE, pues me seguían apareciendo los fondos sólidos.  así que investigando un poco, encontré que esto se hace distinto para IE:

    filter:alpha(opacity=60);

    De esta manera, un estilo escrito así:

    #title {
    opacity:0.6;
    filter:alpha(opacity=60);
    }

    Produce este resultado independientemente del navegador:

    image



  • WarNov Developer Evangelist

    Usando Windows Live Writer para bloggear

    • 4 Comments

    El día a día generalmente lo aparta a uno de probar nuevas alternativas. (La primera ventaja vista: Es un editor enriquecido, que me permite por ejemplo escribir justificado; esto no es posible con el editor nativo de mi sitio de blogs) Afortunadamente hoy pude sacar tiempo para por fin poder probar Live Writer y usarlo en mi blog de MSDN. Antes de continuar, les cuento que es un cliente de escritura de “blogs” que viene en la suite de Microsoft Windows Live Essentials. Se puede descargar de aquí: http://download.live.com/ Sin embargo, si queremos sólo descargar el Writer, también se nos da esa opción: http://download.live.com/writer . Y lo mejor de todo, absolutamente gratuito!!!

    Acabo de detectar un par de cosas excelentes de este editor. Tiene un buen manejo de operaciones de deshacer y rehacer. Y el preview es sencillamente impresionante, ya que muestra rápidamente cómo se vería el artículo dentro del blog! Es excelente. Lastimosamente no tiene una forma para ajustar con el cuadro de herramientas el interlineado de los párrafos. Sin embargo, tiene una ventana de código fuente, donde se podría entrar a especificar esto:

    style='line-height:150%'

    Más adelante, explicaré cómo incluí este código.

    Por otro lado, se conectó de inmediato a mi blog, solo pasando la url, el usuario y la contraseña. Y no solo trabaja con este, sino con Blogger, LiveJournal, TypePad, WordPress y un montón más. Sinceramente al principio creí que no sería capaz de trabajar con los blogs de MSDN, pero como ven, sí se pudo. LiveWriter trabaja con APIs como RSD (Really Simple Discoverability), the Metaweblog API, and the Movable Type API. De hecho estoy pensando en crear mi blog personal (no técnico) en Silverlight, que se ajuste a estas APIs para poder luego llenarlo con Writer.

    Tiene corrector de ortografía. Si pasa que bajan el Writer en Inglés u otro idioma distinto a Español; pero igual necesitan corregir en Español, en este link les tengo los diccionarios para que los incluyan en la ruta: C:\Program Files\Windows Live\Writer\.

    Es genial, porque a diferencia de Word, no me llena con una cantidad gigantesca de estilos el html generado. Todo queda perfectamente plano. De hecho, es tan inteligente, que cuando copio algo de otro lado y lo pego, le quita todo el formato, excepto cuando se trata de un link, el cual lo deja funcionando perfectamente.

    Además, tiene un sin número de plugins que permiten desde publicar un twit automáticamente apenas se publica un nuevo post, hasta insertar la información del tema que en este momento estoy oyendo.

    Ahora haré un conjunto de acciones para probar los insert nativos que trae la herramienta y aquellos que me bajé como plug-ins:

    Una Imágen:

    vs2010

    La traje desde mi disco duro. En dónde se hospedará?

    Una imagen tipo polaroid (esto fue un add-on):

    Es excelente ese Add-On! Solo puse mi foto de Nerd y el Add-On me depliega un menú en donde puedo ponerle el título de la misma, la fuente, los bordes, girarla, cambiarle tamaño, etc.!

    Ahora una tabla (viene nativo o como addon mejorado: )

    Hola  
       

    Pude escoger hasta la imagen de fondo! Escoge uno también el número de filas y de columnas

    Código de programación. Es un addon que permite escoger el lenguaje para detectar la sintaxis, y permite poner números de líneas e intercalamiento de colores:

       1:  public static class Program
       2:  {
       3:      public static void main()
       4:      {
       5:          Console.WriteLine("Hello World!");
       6:      }
       7:  }
     
     

    Hay muchos otros inserts disponibles; parece que funcionan correctamente. Ahora, voy a almorzar y no me preocupo, pues Writer graba automáticamente cada intervalo de tiempo específicado. Así que ya no corro el riesgo de que por X o Y motivos se bloquee el explorador y pierda toda mi escritura. (Debería tener más sortcuts de teclado al estilo Word). Antes de irme a almorzar, trazaré una línea horizontal, usando otro plugin. Los plugin se consiguen haciendo click en el botón de add plugin que queda en el panel de plugins a la derecha:

    image

    Esta imagen la pegué del clipboard luego de usar la fabulosa Snipping Tool de Windows 7 que me permite extraer pantallazos en una forma avanzada pero sencilla. Ahora sí la línea y a almorzar:


    Bueno; luego de regresar de almorzar,  me resta mencionar que ví que uno puede manejar varios blogs a la vez y es muy fácil pasar de uno a otro.

    Y para finalizar probemos la utilidad de tags.

    Technorati Tags: ,

    Luego de probarlo, observé que solo hay integración con algunos tipos de tags y no con los tags incluidos de los blogs de MSDN que están basados en Community Server, tal como se aprecia en mi anterior intento.

    Sin embargo, para mi caso particular no lo considero un issue muy importante, dado que escribir los tags directamente en la herramienta estándar no es para nada complicado ni riesgoso. Sin embargo, seguiré averiguando a ver si encuentro la forma de hacerlo todo desde aquí (Windows Live Writer).

    En conclusión, a pesar de tener un par de falencias para mi gusto que no fueron muy difíciles de solucionar y resultan insignificantes comparadas con todas las ventajas que me da Windows Live Writer, lo aconsejo enormemente y no hallo la hora de poder crear mi propio blog compatible con ésta herramienta.

    Ahora me dispongo a dar click en Publish. Espero que todo funcione correctamente. Cualquier resultado, lo anotaré como un comentario propio a este post. smile_regular (Ese emoticon es gracias a otro plugin adicionado smile_tongue )

    UPDATE 02/28/2010

    Hoy tuve una grata sorpresa al publicar un post. Descubrí en el Writer este botoncito:

    Setcategories

    Set Categories!!

    Recuerdan lo que mencioné acerca de tags? Que no había podido ponerlos para los blogs de MSDN o de Blogger?

    Pues sucede que estos dos blogs como algunos otros tienen un mecanismo no de tags, sino de categorías. Así que de una sencilla manera, oprimiendo el botón Set Categories me aparece el listado de las categorías que ya he usado en el blog y también se me permitió agregar nuevas categorías. Luego publiqué y voilá apareció de una vez mi post con las categorías adecuadas.

    Bueno; también acabe de descubrir que sí hay shorcuts. ctrl+i me da itálicas. ctrl+b me da bold y así sucesivamente.

    Para terminar este update, quisiera mencionar el plugin de Video. Tiene un buen manejo para videos de YouTube. Con la cuenta que uno tiene, puede subir un video y luego referenciarlo en el post, de manera que queda embebido. O referenciar uno de los videos ya subidos y todo de una manera bastante automatizada. Sin embargo, si YouTube no es suficiente (como en la mayoría de los casos dado su escaso límite de tiempo –10 minutos –) una buena alternativa gratuita es www.vimeo.com que actualmente uso en este blog. Allí, luego de subir un video, uno puede obtener el código para embeberlo en el blog. Ese código se pega en el plug-in de video y el resto lo hace por nosotros.

    En síntesis, lo descrito en este update, hace que me sienta muy contento usando Live Writer. Un producto gratuito de Microsoft.



  • WarNov Developer Evangelist

    ALM con Team Foundation Suite 2010

    • 3 Comments

    Hace una semana, me reuní con el grupo de Entusiastas de Microsoft que logré unificar, con el fin de hacer actividades para reconocer su interés en nuestras tecnologías y además potencializarlo en beneficio de la comunidad de desarrolladores que es mi audiencia como Developer Evangelist.

    En esta reunión en las oficinas de Microsoft Colombia, hicimos una Clínica de Oradores para incrementar los niveles de cada uno de nosotros en cuanto a charlas al público se refiere. Dirigiendo esta charla se encontraba con nosotros Willy Marroquin. Un excelente orador que por años nos ayudó con la labor de evangelización y quien además posee grandes conocimientos técnicos y hoy se desempeña como consultor en Arquitectura y Estabilización de Aplicaciones Críticas.

    Luego de esta clínica, Sebastián Rincón especialista de Visual Studio Team Suite para preventa técnica en Microsoft Colombia nos estuvo exponiendo la cantidad de nuevas características que nos trae la Suite para la administración de proyectos o ALM.

    Decidí grabar un video de la charla que nos impartió Sebastián, pues consideré muy importante publicar con un punto de vista bastante informal (tal como se llevó a cabo su exposición) toda la discusión que tuvimos sobre el producto. Aquí encuentran apuntes hechos por nuestros entusiastas (claros representantes de la comunidad de desarrolladores) y en general información útil para tener un overview de la suite antes de entrar a trabajar con ella directamente.

    Para finalizar, quisiera agradecer la asistencia de nuestros siguientes entusiastas, de quienes dejo sus contactos, dado que estarán gustosos de entrar en contacto con ustedes para tratar temas de desarrollo de acuerdo a sus especialidades:

    Willy Marroquin Arquitectura de Soluciones/Aplicaciones  
    Sebastián Rincón  Especialista TFS/BizTalk  
    Pablo Cepeda Workflow Foundation (WF), WCF  
    Edinson Carreño Team Foundation Suite  
    Frank Silva Windows Azure – Emprendimiento con Microsoft  
    Benjamin Perdomo Tecnologías de Punta Microsoft  
    Gerardo Ramos SWAT Desarrollo Microsoft  
    Manuel Camarón Especialista Silverlight – Windows Live Services  
    Andrés Ortiz Especialista Sharepoint – Desarrollo Sobre Office  

    Estos no son todos nuestros entusiastas. Posteriormente estaré haciendo un post donde estén todos con mayor información acerca de ellos!



  • WarNov Developer Evangelist

    Recursos para ponerse al día con la ola Microsoft 2010 para desarrolladores

    • 0 Comments

    Durante un fenomenal retraso de mi vuelo (3 horas) de vuelta a casa y tras terminar mi última gira de evangelización en Cali, me puse a recopilar todos los recursos que había expuesto y referenciado durante mis charlas en las diferentes empresas y ante las diferentes audiencias.

    En este tour me dediqué a mostrar todo lo nuevo que ofrece la ola 2010 para nosotros desarrolladores. Fue un overview de actualización para que los equipos se actualizaran y vieran nuestro roadmap de tecnologías y las posibilidades ofrecidas.

    Así fue como toqué temas como Visual Studio 2010, Desarrollo sobre Office 2010 y Sharepoint 2010, gestión de proyectos con Team Foundation System 2010, Framework 4.0 (LINQ, WCF, WF, WPF), Silverlight, MVC, Entity Framework…

    Luego de hacer esta recopilación observé que era una valiosa fuente de información para nosotros desarrolladores y que por tanto valía mucho la pena publicarla.

    Así que amigos, aquí está para ustedes:

    Mi blog:

    http://warnov.com/dblog

    Mi foro de preguntas:

    http://warnov.com/ask

    Azure:

    http://windowsazure.com

    MVC:

    http://asp.net/mvc

    Entity Framework:

    http://tinyurl.com/62ke79

    Descargar Visual Studio 2010 RC, IDE, TFS, y demás:

    http://tinyurl.com/o949y9

    Todos los tutoriales para nuevas características del Framework 4.0 y Visual Studio 2010 como IDE. Incluye: Desarrollo sobre Sharepoint, Silverlight, WPF, Características del Core, F#, Desarrollo Nativo (C++), Computación Paralela, Extensibilidad de Visual Studio, Desarrollo para Office, para Workflow Foundation, WCF y Azure

    http://tinyurl.com/nln82w

    Office 2010 Beta Developer Training Kit

    http://tinyurl.com/ya7zxug

    Windows Azure Platform Training Kit

    http://tinyurl.com/5vrt7q

    Windows 7 Training Kit For Developers

    http://tinyurl.com/r7d7uf

    Sharepoint 2010 Beta Developer Training Kit

    http://tinyurl.com/y9t25hj

    Silverlight 4 Training

    http://tinyurl.com/yebx3z7

    Windows Presentation Foundation

    http://tinyurl.com/yb43ypx

    Windows Workflow Foundation

    http://tinyurl.com/4y4apd

    Windows Communication Foundation

    http://tinyurl.com/6yxo2y

    Visual Studio 2010 and .NET Framework 4 training Kit

    http://tinyurl.com/lr3ep8

    Visual Studio 2010 and .NET Framework 4 Videos

    http://tinyurl.com/ybabbkd

    Microsoft® Visual Studio® 2010 and Team Foundation Server® 2010 Beta 2 virtual image: Es una máquina virtual que ya tiene todo el TFS instalado y configurado para que juguemos con él. El link hace referencia a la versión para Windows Virtual PC, pero al final de la página encontramos links para Virtual PC 2007

    http://tinyurl.com/ydbm8hy

    Laboratorios de ALM (Gestión de Proyectos) usando la anterior máquina virtual

    http://tinyurl.com/yeo8gc2

    Training Kit de Sql Server 2008 R2 para Desarrolladores http://tinyurl.com/ykzez5t

    Como ven, hay para todos los gustos. Escojan del menú y a aprender!

    Espero les sea de mucha utilidad!!



  • WarNov Developer Evangelist

    Curso Básico Gratuito de Visual Studio .Net 2010 con C#

    • 0 Comments

    Hace poco me llegó una agradable oferta de los muchachos de NET CELL; una gran comunidad de desarrolladores de la costa Colombiana. Ofrecen un curso básico para que las personas puedan comenzar desde ceros a aprender de esta tecnología. El curso se dictará a través de Live Meeting todos los jueves desde las 18:00pm (GMT-5) a partir de febrero 25. Mayor información aquí.



  • WarNov Developer Evangelist

    Sketchflow en Palabras Simples

    • 1 Comments

    Hoy en día existen numerosas aplicaciones para diagramar y tratar de plasmar en papel los bocetos de futuras soluciones de software para lograr establecer un lenguaje de comunicación con nuestros clientes que permita generar la solución que ellos buscan. Sin embargo, una amplia deficiencia detectada en estas aplicaciones, es que carecen de un mecanismo para mostrar transparentemente el flujo de las mismas cuando son operadas por los usuarios.

    Sketchflow viene a cubrir esa falencia, con sus excelentes características para animar comportamientos y mostrar flujo de aplicación, sin emplear ni una sola línea de código. Además es tan efectivo, que permite crear una solución de código real que trabaja sobre el boceto que se creó al principio. En este video preparado con mi invitado @caycedo quien también habla de esto en este post, obsevaremos de qué se trata todo esto con más detalle.

  • WarNov Developer Evangelist

    EntityFramework Interoperable

    • 0 Comments

    Sabemos que una de las tareas más costosas en el desarrollo de una solución de software, es la creación de la capa de acceso a datos. Como ya sabemos, Microsoft hoy en día nos ofrece una brillante alternativa en cuanto a ORM. El EntityFramework, que soporta originalmente en el fondo a MS Sql Server. Sin embargo, en este artículo veremos cómo nuestras tecnologías están abiertas a ser interoperables con otros motores de bases de datos como MySql y PostgreSQL.

    Para este post, me he permitido invitar a Emerson Perdomo. Ingeniero de Sistemas de la Universidad Distrital de Bogotá. Gran colaborador en nuestra subsidiaria de Microsoft Colombia quien ha estudiado bastante el tema de ORM y creación automática de formularios basados en clases. Las siguientes instrucciones fueron creadas por él, para ayudarnos a comprender el proceso de conectar el EntityFramework a otras fuentes de datos.

    PostgreSQL

    Npgsql - .Net Data Provider for Postgresql es un conjunto de DLLs que se agregan a Visual Studio .Net pero no se integran con el Wizard del Visual Studio .Net porque no hay soporte oficial de Npgsql, sin embargo, se pueden agregar en cada uno de los proyectos sin ningún problema; el inconveniente es que al intentar usarlas hay que generar el modelo desde "Visual Studio 2008 Command Prompt" e incluir los dos archivos ".cs" que genera al proyecto.
    A Continuación doy los pasos para poder usarlo en un ejemplo sencillo.

    PASO 1:

    Descargue de la página oficial de Npgsql
    http://pgfoundry.org/frs/?group_id=1000140

    El archivo:
    Npgsql2.0.8-bin-ms.net3.5sp1.zip

    Npgsql2.0.8-bin-ms.net3.5sp1.zip

    Descargue la Última versión de PostgreSQL
    http://www.enterprisedb.com/products/pgdownload.do#windows

    Obviamente hay que tener
    Visual Studio 2008 Professional Edition Trial con SP1
    http://www.microsoft.com/express/Downloads/

    .Net Framework 3.5
    http://www.microsoft.com/downloads/details.aspx?FamilyID=d0e5dea7-ac26-4ad7-b68c-fe5076bba986&displaylang=es

    PASO 2:

    Instalamos el PostgreSQL , el Visual Studio, .NET Framework 3.5 y descomprimimos el Npgsql2.0.8-bin-ms.net3.5sp1.zip recomiendo que lo descompriman en C:\ para que no estén buscando la ubicación.
    Ahora vamos a registrar nuestras DLL de Npgsql en el GAC de Visual Studio.
    Primero hay que abrir nuestro "Visual Studio 2008 Command Prompt" que se encuentra por lo general en "Inicio -> Microsoft Visual Studio 2008 -> Visual Studio Tools -> Visual Studio 2008 Command Prompt "
    Ahí ejecutamos las siguientes líneas de código:
    gacutil -i c:\ubicacion de la dll Npgsql\Npgsql.dll
    gacutil -i c:\ubicacion de la dll Mono.Security\ Mono.Security.dll
    en mi caso
    gacutil -i c:\ Npgsql2.0.8-bin-ms.net3.5sp1\bin\Npgsql.dll
    gacutil -i c:\ Npgsql2.0.8-bin-ms.net3.5sp1\bin\Mono.Security.dll

    PASO 3:

    Ahora hay que agregar una línea de código XML al archivo machine.config del Framework que por lo general se encuentra en C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\
    Abrimos el Archivo machine.config con el editor de su preferencia.
    Y agregamos en el área de <DbProviderFactories> </DbProviderFactories>
    la Siguiente línea de código

    <DbProviderFactories>
    <add name="Npgsql Data Provider" invariant="Npgsql" support="FF" description=".Net Framework Data Provider for Postgresql Server" type="Npgsql.NpgsqlFactory, Npgsql, Version=2.0.8.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" />
    </DbProviderFactories>

    PASO 4:

    Ahora abrimos el motor de base de datos PostgrsSQL y creamos una base de datos sencilla
    Base de datos Test
    http://www.megaupload.com/?d=2XS1OYGU
    Recuerda que la base de datos esta sin datos hay que alimentarla.

    PASO 5:

    Ahora ejecutamos la siguiente línea de código en el "Visual Studio 2008 Command Prompt".
    c:\> edmgen.exe /provider:Npgsql /mode:fullgeneration /c:"string de conexion" /project:NombreQueQuiera /language:CSharp
    En mi caso
    c:\> edmgen.exe /provider:Npgsql /mode:fullgeneration /c:"DATABASE=test;HOST=127.0.0.1;PORT=5432;PASSWORD=yta;USER ID=postgres" /project:TestPostgreSQL /language:CSharp
    Los Archivos van a quedar en esta Ubicación
    C:\Program Files\Microsoft Visual Studio 9.0\VC
    De ahí lo pasas al proyecto que estés trabajando y Solo agregas los archivos ".cs":

    Insertando modelo de Postgresql en solución VS

    Puedes encontrar más información sobre los Archivos de extensión.
    CSDL en :
    http://msdn.microsoft.com/es-mx/library/bb399169.aspx

    MSL en :
    http://msdn.microsoft.com/es-mx/library/bb399202.aspx

    SSDL en :
    http://msdn.microsoft.com/es-mx/library/bb399559.aspx
    No te preocupes si salen errores de referencia en el siguiente paso especificamos cuales son.

    PASO 6:

    Ahora hay que agregar unas referencias:
    System.Data.Entity
    System.Runtime.Serialization

    Después de esto Tendrás que crear el App.Config y configurar la cadena de conexión.
    Y listo ahora es posible hacer CRUD a la base de datos, para ver el ejemplo terminado dejo el SourceCode.
    http://www.megaupload.com/?d=CORN5YVQ
    __________________________________________________________________________________________________________________________________________

    MySql

    MySql Entity Framework es fácil de configurar ya que solo tienes que descargar el Mysql Connector de la página oficial http://dev.mysql.com/downloads/connector/net/
    Instalarlo y listo, lo puedes Usar exactamente igual que Entity Framework para Sql Server.

    Claro está que debes tener previamente instalado el Visual Studio 2008 con SP1

  • WarNov Developer Evangelist

    Programando para Office 2010 usando WPF y Visual Studio 2010

    • 2 Comments

    En este video, observaremos la manera de crear un panel para usar dentro de Word, que contendrá fragmentos de texto a los que luego de hacerles doble click podremos insertar dentro del documento a través de Visual Studio Tools for Office (VSTO)

    El panel fue diseñado usando Blend 3 y aprovechando las características de DataBound de WPF. Se aprovecha la DLL WindowsFormsIntegration para obtener un objeto de tipo ElementHost que permite agregar dentro de Windows Forms tradicional, elementos de WPF. Luego este contenedor se agrega a un UserControl y este UserControl se agrega a Office a través de un Custom Panel.

    El video explica todo el proceso y de aquí se puede descargar la solución finalizada:

     

  • WarNov Developer Evangelist

    Entity Framework vs. LINQ como ORM

    • 6 Comments

    LINQ inició siendo una teconología que servía tanto para consultar objetos en memoria, como para mapear tablas de bases de datos SQL a objetos de memoria. Así que luego de hacer el mapeo, con nuestro mismo lenguaje de programación sin necesidad de escribir comandos SQL a través de LINQ tendríamos la posibilidad de hacer consultas y manipulaciones sobre estas entidades en memoria sin mucho problema.

    Visto esto, observamos que con LINQ tenemos dos alcances: Como lenguaje de consultas integrado y como ORM.

    LINQ fue primero que EntityFramework; al principio LINQ "quizo" ser el ORM de Microsoft, pero demostró algunas deficiencias en ciertos aspectos como la conexión a distintos repositorios. Luego vino el EntityFramework a mejorar esas cosas en las que LINQ tenía debilidades. Pero OJO! EntityFramework solo se ocupa de las operaciones de un ORM. Y el hecho de que haya aparecido, no significa la desaparición de LINQ, dado que LINQ aparte de tener esas caractarísticas de ORM, es un potente lenguaje de consultas integrado que permite consultar tanto entidades (como las arrojadas por EntityFramework, el mismo LINQ o cualquier otro ORM), como objetos personalizados, XML, ActiveDirectory y en general cualquier estructura de datos .NET en memoria que implementen IQueryable (http://msdn.microsoft.com/en-us/library/bb546158.aspx)


    En últimas, yo recomendaría usar EntityFramework para hacer ORM y luego usar LINQ para ejecutar consultas muy sencillamente sobre las entidades generadas por el ORM. (Y sobre cualquier otra colección de datos).

  • WarNov Developer Evangelist

    Entornos Laborales Virtuales Microsoft para Emprendedores

    • 0 Comments

    Tengo un gran amigo. Emprendedor y entusiasta de las tecnologías Microsoft. Se ha independizado y gran parte de su operación se ha beneficiado de todos los recursos que hoy en día tiene Microsoft que son gratis o de muy bajo costo. Empezando con BizSpark (todo el software por 3 años y 100 dólares no más), herramientas de virtualización gratuitas como Virtual PC, etc.

    En este post, de su nuevo blog:
    http://rickersilva.wordpress.com/2010/01/25/virtual-office,
    nos enseña como logró establecer su empresa sin oficinas y usando todas estas herramientas.

  • WarNov Developer Evangelist

    Curso Gratuito de XNA en Colombia

    • 0 Comments

    Microsoft Colombia te reta a aplicar tu imaginación, pasión y creatividad en innovaciones de tecnología que puedan hacer una diferencia en el mundo. Participa en Imagine Cup 2010.

    El Diseño de juegos es en dónde el arte y la ciencia se unen. A través de Imagine Cup, puedes aprender y avanzar hacia una carrera cómo desarrollador o empresario de juegos. Únete hasta con 3 amigos y construye una experiencia de juego completa, usando XNA Game Studio 3.0 o posterior, Visual Studio o Silverlight.

    ¿Quieres aprender XNA Game Studio y participar en Imagine Cup 2010?

    1. Aquí encuentras toda la información sobre la competencia. No olvides revisar con detenimiento las reglas.

    2. Regístrate en Imagine Cup 2010 y escoge la categoría de Diseño de Juegos.

    3. Envíanos a más tardar el 30 de enero el usuario con el cual te inscribiste, a acadcol@microsoft.com.

    4. El próximo 5 y 6 de Febrero podrás asistir sin ningún costo, al curso de XNA Game Studio dictado por especialistas en Desarrollo de Juegos con la plataforma XNA, que hacen parte de la más activa comunidad de desarrollo de Bogotá: BogotaDotNet (http://bogotadotnet.org/). Este curso lo estaremos dictando para los estudiantes que se hayan registrado en la competencia. El curso será presencial en Bogotá (cupos limitados) y se transmitirá vía Live Meeting. No importa en cuál ciudad del país estés, puedes participar.

    5. El día del curso te daremos acceso gratuito al software que requieres para desarrollar tu juego.

    6. Busca inspiración para tu proyecto en los Objetivos de Desarrollo del Milenio de las Naciones Unidas y empieza a crear tu producto. La primera ronda del concurso se cierra el 15 de Marzo de 2010.

    La tecnología es la fuerza más poderosa para transformar las ideas brillantes en soluciones reales y sabemos que eres talentoso en programación de software, desarrollo de hardware, diseño, pero sobre todo, que eres visionario.

    Apuéstale a representar al país en la final mundial de la competencia, que será en Polonia.

    ¡Te esperamos!

    Esta iniciativa es válida para Estudiantes mayores de 16 años, que residan en cualquier ciudad de Colombia.

  • WarNov Developer Evangelist

    Open Data Protocol (OData)

    • 2 Comments

    Si como desarrolladores alguna vez hemos tenido la necesidad de exponer los datos de nuestra aplicación a otras aplicaciones; o lo que es peor, usar datos de otras aplicaciones, deberíamos saber que éstas actividades de compartimiento de información son de las más complicadas en el proceso de desarrollo.

    Es cierto que hoy en día existen los gloriosos Web Services: montados sobre los más aceptados protocolos y estándares: TCP/IP, HTTP, SOAP, XML, XSD, WSDL…

    Pero a pesar de ello, la comunicación sigue siendo complicada. Sobre todo para aquellos que tienen que crear proxies manualmente (Afortunadamente el SDK del Framework.NET ayuda a alivianar estas tareas con herramientas como wsdl.exe y xsd.exe que se integran transparentemente con Visual Studio). Casos por ejemplo en que un cliente java requiere acceder a un Web Service creado con .NET. y viceversa, requieren de mucha mano de obra y configuración por parte del cliente. Y ni se hable cuando de WCF se trata! Es bien sabido que WCF da toda la flexibilidad que requerimos para acceder a cualquier fuente de datos, montados sobre cualquier protocolo de transmisión y con cualquier tipo de mensaje; pero configurar un WCF sin mucha experiencia, puede resultar ciertamente más dispendioso que crear las operaciones en sí.

    Dado que la mayoría de aplicaciones necesitan acceder a los datos a través de HTTP, es justo entonces que se defina un protocolo simplificado que aproveche todas las ventajas de HTTP y que permita a múltiples clientes (esto es: clientes creados con distintas tecnologías) acceder a múltiples fuentes de datos, todo usando el mismo mecanismo.

    El camino ya había estado bastante trabajado con arquitecturas como REST, protocolos como ATOM y lenguajes como JSON.

    Teniendo todas estas bases y las necesidades que ya he descrito, Microsoft decidió crear OData; un protocolo para la consulta y actualización de una variedad de fuentes de datos que incluye pero no se limita a bases de datos relacionales, sistemas de archivos, CMS y sitios web tradicionales.

    OData fue liberado bajo la promesa Open Specification Promise (OSP) para permitir a cualquier persona interoperar libremente con cualquier implementación OData. A futuro, se espera que OData empiece a ser parte de AtomPub.

    Como lo mencioné OData ha sido creado específicamente para trabajar sobre web y es un protocolo centrado en HTTP. Usa las URIs para identificar los recursos con los que se desea trabajar. Los resultados, aunque se pueden trabajar con el formato AtomPub basado en XML, también se pueden trabajan con JSON, para simplificar la integración con clientes HTML y JavaScript.

    Para trabajar con OData hoy en día se ofrecen toolkits gratuitos para .NET (WCF Data Services), JAVA, AJAX y PHP y se aplica no solo en sitios web personalizados, sino en productos como SharePoint, Excel (PowerPivot), SQL Server, Windows Azure Storage, WebSphere eXtreme Scale, etc.

    Más información, en la página oficial del protocolo: http://www.odata.org. Allí encontraremos links de la especificación FORMAL del protocolo. Pero como toda especificación FORMAL, para nosotros desarrolladores que necesitamos agilidad, es poco práctica. De hecho la practicidad que tiene este protocolo para nosotros, es en el uso de WCF Data Services y es por eso, que he dedicado mi próximo post a ese tema. Pero para entenderlo mejor, es necesario comprender que existe OData y que está basado en REST.

  • WarNov Developer Evangelist

    REST (Representational State Transfer)

    • 2 Comments
    Creado en el 2000 hace referencia a “Representational State Transfer” o transferencia representacional de estados.

    Si uno se deja guiar por el nombre pareciera como si no tuviese nada que ver con lo que medio se ha oído por ahí acerca del tema: “que sirve para acceder a servicios sencillamente a través de URLs”, por ejemplo.

    Pero estudiándolo bien uno nota que al final si hay cierta congruencia.

    En REST participan básicamente dos roles. Un cliente y un servidor. El cliente es el sujeto de los dichosos cambios de estados. Entonces imagine el cliente como su navegador web en un estado específico (una página web). Un cambio de estado obviamente significa la transferencia a otra página web.
     
    Una transferencia representacional en web, no es más que la transferencia lograda sencillamente a través de URLs. Y es precisamente allí donde se encadena todo.

    La idea es que las acciones o verbos que originan los cambios de estado del cliente en REST están completamente definidos. Es decir, REST propone un vocabulario de acciones fijo; que permite obtener recursos del servidor, que una vez interpretados por el cliente, hacen que este cambie de estado.

    Esto último es lo que más diferencia a REST por ejemplo del tradicional SOAP. Ya que en SOAP, se le dice a cada desarrollador que defina un vocabulario nuevo y arbitrario de verbos, de acuerdo a los requerimientos de la aplicación (obtenerUsuarios(), almacenarOrden(…), etc. Todos sobreusando el verbo POST de HTTP). Paradójicamente, esto que siempre se vio como una gran ventaja, va en contravía con muchos de los aspectos inherentes del HTTP que es base de SOAP. Así que aspectos como la autenticación, caching, negociación de contenidos y demás, no se aprovechan.

    Aunque hasta aquí todo lo ejemplifiqué usando HTTP, REST es un mecanismo que no depende de ese protocolo. Las aplicaciones REST pueden basarse en otros protocolos, siempre y cuando éstas provean un vocabulario uniforme preestablecido para las aplicaciones que se construirán sobre ella. Recordemos que la idea principal de REST es maximizar el uso de las capacidades predefinidas de la plataforma que los soporte. HTTP como tal, proporciona un rico vocabulario completamente establecido y estandarizado que se ajusta perfectamente a este objetivo. Es por esto, que hoy en día al hablar de REST uno automáticamente piensa en su implementación sobre HTTP.

    Principios

    REST se fundamenta en seis principios básicos:
    • Cliente y Servidor plenamente identificados y separados
    • No hay almacenamiento de estado en las transiciones (Stateless)
    • Respuestas “cacheables” (Para mejorar las interacciones y el performance)
    • Capas: Pueden haber varias capas de servidores intermedios
    • Código por demanda: La funcionalidad de un cliente se puede extender con código trasmitido por el servidor (por ejemplo con JavaScript). Este es el único requerimiento opcional.
    • Interfaz uniforme: La misma que se discutió anteriormente.

    Objetivos

    Los principios anteriormente mencionados, están diseñados para lograr los siguientes objetivos:
    • Escalabilidad de componentes
    • Generalidad de Interfaces
    • Distribución Independiente de componentes
    • Existencia de componentes intermediaros que reducen latencia, aumentan la seguridad y encapsulan sistemas de legado.

    Recursos

    Los recursos se definen como fuentes de información específica y son muy importantes en REST. Un cliente accede a los recursos que el servidor dispone. Imagine una aplicación empresarial con información de recursos humanos. En este caso, la lista de empleados es un recurso del servidor y para acceder a ellos, se requiere un identificador único (por ejemplo una URI), que es usado por el cliente para referenciarlo y una interfaz de comunicación estandarizada (por ejemplo HTTP). Obviamente, aparte de tener claro el objeto de una acción, se debe tener clara la acción a ejecutar sobre ese objeto. Así pues, una aplicación interactúa con los recursos sabiendo su identificador único y la acción a ejecutar sobre este. Por ejemplo: Recurso: Empleado con Id:3520. Acción: Borrar. Los recursos generalmente son transmitidos entre el servidor y el cliente usando formatos como HTML, XML o JSON. No obstante, los recursos también pueden ser imágenes, texto plano o cualquier otro formato.

    Servicios Web REST

    No son más que servicios WEB implementados usando HTTP y los principios de REST que comprenden una colección de recursos de acuerdo a los siguientes aspectos:

    • Una URI base para el nombre del servicio: http://example.com/miservicio/
    • El tipo MIME de los datos soportados por el servicio
    • El conjunto de operaciones soportadas.
    • En REST sobre HTTP, lo más normal es tener estas operaciones
      • POST: Crea nuevos recursos. Como retorno, se ofrece el ID automáticamente creado
      • GET: Lista un recurso
      • PUT: Reemplaza un recurso con otro (Útil para el update)
      • DELETE: Elimina un recurso

    Entonces por ejemplo si se quisiera eliminar el empleado con ID 3520 se haría un request con DELETE a la siguiente URL desde el cliente:/span>
    http://example.com/miservicio/empleados/3520

    Conclusión

    REST, que es una arquitectura y no un protocolo como SOAP, se basa en acciones sobre recursos, para permitir la interacción de un cliente con un servidor. La implementación sobre HTTP es la más común y ha permitido la creación de otras tecnologías. Por ejemplo Microsoft, que se ha basado en este tipo de implementación REST para generar el estándar OData (Open Data) sobre el cual se construyó WCF Data Services (antes conocido como ADO.NET Data Services), y que permite simplificar el acceso interoperable a las capas de datos en aplicaciones n-tier.



  • 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

    Sistemas POS que piensan en la Nube

    • 2 Comments

    Antes que nada, veamos algunos requerimientos urgentes de los sistemas POS, dadas las condiciones económicas de hoy en día:

    ·         Puntos con funcionalidad extendida, pero con máxima velocidad y disponibilidad

    ·         Conexión directa con un ERP central para permitir decisiones óptimas y oportunas

    ·         Apertura para la colaboración con partners y otros servicios para reducir costos

    ·         Desarrollo y despliegue de software rápido y económico

    ·         Nada de inversiones iniciales en infraestructura

    En primera medida uno pensaría en SaaS como una alternativa. Pero usualmente los thin clients (browsers) no son capaces de trabajar offline. De esta manera se hace obvia la necesidad de un Front Store o repositorio en cada cliente. Además los browsers no pueden garantizar el manejo de periféricos ni pueden garantizar las velocidades requeridas en las cajas.

    Por todo esto, la mejor elección es usar Smart Clients con un caché de datos local usando por ejemplo SQL CE en cada cliente. El deployment se puede implementar usando ClickOnce. Sumado a esto pueden estar los protocolos WS-* que permiten una seguridad máxima sin tener que recurrirse a VPN u otras complicadas configuraciones de Firewall, así que las instalaciones serían muy sencillas.

    BEDIN Shop Systems, un ISV italiano creó la solución aKite enfocada a crear POS usando esta metodología. En un principio toda esta solución era auto hosteada y aunque solucionaba los problemas descritos, presentaba problemas a la hora de manejar picos de consumo y sobretodo de generar un esquema centralizado de integración con otros sistemas como el ERP, CRM, BI, Logística y demás...

    Con la llegada de Azure a producción, este ISV decidió migrar su aplicación y lo logro en solo tres meses sin mayores problemas, según su reporte.

    Esquema de POS comunicado con Azure

    Lograron crear un Hub Inteligente que remueve la complejidad técnica y facilita compartir datos entre los POS y otros sistemas. Por ejemplo en el caso de tarjetas de fidelidad y de regalo, se logró una inmediatez total, un mejor servicio y sobretodo menor riesgo de fraude.

    Además gracias al esquema nativo de Azure, los picos de uso dejaron de ser problema y sobretodo, cuando un cliente va a implementar su sistema POS, el up-front (o inversión inicial) es nulo, pues toda la infraestructura ya existe.

    Las ventas en este sistema pueden efectuarse desde todos los continentes, con distintos lenguajes, monedas e impuestos. Luego de esto, a través de los “Retail Web ServicesaKite RWS-” (creados por el ISV y hospedados en Azure usando SQL Azure) los datos se envían a un ERP central para actualizar el inventario y la contabilidad. Las estadísticas de ventas también se hacen inmediatamente disponibles, pero no solo en el ERP, sino tambi��n en los sistemas de Back Store.

    aKite RWS es un conjunto de servicios WCF que explotan muchas características de esta tecnología. De esta manera, solo fue necesario crear un conjunto claro de servicios, cuya configuración se adapta a cualquiera de los puntos de conexión requeridos. Por ejemplo, solo bastó con configurarlos para el uso con Smart Clients, y quedaron listos para usarse en los clientes POS.

    Como si fuera poco, la migración de estos servicios a Azure, generó valores agregados como un balanceo de carga automático (nativo de Azure), asegurando gran escalabilidad y una subdivisión más equitativa de los recursos entre las tareas. Antes eso era manejado por una aplicación bastante compleja y difícil de mantener.

    El proyecto fue dividido en un Web Role y cuatro Worker Roles que se comunican entre ellos usando Queues y Blobs. BEDIN declara que en la migración de datos y código de ORM no tuvo ningún problema, dado que Sql Azure demostró ser completamente compatible con el código de Sql Server que ya se tenía, aun cuando este había sido generado con un ORM de un tercero (LLBL GenPro)

    Como ISV, BEDIN también confirmó los siguientes beneficios:

    ·         Ausencia de costos iniciales en Hardware

    ·         Costos proporcionales en relación al número de usuarios

    ·         Ahorros que se pueden destinar a mercadeo, ampliación de funcionalidad y costos que se transfieren al usuario final en forma clara

    ·         Monitoreo automático

    ·         Auto recuperación de desastres

    En conclusión, Windows Azure permitió a BEDIN Shop Systems concentrarse en su aplicación y habilidades arquitecturales y en ofrecer un valor máximo a sus usuarios. Es una empresa con más de 20 años de experiencia en el desarrollo de POS. Fueron los pioneros en implementar .NET con aplicaciones para el Retail. (: www.bedin.it  www.akite.net )

     

Page 12 of 13 (317 items) «910111213