Mostrando entradas con la etiqueta microsoft. Mostrar todas las entradas
Mostrando entradas con la etiqueta microsoft. Mostrar todas las entradas

jueves, 14 de noviembre de 2013

Novedades de Microsoft en direcciones interesantes (+ video)

Ayer hubo un evento de lanzamiento de Visual Studio 2013, donde Microsoft conato una serie de novedades. Algunas eran sabidas, dos en particular me llamaron la atención, porque me parece que son movimientos en la dirección correcta.

Visual Studio Online

Finalmente se mostró el primer preview de la versión online de Visual Studio, que al parecer sólo se puede ver en videos por ahora, pero suena interesante. A pesar de estar bastante pegada a TFS online, una plataforma que no me resulta especialmente atractiva, mantiene y expande una actitud más abierta, con fuerte integración con Git, como se puede ver en el video que dejo debajo. Por otro lado, como verán, Node mantiene una presencia muy fuerte, con gran cantidad de ejemplos. La idea de que este entorno sea gratuito para grupos reducidos es importante.

Leí un par de notas periodísticas que mencionan esta iniciativa como una competencia directa de Microsoft a GitHub, que realmente me hicieron reír. Es cierto que algunos desarrolladores muy establecidos en el ecosistema Microsoft pueden preferir moverse en algún momento, pero no veo ninguna posibilidad de que algo de esto se plantee como una alternativa masiva. Al contrario, veo que son plataformas que pueden complementarse, y aunque no tengo chance de probarlo todavía, intuyo por las demos que tranquilamente se podría trabajar con esta IDE online desde un repositorio de GitHub. No veo ninguna dificultad técnica, y confío que el espíritu de apertura que intentan mantener desde este grupo de Microsoft no genere una barrera artificial.

Queda un video breve (~ 5 min) donde se muestra un proyecto Node, y cómo se utiliza el entorno, altamente integrado con TypeScript, que es otra estrategia interesante, sobre todo por lo poco intrusiva:

 

MS + Xamarin

El otro gran anuncio es una asociación más directa con la gente de Xamarin, la empresa formada por los iniciadores del proyecto Mono, y todavía uno de los mayores grupos contribuyendo con él, que se dedica a permitir el desarrollo de aplicaciones nativas (no híbridas) en C# para iOS, Android, Windows Phone, OS X y otras plataformas (por extensión).

Lo interesante de esta asociación es que más allá de temas comerciales, tiene puntos técnicos muy importantes, logrando abrir más las puertas del ecosistema Microsoft / .NET hacia el exterior. Por ejemplo, las Portable Class Libraries (PCL) de .NET son ahora realmente abiertas y soportan el movimiento de librerías entre cualquier plataforma, facilitando muchísimo el intercambio también a nivel NuGet (el mecanismo de manejo de dependencias abierto del mundo .NET).

En total, esta noticia parece más de índole comercial, pero para mi el acercamiento al equipo de Xamarin y el reconocimiento del valor de llegar a estas plataformas fuera de su control son un blanqueo y una buena actitud que espero seguir viendo desde Microsoft hacia afuera.

lunes, 11 de noviembre de 2013

Gigantes investigando: un vistazo al futuro

Research

Creo que por acá todos saben que las empresas más grandes en la industria del software no paran de investigar, a ver quién gana en el próximo salto tecnológico, o quien se asegura un par de patentes que les de ventaja en el mercado los próximos años.

Más allá de que estemos de acuerdo o no con la política alrededor de la propiedad intelectual, es interesante echar una mirada a lo que están haciendo algunos de los principales centros de investigación de los gigantes de la industria. Gracias a la gente de Y Combinator, les dejo una serie de links a las páginas principales  sobre el tema:

  • Microsoft Research y sus publicaciones
    Sus áreas de investigación cubren Comunicaciones y colaboración, Lingüistica computacional, Ciencias de la computación, Sistemas y Redes, Economía y Computación, Educación, Juegos, Gráficos y Multimedia, Hardware y Dispositivos, Salud y Bienestar, Interacción entre Computadoras y Humanos, Recuperación y Administración de Información, Aprendizaje Mecánico, Seguridad y Provacidad, Ciencias Sociales, Desarrollo de Software, Teoría y otras áreas temáticas.
     
  • Research at Google y sus publicaciones
    Cubren Algoritmos y Teoría, Inteligencia Artificial y Aprendizaje Mecánico, Administración de Datos, Minería de Datos, Sistemas Distribuidos y Computación Paralela, Economía y Comercio Electrónico, Innovación en Educación, Ciencia General, Hardware y Arquitectura, Interacción entre Humanos y Computadoras y Visualización, Recuperación de Información y la Web, Percepción Mecánica, Traducción Mecánica, Sistemas Móviles, Procesamiento de Lenguaje Natural, Redes, Seguridad, Criptografía y Privacidad, Ingeniería de Software, Sistemas de Software y Procesamiento del Habla.

  • IBM Research y sus publicaciones
    Uno de los pioneros en investigación de todo tipo, con más de 60 años en el tema y varios premios nobel a cuestas, cubren de todo, desde exploración y control espacial, genética y genómica, láseres industriales y quirúrgicos, salud, minería y por supuesto casi todas las áreas de software y hardware.
     
  • Yahoo! Labs y sus publicaciones
    El menor de la serie, tal vez por ser la empresa que tiene hoy más problemas de crecimiento y subsistencia, de todas maneras se mantiene activa en áreas como Publicidad Computacional, Interacción entre Humanos y Computadoras, Medios, Aprendizaje Mecánico, Movilidad, Personalización, Investigación de Sistemas, y Búsqueda y Minería Web.

Les dejo un par de videos sobre los dos primeros, para darse una idea del estilo.

Research at Google (~3 min):

  
y un Tour por Microsoft Research (~10 min):

martes, 8 de octubre de 2013

La era de las interfaces aéreas

Desde hace un tiempo vemos cómo las interfaces empiezan a alejarse del mouse, el teclado y últimamente las pantallas.

Mientras que todavía estamos tratando de optimizar al máximo las interfaces táctiles, seguimos teniendo montones de casos en los que lo ideal sería no tener que tocar la pantalla u otro dispositivo. Por ejemplo, en situaciones en las que estamos a cierta distancia de la computadora, o cuando tenemos las manos ocupadas en otras cosa, o sucias (cocinando, reparando un auto, o en medio de una cirugía, por ejemplo).

Kinect

Primero fue Xbox y su accesorio Kinect, uno de los desarrollos más revolucionarios salidos de Microsoft últimamente, que aunque arrancó más orientado al mercado de juegos, pronto agregó una edición para Windows, con su correspondiente SDK, abriendo el dispositivo a lo que que nuestras mentes quieran hackear.

Kinect utiliza una combinación de sensores y un láser infrarrojo que brinda datos de posicionamiento de objetos en 3D. Básicamente, tiene cámaras HD normales e infrarrojas, con lo que consigue no solamente una imagen plana, sino información de distancia. A esto se le suma una serie de micrófonos y una buena cantidad de software.

El SDK para Windows tiene un par de maneras principales de programar: la primera es manipulando los datos en crudo, con el nivel de complejidad que implica, y la segunda es usando un API de más alto nivel que básicamente rastrea posiciones del esqueleto de hasta dos personas simultáneamente. De esta manera se puede programar a más alto nivel, siguiendo el posicionamiento de manos, cabeza, rodillas, etc. Kinect no es muy fuerte aún en reconocimiento de dedos individuales, ni está pensado inicialmente para estar a corta distancia.

 

Leap Motion

Más recientemente se agregó a la partida Leap Motion, un dispositivo mínimo (ver foto), más chico que un teléfono convencional, tal vez un poco más alto. Se conecta por USB a una PC o Mac, y debe ubicarse entre nosotros y el teclado o el trackpad, básicamente bajo el área donde vamos a mover las manos.

La cajita contiene dos cámaras infrarrojas monocromáticas en conjunto con tres LEDs infrarrojos para lograr unos 300 cuadros por segundo a una resolución altísima, y es procesada por software propietario en el mismo dispositivo para proporcionar información de posicionamiento de los dedos muy detallada. Incluso permite detectar cosas como un lápiz en nuestra mano, y utilizarlo para dibujar sin necesidad de tocar la pantalla.

Leap Motion también provee un SDK con lo que pueden desarrollarse aplicaciones que exploten todo es potencial, que en principio es mucho mayor para aplicaciones de precisión, y como medio de interactuar con nuestra computadoras personales.

 

Flutter

Y ahora llega Flutter, recientemente adquirido por Google, y disponible para OS X y Windows, con la particularidad de que no requiere ningún dispositivo externo. Solamente utiliza la cámara incorporada en las notebooks, y detecta (por ahora) unos pocos gestos, orientados en principio a controlar reproductores de media como iTunes, VLC y unos cuantos más que van sumándose, incluyendo ahora algunos sitios como Grooveshark o YouTube, utilizando una extensión de Chrome.

Los gestos que reconoce por ahora son mano abierta para detener o continuar, pulgar a un lado o a otro para ir al track siguiente o al anterior, pero prometen algunos más.

Lo que todavía no está anunciado es un SDK o API para programar sobre el análisis que ellos ya realizan sobre la imagen, pero ahora que Google ha tomado el control, no cuesta mucho pensar en que se integre como funcionalidad básica de Chrome, y porque no, se abra a más usos.

 

Finalmente, para mi lo que queda esperar es más sensores del estilo de Leap Motion integrados directamente en una próxima generación de notebooks, tabletas y teléfonos (hay algunos de Smasung que reconocen ya algunos gestos básicos sin tocar la pantalla) y sobre todo, la aparición de capas de software que realicen la mayor parte de las transformaciones matemáticas necesarias para que podamos luego programar a más alto nivel.

martes, 24 de julio de 2012

Videos: 17 sesiones de ASP.NET al precio de una

aspConf

La semana pasada avisé (el segundo día) sobre el evento en línea aspConf, que se extendió por dos días y varios tracks simultáneos.

Como era de esperar, las sesiones ya están disponibles. Hay 17; no se si son todas.

Uno de los principales problemas de este evento, en su edición en línea, fue seguir utilizando Live Meeting, que a mi juicio es una plataforma obsoleta y con muchos problemas, que va en contra de la apertura que Microsoft muestra en otros aspectos. Para empezar, no funciona bien en Mac o en cualquier cosa que no sea Windows, y tuve varios problemas para ver alguna sesión incluso en Windows 8.

A esta altura, uno espera de un evento en línea el llegar a una página y verlo, sin mucho más requerimientos ni tener que bajar ninguna plataforma cliente. Irónicamente, se dieron cuenta de algunas de las limitaciones de Live Meeting porque en paralelo con ese mecanismo, había un chat abierto a través de la web para la interacción con el público.

Pero dejemos de lado las críticas y vamos al contenido, que es lo que cuenta. Las sesiones ya está disponibles para ver directamente en el navegador (o descargarlas, incluso disponibles en múltiples formatos) en la página del evento en Channel 9.

Dejo de regalo las dos keynotes, a cargo de los Scotts: Guthrie y Hanselman.

Windows Azure

One ASP.NET

jueves, 5 de julio de 2012

Video: Desarrollando en Node.js desde Mac OS y desplegando en Azure Web Sites

Desde hace años vengo trabajando con Windows Azure, la plataforma de cloud computing de Microsoft. Hasta ahora, más allá de haber logrado algunos proyectos interesantes, la plataforma no me entusiasmaba demasiado por varios motivos:

  • Estaba muy orientada a un modelo de desarrollo específico (Platform as a Service)
  • Estaba muy orientada a .NET (había maneras de utilizar otras plataformas, pero siempre complejas)
  • El mecanismo de despliegue y actualización era muy poco eficiente

En las últimas semanas finalmente se liberaron nuevas características que me parecen mucho más interesantes. Dos en particular (que están aún en preview, pero utilizables dentro de la prueba gratuita por tres meses) son:

Azure Virtual Machines

Este servicio finalmente abre los data centers de Azure por completo. Desde el panel de control se pueden generar imágenes pre-configuradas de varias distribuciones de Linux, además de Windows, obviamente. Vean las opciones disponibles hoy:

Imagenes disponibles 

Azure Web sites

Es un servicio de hosting de aplicaciones web genérico, soportando múltiples lenguajes y con más flexibilidad que un host tradicional. Además de cubrir (por ahora) ASP.NET, ASP, Node.js, Java, PHP, Python y C++, el mecanismo de despliegue es todo un avance con respecto al anterior: se puede subir directamente desde el portal, por FTP, GIT o TFS. En cuanto la aplicación llega a Azure, prácticamente en forma inmediata queda disponible en línea.

Además de los diferentes lenguajes, otro cambio impresionante viniendo de Microsoft es que los SDK y las herramientas de consola son todas abiertas (admitiendo contribuciones; todas en GitHub) están disponibles para Windows, Mac OS y Linux, con lo que nuestra plataforma de desarrollo puede ser cualquiera.

Algunas cosas en mi lista de deseos hacia adelante:

  • Mejorar la usabilidad del portal exigiendo menos Login (ahora insiste varias veces ante distintas operaciones)
  • Soporte para autenticación por certificados en GIT (ahora hay que usar la password en cada push)
  • Soporte para Ruby (creo que el problema principal por ahora son las gemas que requieren compilación nativa)

Como ejemplo de todo esto, les dejo este cortísimo video (~6 minutos, en inglés) en el que Glenn Block, alguien a quien respecto mucho y que siempre impulsó las plataformas y paradigmas abiertos dentro de Microsoft (¡presten atención a su camiseta!), muestra como desplegar una aplicación Node.js (usando Express) desde Mac OS. Microsoft aún no puede sustraerse a sus carteles publicitarios al inicio y fin del video, pero el resto es recomendable.

viernes, 16 de marzo de 2012

Nueva edición del RUN Buenos Aires

RUN BA

El próximo viernes 23 de marzo, en la Universidad Católica Argentina (Alicia Moreau de Justo 1300) el grupo de Nuevas Tecnologías de Microsoft Argentina y Uruguay realizará una nueva edición del evento donde se anuncian las nuevas oleadas tecnológicas.

Pude encontrar una agenda del evento directamente en el sitio de registro:

Por la mañana hay sesiones generales:

  • Acreditación y Bienvenida
  • Bienvenida Rodrigo (¿quién será Rodrigo?)
  • Keynote: Un mundo de dispositivos conectados
  • Desarrollá tu potencial con Microsoft

Por la tarde hay espacios separados para gente de TI y desarrolladores. Las sesiones para nosotros son:

  • Servicios en la Nube con Windows Azure
  • El futuro con HTML5
  • Aplicaciones al alcance de tu mano: Windows Phone
  • Desarrollo Estilo Metro en Windows 8

Casualmente en esta última sesión participaré para mostrar un ejemplo de desarrollo en Windows 8, dentro del espacio de aplicaciones Metro (el nuevo estilo gráfico orientado a dispositivos táctiles) utilizando C++. Si tengo tiempo, trataré de cubrir brevemente algunas de las novedades de C++ 11 (el estándar) y un poco de las novedades en Visual Studio 11 en cuanto al soporte para este lenguaje, pero el centro de la sesión será mostrar cómo interactuar con el flamante Windows Runtime, y cómo aprovechar las características asincrónicas de C++ 11 para lograr aplicaciones sumamente fluidas, que reaccionan apropiadamente a la manipulación natural de los nuevos dispositivos.

Algo más de información sobre el evento, en Puerta de Enlace.

 

jueves, 29 de diciembre de 2011

El año del código abierto para .NET (+video: .NET en Chrome!)

OuterCurve Foundation

Se va terminando el año 2011 y mirando hacia atrás desde la perspectiva de la comunidad .NET somos varios los que vemos que este año fue sumamente importante para el código abierto en ese entorno. Y no estoy hablando solamente de Microsoft, ya que .NET ya tiene entidad independiente de su creador original.

Para los que tienen ganas de leer posts más largos y en inglés, recomiendo los de Phil Haack (hasta hace poco líder del ASP.NET MVC en Microsoft, ahora trabajando para GitHub) y Miguel de Icaza (el incansable líder del proyecto Mono).

Este post es un resumen breve del contenido que ellos exponen, con algunas apreciaciones personales.

El modelo Open Source fue algo que Microsoft, con su tradición de secretos y licenciamiento complejo, tardó muchísimo en incorporar. Y más complejo aún el modelo de Free Software, que implica tanto apertura como gratuidad de los productos. Sin embargo, desde hace años, con pioneros como IronPython, el DLR, y más tarde ASP.NET MVC, varios productos de la plataforma de desarrollo empezaron a producirse bajo esta premisa. Un punto culminante de esta iniciativa fue en 2008, cuando Microsoft anunció que comenzaba a incluir jQuery en Visual Studio, colaborando con el proyecto (de manera abierta, como cualquier otro) e incluso brindando soporte sobre el mismo.

Al entender la importancia del movimiento, Microsoft finalmente generó una Fundación llamada OuterCurve (originalmente se llamaba CodePlex, pero usar el mismo nombre que su sitio de alojamiento de código resultaba muy confuso), que como la Fundación Apache, permite resguardar los derechos del código y de los autores en un ambiente controlado. Muchos proyectos hoy existen bajo OuterCurve, aunque hay muchos también directamente en Apache.

Finalmente, este año Microsoft avanzó más en ese sentido, mejorando notablemente las condiciones de búsqueda e integración de código abierto propio o de terceros, a través de NuGet, el administrador de versiones para .NET, inspirado en Ruby Gems y similares. NuGet se integra en Visual Studio o puede usarse en la línea de comando, y permite buscar en un catálogo muy abundante actualmente de componentes abiertos, instalarlos en nuestros proyectos, incluyendo todas sus dependencias, e incluso automatizar tareas relativas a su instalación y uso, como declararlos en configuraciones, generar código u otros artefactos desde la consola, etc. NuGet también facilita mantener actualizadas, si es necesario, todas las versiones de estos paquetes.

Pero como decía al principio, .NET va más allá de Microsoft (y de Windows) desde hace tiempo, y la alternativa principal es el proyecto Mono, que como Miguel comenta en su post, tuvo un año increíble, lleno de novedades. La más importante para el proyecto mismo fue la venta de Novell a Attachmate y el posterior corte del equipo completo de Mono, que rápidamente se reincorporó como Xamarin, un reflejo directo de Ximian, la compañía original de Miguel y Nat Friedman que Novell adquiriese años antes.

Más allá de la reagrupación, que no redujo en lo más mínimo el impulso del proyecto Mono, a pesar de que el equipo de Xamarin se concentró en poner en el mercado MonoTouch y Mono for Android (productos comerciales que les permiten seguir sobreviviendo). Mientras tanto, el equipo de Mono (que excede también a Xamarin, como todo gran proyecto abierto) entregó este año una avalancha de tecnologías (más allá de varias versiones del runtime mismo de Mono y de MonoDevelop, su IDE), incluyendo:

  • .NET en el navegador (al menos en Chrome) a través de Mono corriendo en el Native Client de Google. De hecho, Google mostró Mono en Chrome en un evento reciente, del que dejo el video al final de este post. Aunque el año pasado ya se podía programar en mono y utilizar el compilador estático para ejecutar código dentro de Chrome, este año ya se puede ejecutar el compilador a demanda (JIT) de Mono.
  • MonoMac es una extensión de Mono para programar aplicaciones para Mac OS X en .NET, incluyendo el soporte para Cocoa y todo el entorno del sistema operativo. Se programa utilizando MonoDevelop y algunas herramientas nativas como los diseñadores de XCode.
  • MonoGame (ya comentado antes en este blog) es un port del entorno de desarrollo de juegos XNA de Microsoft, pero abierto y con mayor alcance en plataformas.
  • Sony PlayStation Suite es un framework de Sony para desarrollar juegos en diferentes dispositivos de su línea, completamente basado en Mono.
  • Phalanger es un compilador de PHP, actualmente basado en Mono, utilizando el DLR, que además de ser el motor PHP de mayor rendimiento, permite extender ejecutar cualquier aplicación PHP y extenderla con librerías o aplicaciones .NET.
  • CXXI es una tecnología puente entre C# y C++ que permite ejecutar código de una a otra plataforma, pero también heredar clases entre ellas, sobre-escribiendo métodos o no, o llamando a la clase base, todo de manera muchísimo más sencilla, segura  y multi-plataforma que utilizando COM.
  • Y hay bastante más (ver el post de Miguel para el detalle completo), pero como detalle final, Miguel descubrió que Microsoft mismo utilizó Mono para producir el juego Kinectimals para iOS. ¡Toda una ironía!

Dejo el video (en inglés) del evento de Google Client para que lo disfruten:

miércoles, 2 de noviembre de 2011

Azure Hispano: un foro para discutir sobre Windows Azure en español

Azure

El viernes pasado en las oficinas de Microsoft Argentina, en Buenos Aires, hubo una reunión inicial de un grupo de gente de la comunidad de desarrollo interesada en intercambiar experiencias sobre los proyectos iniciales que se están dando en la región basados en Windows Azure, la plataforma de computación en la nube de Microsoft.

No pude asistir porque coincidía con la Jornada de Arquitectura del MUG, pero se que hubo varios amigos al menos invitados. Uno de los que iniciaron el movimiento fue el Tano Fabio Maulo, quien hizo el anuncio oficial en su blog.

El resultado de la reunión fue básicamente la creación de una lista de correo (o foro) para discutir sobre este tema. La dirección de la lista creada en Yahoo! es:

http://tech.groups.yahoo.com/group/azurehispano/

Por ahora sólo se dio una conversación sobre maneras de escalar automáticamente, pero es bueno ver muchos nombres conocidos en la lista, como el mismo Fabio, la anfitriona Guada CasusoGabriel Szlechtman, Julian Dominguez, Adrián Eidelman, Nico Bello Camilletti, Alejandro Labras, Jorge Fioranelli, Martin Legnoverde, y varios otros, solamente en unos pocos días.

Para los interesados en esta plataforma, un recurso prometedor.

viernes, 16 de septiembre de 2011

¿Qué significan Windows 8 y su nuevo WinRT? (+videos)

imageEsta semana arrancó la conferencia //build/ (nuevo nombre del tradicional PDC de Microsoft) y el foco principal fue el lanzamiento (en versión preliminar para desarrolladores) de Windows 8 y su nuevo modelo de programación. Para quienes no las vieron, dejo debajo los videos de las charlas de apertura del día 1 (mayor foco en Windows 8) y el día 2 (mayor foco en desarrollo).

Uno de los anuncios más polémicos o complejos fue el nuevo modelo para desarrollar aplicaciones Windows que puedan ser distribuidas a través del próximo Market, siguiendo el modelo popularizado por Apple y al que ya se ha sumado toda la industria, incluyendo Windows Phone.

El siguiente es el diagrama más visto en los últimos días mostrando cómo queda el stack de Windows, y debe tenerse en cuenta que es un diagrama aproximado, porque obviamente simplifica muchas cosas para servir como modelo introductorio:

Plataforma de Windows 8

Básicamente, la mayor novedad está en la sección verde del diagrama (aplicaciones estilo Metro). Este tipo de aplicaciones serán las que puedan distribuirse a través del Market, y su particularidad es que no pueden acceder al API completa de Win32, sino que dialogan contra el API de WinRT, la nueva estrella del mundo Microsoft.

En principio, WinRT es una buena idea. Lo que hace es proveer un contexto de ejecución seguro (similar al de un navegador) para aplicaciones Metro (insisto en que el modelo anterior existe, pero NO se puede distribuir por el Market). Lo que se logra con esto es que todas esas aplicaciones tienen acceso mediado y controlado a los recursos físicos del sistema, y son muchísimo más seguras, aun cuando pueden escribirse básicamente bajo tres paradigmas:

  • En .NET (utilizando el mismo CLR pero con un perfil especial que restringe el API disponible, similar a lo que sucede al escribir aplicaciones en Silverlight), utilizando XAML para el diseño de las interfaces.
  • En código nativo (C/C++) utilizando XAML también, pero sin acceso a Win32, sino a WinRT.
  • En JavaScript, utilizando HTML/CSS para el diseño de interfaces.

Otra característica importante de WinRT es que todas sus API tienen interfaces asincrónicas, salvo las que tienen tiempo de respuesta asegurado inferior a 50 milisegundos. El objetivo de esa decisión es mejorar la respuesta de Windows sobre todo en la interacción con el usuario. Todos sabemos que es normal en Windows tener demoras en el explorador o dentro de las aplicaciones, y mirar por unos segundos la famosa ruedita girando. Con el advenimiento de las interfaces táctiles (uno de los temas más fuertes en Windows 8) esos tiempos de respuesta no son viables. Por eso es importante volver a un modelo más similar al de programación en la web (con JavaScript) basado en operaciones que devuelven callbacks, que liberan el hilo de ejecución hasta que la operación termina.

La contra de este modelo en general es que el nivel de complejidad para manejar callbacks anidados y el control de errores se eleva considerablemente. No es casualidad entonces que tanto en .NET 4.5 como en JavaScript veamos crecer el uso de patrones asincrónicos (en C# 5 a través de las nuevas cláusulas await y async, heredadas de F#) y en JS con la creciente adopción de promesas (utilizando las abstracciones .then() y .when() ) en bibliotecas como jQuery, Dojo y otras derivadas de CommonJS.

Entre otros temores surgidos a partir de las presentaciones del nuevo modelo, está la confusión sobre si .NET ha perdido importancia. Personalmente creo que no, pero Microsoft ha vuelto a las fuentes en algunos sentidos, volviendo a poner énfasis en el código nativo para aplicaciones de alto rendimiento. Los lenguajes manejados dan mayor productividad en general, pero sólo en C/C++ se pueden crear aplicaciones de muy alto rendimiento en velocidad, consumo de recursos e incluso consumo de energía. Estos tres factores no eran tan importantes hasta hace un par de años porque pensábamos nuestra aplicaciones para correr en computadoras de escritorio o servidores, pero el desarrollo de los dispositivos móviles (teléfonos, tabletas, y otros) ponen de nuevo foco en ellos. Y en el otro extremo, aplicaciones del lado del servidor que ahora tenemos que pensar para miles de usuarios concurrentes hacen que tengamos que el ahorro de recursos en alta escala financie con creces el tiempo extra de desarrollo.

En fin, quedan muchos temas disparados que espero seguir tratando más adelante. Cualquier comentario o pregunta son bienvenidos. Les dejo los videos para que se diviertan.

Apertura del día 1 - Windows 8

Apertura del día 2 - Desarrollo y Operaciones

martes, 6 de septiembre de 2011

CodeCamp 2011, 15 de octubre en Buenos Aires

imageCodeCamp, el evento anual de desarrollo sobre tecnología Microsoft más grande del mercado local, llega este año el 15 de octubre, el sábado siguiente a la realización de Agiles 2011.

Aunque no está anunciado en el sitio la sede (aún) la sede será la UAI (Universidad Abierta Interamericana), en Av. San Juan 951, Capital Federal.

El evento, como siempre, será gratuito, pero requerirá inscripción previa, la que aún no está abierta, así que a estar atento al sitio web, o al twitter oficial.

Para que vayan teniendo una idea del contenido posible de la conferencia, les anticipo los títulos y presentadores de las propuestas presentadas. Obviamente, queda por delante el proceso de selección, así que no todas quedarán en el programa final, pero pueden darse una idea general de los temas que están dando vueltas, e ir preparándose para ver y preguntar.

  • Construyendo servicios web con WCF Web Apis - Por Pablo Mariano Cibraro
  • Introducción a Node.js - Por Pablo Mariano Cibraro
  • SQL Denali (El futuro aqui) - Por Maximiliano Accotto
  • Herramienta para desarrollo Juneau (el reemplazo de Visual Studio for Database) - Por Maximiliano Accotto
  • Tunning de base de datos - Por Maximiliano Accotto
  • Desarrollando Social Games en Azure - Por Angel J Lopez
  • Jugando con Kinect desde .NET - Por Nicolas Padula
  • Mangos y Ventanas - que hay de nuevo en WP7.1 - Por Jonas Stawski, Miguel Angel Saez
  • Windows 7+1 on the rocks - Por Miguel Angel Saez, Mariano Rempel
  • Clean Code - Por Eric Delahaye
  • Introducción a las Comunicaciones Unificadas - Por Pablo Vernocchi
  • Exchange 2010 - Hardware virtualizado vs Hardware físico - Por Pablo Vernocchi
  • Exchange 2010 High Availability y Site Resilience - Por Pablo Vernocchi
  • Además de tirar código - Por Martin Salías
  • Mono: .NET en todas partes - Por Martin Salías, Carlos Paez
  • Windows Phone 7 "Mango" y los sistemas empresariales - Por Carlos Alejandro Pérez
  • El regreso de SQL Server CE a los móviles - Por Carlos Alejandro Pérez
  • Introducción a SharePoint 2010 como Plataforma de Colaboración - Por Pablo Alejandro Fain
  • Implementación de SharePoint Server 2010 para humanos - Por Pablo Alejandro Fain
  • Entity Framework 4.1 - Code First desde las trincheras. - Por Mariano Sanchez
  • Knockout JS: simplificando el desarrollo de UIs dinámicas con javascript y ASP.NET MVC - Por Ruben Altman, Adrián Eidelman
  • Desarrollo y testeo modular de interfaces HTML5 / MVC - Por Santiago Bustelo
  • Automatizando el testing en .NET - Por Adrián Eidelman, Ruben Altman
  • Pasado, presente y futuro de C++ - Por Rodolfo Finochietti
  • Mobile Web Sites - Por Rodolfo Finochietti
  • Web Sites 100% en JavaScript - Por Rodolfo Finochietti
  • Una vuelta por la nueva plataforma de Desarrollo que se viene! - Por Johnny Halife
  • Juega con HTML5 - Por Matias Iacono, Patricio Santiago Marrone
  • Generación espontánea con T4 - Por Matias Iacono
  • Mirando el espejo - Por Matias Iacono, Boris Angonoa
  • Usando MongoDB desde C# - Por Ruben Altman, Román Gorojovsky Sánchez
  • Un entorno práctico de desarrollo ágil - Por Carlos Peix
  • Desarrollo de soluciones geo-espaciales con SQL - Por Andrés Aiello
  • Gestionando grandes volúmenes de datos con SQL 2011 - Por Pablo García
  • Creando aplicaciones a la velocidad de la luz: desarrollo con Visual Studio 2010 Lightswitch - Por Diego Fidel Ferreyra
  • Desarrollo de Videojuegos Movilizados - Por Sebastian Miserendino
  • El Escritorio del futuro - Por Augusto Alvarez, Alberto Ortega
  • FX para tu escritorio con Remote Desktop Services - Por Augusto Alvarez, German Lagomarsino
  • Estandarización de servidores Windows Server 2008 R2 + herramientas gratuitas - Por Augusto Alvarez, Alejandro Barrionuevo
  • ¡A mover el cuerpo con Kinect! - Por Diego Sisto, Fernando Kahan
  • Tu primer webpart en Sharepoint 2010 - Por Alan Scheinkman
  • Que no te ataquén!!! Desarrollando código seguro en SQL - Por Jose Mariano Alvarez, Andrés Aiello
  • Gestión de la configuración con NuGet y Git - Por Dario Seminara, Nicolas Paez
  • Todo sobre FileStream y FileTable (SQL Denali) - Por Maximiliano Accotto
  • De 0 a 100 con Windows Phone 7 - Por Federico Lois, Daniel Rodolfo Iglesias
  • NoSQL, Map-Reduce y otras yerbas! Programando con RavenDB. - Por Daniel Rodolfo Iglesias, Federico Lois
  • Configuración y Escenarios de Client Access Server en Entornos de Migración - Por Rodrigo de los Santos
  • Microsoft e IPV6 - Por Rodrigo de los Santos
  • Mitos y Leyendas de Windows Phone 7: Sacale el jugo a tu Smartphone - Por Brian Litwak, Ignacio Raffa, Federico Boerr
  • Seguridad en aplicaciones Web - Por Carlos Peix
  • TDDeando Aplicaciones JavaScript - Por José Fernando Romaniello
  • REST: Cómo ordenar café utilizando las nuevas WCF Web API? - Por José Fernando Romaniello
  • Realidad Aumentada: De qué se trata y, ¡manos a la obra! - Por Boris Angonoa, Matias Iacono
  • Windows Azure AppFabric o cómo desarrollar aplicaciones para la nube y conservar el pelo - Por Leandro Boffi
  • Implementando soluciones Sharepoint 2010 en el mundo real - Por Soledad Pano
  • Enamorándose de Knockout.js - Por Leandro Boffi
  • Haciendo WCF simple - Por Mauricio Gentile
  • Desarrollando buenas prácticas con NuGet - Por Mauricio Gentile
  • Conoce las mejores prácticas en el uso de la API de SharePoint - Por Santiago Giovannini
  • Consejos para organizar el contenido en tu aplicación de SharePoint siguiendo las mejores practicas - Por Santiago Giovannini
  • Paseando por Denali, la nueva versión de SQL Server - Por Adrian Gabriel Lopez
  • Haciendo BI rápido y flexible - Por Adrian Gabriel Lopez
  • Aplicaciones ricas en datos sacándole el jugo a SQL Server Denali - Por Adrian Gabriel Lopez
  • Sharepoint 2010, manual para programadores - Por Hernán Veiras
  • Dirigiendo la Orquesta con WF 4.0 - Por Hernán Veiras
  • Compilando en la UI con S# - Por Hernán Veiras
  • Mi primer juego XNA para WP7 y XBOX 360 - Por Pablo García
  • Extendiendo las fronteras de SharePoint 2010: Cómo Windows Phone 7 puede ser un perfecto aliado de SharePoint. - Por Nicolas Ibarra Salazar
  • Creando aplicaciones móviles para la nube: Windows Phone 7 + Windows Azure - Por Nicolas Ibarra Salazar
  • Desarrollando aplicaciones asincrónicas en .Net. - Por Silvio Massari
  • Integrando SharePoint 2010 con Windows Azure: Un nuevo mundo de posibilidades para soluciones empresariales - Por Nicolas Ibarra Salazar
  • MongoDB a todo pulmón - Por Silvio Massari
  • Patrones de diseño NoSql - Por Silvio Massari
  • Agile Automation Testing con BDD: un poco de Cucumber, Specflow, Watin y estamos! - Por Patricia Coronel
  • SharePoint 2010 en la nube: Introducción a Office 365 y desarrollo sobre SharePoint Online - Por Nicolas Ibarra Salazar
  • Mejor MVC – Movilizándote con jQuery Mobile - Por Ignacio Baumann Fonay, Fernando Antivero
  • Microsoft Media Platform Content Manager (open source) - Por Ignacio Jonas, Ezequiel Aranda
  • El futuro de Parallel Programming en Microsoft .NET Framework - Por Christian Carnero
  • A developer overview of Windows Phone 7.1 - Por Christian Carnero
  • Soy un desarrollador .NET pero tengo un IPhone - Por Christian Carnero
  • Como conseguir pareja en una tarde de sábado con HTML5 - Por Pablo Zaidenvoren, Mauro Gandelli, Maximiliano Garcia Rozado
  • Wordpress en Windows Azure - Por Alejandro Banzas
  • Integrando redes sociales en proyectos corporativos - Por David Balogh
  • Reactive Extensions en el Mundo Real - Por Gustavo Javier Machado
  • Introduccion a Windows Azure AppFabric Service Bus - Por Gustavo Javier Machado
  • REST Services "a la carta" - Por Gustavo Javier Machado
  • Una vuelta por F#, Un lenguaje funcional en .NET - Por Gustavo Javier Machado
  • MVC3 Tips y buenas prácticas para el mundo real - Por David Balogh
  • RavenDB, No solo una base de documentos para .NET - Por David Balogh
  • Ya sé, es solo NHibernate compilado, pero me gusta - Por David Balogh
  • Full text search en 60 minutos - Por David Balogh
  • Testeo, luego existo - TDD desde cero - Por David Balogh
  • Creando sitios de internet con SharePoint 2010 - Por Mariano Escurra, Soledad Pano
  • Mejores prácticas utilizando Javascript y JQuery en SharePoint 2010 - Por Soledad Pano, Mariano Escurra
  • Escalabilidad para sitios de alta demanda en Cloud Computing - Por David Balogh
  • Datos en la nube: colas, caché, topics y otras yerbas - Por Leandro Adrián Díaz Guerra
  • Explotando el verdadero potencial de IIS con Windows Server AppFabric - Por Leandro Adrián Díaz Guerra
  • Haciendo inteligencia en tiempo real con StreamInsight - Por Leandro Adrián Díaz Guerra
  • Una Web en pocos minutos con Nuget y Scaffolding - Por Moisés Rivas, Sebastián Henzenn
  • Comunicaciones Unificadas - Por Matías Alfaro
  • TRANSPHONERS te llevamos al futuro! - Por Guillermo Bellmann, Ivana Tilca

martes, 30 de agosto de 2011

Versión completa de Python Tools for Visual Studio

imageLa versión 1.0 de estas herramientas para programar Python en Visual Studio finalmente está disponible (gracias a @masaez por el aviso).

Este conjunto de herramientas es gratuito y de código abierto (bajo licencia Apache 2.0), y convierten a Visual Studio (que no es gratuito ni abierto) en una IDE muy completa para Python, soportando tanto CPython (la distribución estándar, no incluida en el paquete) como IronPython, la implementación de Python sobre el runtime de .NET.

Algunas de las características principales que hace atractivo el uso de estas herramientas es que agrega al editor básico con coloreo de sintaxis un buen soporte de Intellisense sobre miembros y firmas, navegación sobre el código como encontrar todas las referencias a un miembros, ir a su definición, o inspeccionar objetos. También soporta depuración local y remota, y perfilamiento para análisis de rendimiento.

Integra por supuesto una consola de comandos que puede usarse, al igual que el resto del entorno, también en entornos de clusters HPC y MPI, lo que permite trabajar interactivamente con infraestructura de procesamiento paralelo.

De hecho, sospecho que estos entornos son el motivo principal de la inversión de Microsoft en desarrollar estas herramientas, aún después de haber dejado el desarrollo de IronPython en manos de la comunidad. Python es uno de los lenguajes más utilizados (junto con C/C++) en el mercado de Computación de Alto Rendimiento (HPC), donde Microsoft está creciendo progresivamente a partir del lanzamiento hace unos años de Windows HPC Server. Sobre todo por bibliotecas clásicas en los mercados científicos, financieros e ingenieriles como NumPy o SciPy, y por el hecho de que programar resolución de problemas complejos en arquitecturas masivamente paralelas en C es bastante complejo, Python se ha establecido como una excelente opción.

Microsoft supo aprovechar el trabajo del equipo de IronPython para soportar su implementación en Visual Studio y la generalizo para muchas más áreas, lo que es en general una buena noticia, aún cuando lo cierto es que en la mayor parte de los contextos los programadores Python no solemos necesitar una IDE completa y preferimos la liviandad de un buen editor. En contextos complejos como HPC o uso de Interfaz de Paso de Mensajes (MPI) en ambientes distribuidos, es bueno al menos tener un buen soporte de depuración y algunas herramientas extra.

Debajo una pequeña muestra de las herramientas en acción:

Visual Studio Tools for Python

viernes, 6 de mayo de 2011

Videos: Run Web Camp Buenos Aires (marzo 2011)

Run Web Camp

A mediados de marzo Microsoft realizó en Buenos Aires una edición de su gira internacional Web Camp, en el que participamos varios oradores locales junto a los dos invitados "oficiales", Phil Haack (Program Manager de ASP.NET MVC) y Drew Robbins (Technical Evangelist), como anuncié por entonces en este post.

El evento se transmitió en vivo a través de UStream, pero por algún motivo no se dejó que quedara disponible directamente a posterior, como esta plataforma permite, y recién ahora están disponibles los videos en YouTube.

Es bueno mencionar que este evento va a replicarse (siempre con adaptaciones, actualizaciones y oradores alternativos) a lo largo de varas provincias argentinas. Más información en la página de Facebook del tour.

Haciendo honor al tono hispano de este blog, les dejo la página donde están los links a todos los videos, pero dejo incrustados debajo los de las sesiones en español, en el orden en que (creo) se dieron ese 15 de marzo:

Bienvenida y tendencias, con Edu Mangarelli y Migue Sáez

Seguridad y Front-End de la nube, con Chema Alonso

Acceso a datos con Entity Framework, con Dani Laco y Martín Salías

Aplicaciones AJAX con MVC, con Rodo Finochietti y Zaiden

Internet Explorer 9 y HTML5, con Mati Woloski y Johnny Halife

Espero que los disfruten.

jueves, 14 de abril de 2011

Node.js, Ruby y Python en... Windows Azure? (video)

smarx

Esta semana esta desarrollándose en Las Vegas, EEUU, la conferencia MIX11, en la que Microsoft realiza gran parte de sus anuncios para desarrolladores y diseñadores. A diferencia de PDC, que es la conferencia general para desarrolladores, MIX se orienta específicamente al desarrollo web o de aplicaciones cliente en general.

Como siempre, el criterio se amplía y aparecen, además de muchas presentaciones y anuncios esperables, algunas sesiones sumamente interesantes, como ésta de Steve Marx, uno de los personajes más innovadores dentro de Microsoft en los últimos tiempos.

En esta sesión, @smarx se dedica a subvertir Windows Azure, la plataforma de cloud computing, de la que él es el estratega técnico, para ejecutar sobre ella Node.js, Ruby, Python y también cosas como Cassandra o Tornado.

Veamos porque Steve me parece innovador:

Diagramas de smarx

  • No usa Powerpoint (y todavía no lo echaron): estos son sus slides de la charla (puro html+css)
  • Todos estos ejemplos están disponibles en su cuenta de GitHub
  • De hecho, tiene construido un workflow que hace el deploy en Azure de algunas aplicaciones después del git push
  • Sus diagramas son muy buenos (sólo comparables con los de @eugenio_pace, como se aprecia a la derecha).
  • Y fundamentalmente, entiende y divulga la necesidad de soportar múltiples plataformas y alternativas para que Azure sea un ambiente exitoso, en contra del discurso preponderante de que se lo utilice solo en .NET o PHP.

En la sesión se muestra cómo utilizar estas herramientas sobre la infraestructura pelada de Azure, sin utilizar ni el SDK, aprovechando algunas de las características que se habilitaron recientemente a este fin como:

  • Privilegios elevamos, para poder correr procesos como admin
  • Startup tasks: tareas que se pueden ejecutar antes de que un rol o instancia arranque
  • Control completo del IIS, incluyendo proxy reverso y FastCGI

Les dejo el video (en inglés) por si quieren entender un poco más el tema, especialmente los motivos por los cuales alguien querría hacer esto en Azure en lugar de otras plataformas. Si por alguna razón no se ve el video en este post (los mecanismos de incrustación de Channel 9 no parecen muy estables) pueden ver la sesión en la página original.

miércoles, 23 de marzo de 2011

Navegadores actualizados: lo bueno, lo malo y lo feo

En estos últimos días hubo muchísima actividad alrededor de los navegadores web principales.

Por todos lados resonó el lanzamiento de FireFox 4, y con menos ruido desde la comunidad pero mucha promoción se lanzó también Internet Explorer 9. Por su parte, sin tanto ruido, Google Chrome siguió actualizándose silenciosamente y en mi caso pasó a la versión 11 Beta (quienes no están suscriptos al canal beta deberían estar alrededor de la versión 10.0.648.15).

A continuación algunos detalles, apreciaciones y recursos que me parecen interesantes para desarrolladores:

IE 9

Internet Explorer 9

Esta versión es una imprescindible actualización de Microsoft, mientras hace esfuerzos denodados por eliminar los últimos restos de IE 6, que ya es un problema grave hasta para ellos mismos.

Casualmente, días antes del lanzamiento de IE 9 lanzaron también la campaña http://ie6countdown.com/ que me parece llena de problemas. Este sitio propone incorporar un banner que se activa si el navegador con que se accede al sitio es IE 6, pero en caso que el usuario en cuestión le preste atención y haga clic en el banner, es derivado al sitio de Internet Explorer, donde lo más probable es que termine descargando Explorer 8, no el 9.

He aquí uno de los principales problemas que veo en IE 9: no tiene soporte en Windows XP, un sistema operativo que sigue teniendo un nivel de presencia enorme, y que es el que deben estar utilizando la mayor cantidad de los usuarios que usan aún IE6. El resultado es que muchos de esos usuarios quedarán usando un navegador que todavía no cumple con los estándares modernos.

Fuera de este detalle, IE 9 se puso al día y soporta una buena cantidad de los últimos estándares conocidos como HTML 5. No implementa todos porque Microsoft tomó la decisión de no atacar estándares que no estén a cierto nivel de decisión, con lo que en la práctica hay cosas que otros navegadores soportan y IE9 no, pero el argumento es al menos atendible y la brecha es mucho menor.

IE9 es muy rápido, usa muy bien la aceleración gráfica, y tiene algunas características interesantes en cuanto a su integración con Windows. Claro, sólo corre en Windows, lo que es otra gran diferencia con respecto a los demás.

Para quienes estén interesados, Microsoft Argentina realizará un evento gratuito sobre las novedades, el próximo lunes 28, en sus oficinas de Bouchard 710, 4to piso, en Buenos Aires. Aunque es gratuito, requiere registración. Para más detalles y registro ver el post de Miguel Sáez sobre el evento.

Firefox 4

Firefox 4

Mozilla finalmente liberó la nueva versión de su producto más famoso. Desde el punto de vista de los cambios visibles, en varias áreas comparte con IE9 el acercarse más a algunos principios establecidos por Chrome, como minimizar el espacio que el navegador mismo toma de la pantalla, dejando todo lo posible para el contenido.

También avanza en mayor soporte para los estándares, y aunque la versión acaba de salir, un dato importante para los desarrolladores es que FireBug ya está actualizado para esta versión.

Otro aspecto interesante es que esta va a ser la última entrega de Firefox que se deba descargar e instalar. A partir de ahora, las actualizaciones también seguirán el mecanismo de "goteo" de Chrome, y el navegador se mantendrá actualizado en forma paulatina, sin mayor intervención del usuario, aunque algunas actualizaciones queden a la espera de que el navegador -o el sistema completo- se reinicie.

Chrome

Chrome

Una de las novedades más importantes de Chrome es que cambió el logo/icono, como pueden ver.

Hablando un poco más en serio, los cambios son como siempre incrementales, y en el caso de la versión beta, experimentales. Por ejemplo, ya están probando algunas APIs de voz y usando aceleración gráfica para el soporte 3D en las hojas de estilo.

Más adelante se ve venir que están por quitar Gears de Chrome, ya que esta extensión existía para dar soporte a características que ya se han implementado en HTML5. Sin embargo, muchas opciones de soporte fuera de línea de aplicaciones como GMail, Calendar y Docs lo utilizan, por lo que no sería raro ver que pronto estos productos migren hacia los nuevos estándares.

 

jueves, 10 de marzo de 2011

Python Tools for Visual Studio

Python Tools for Visual Studio

El equipo de Technical Computing de Microsoft acaba de liberar estas extensiones gratuitas y abiertas para dar soporte a Python dentro de su IDE de cabecera (por ahora en Beta 1).

Este equipo se dedica básicamente a dar soporte a escenarios de computación científica en ambientes distribuidos, clusters de computadoras, etc. Dentro de este ambiente, en el que Python también tiene un uso bastante intensivo como lenguaje de programación para MPI (Interfaz de pasaje de mensajes) que se utiliza para procesamiento en paralelo y distribuido, y mediante el uso de librerías como NumPy y SciPy.

Este plug-in para Visual Studio es producto de estas iniciativas construidas sobre el esfuerzo que hizo previamente el equipo de IronPython (la implementación de Python sobre el framework .NET), pero en este caso el soporte cubre tanto IronPython como el CPython standard, y tiene una serie de características muy interesantes, algunas ya disponibles y otras prometidas.

  • Intellisense, editor completo con coloreo, navegación de objetos y ventana de comandos integrada
  • Depuración local y remota (incluso en clusters)
  • Perfilamiento con múltiples vistas
  • Computación en paralelo interactiva desde la ventana de comandos
  • Soporte a clusters HPC y MPI, incluyendo depuración
  • NumPy y SciPy para .NET
  • Gratuita y de código abierto (licencia Apache 2.0)

Y prometidos para dentro de poco (esperemos que en la próxima Beta):

  • Soporte para Windows Azure
  • Soporte para Dryad (la implementación .NET de Linq para Map/Reduce)

Aunque en general en Python estamos acostumbrados a no usar Intellisense, hay que reconocer que el analizador que utilizan es bastante astuto, y es capaz de inferir los tipos de datos en contextos complejos, como se ve en el ejemplo:

Inferencia de Tipos

Otras características interesantes es la capacidad de saltar directamente entre fuentes, clases y métodos seleccionando de una lista que los agrupa correctamente, o saltar directamente a la definición de cualquier elemento desde algún uso en otra parte del código.

 

lunes, 28 de febrero de 2011

Run Web Camp en Buenos Aires

Run Web Camp

El 15 y 16 de marzo la gente de Microsoft Argentina estará presentando este evento que es parte de una gira internacional sobre desarrollo web dentro de su plataforma.

Es una pena que el sitio del evento parezca estar hecho por gente que no sabe mucho del tema en si, e insiste en publicar el programa como una imagen, haciendo la página muy poco accesible. Para beneficio de quienes no puedan leer una imagen y quieran enterarse de qué temas se presentarán, les dejo un resumen del temario.

Lo mejor del evento para mi es que participan muchos amigos. No se asusten por verme como orador, Daniel Laco que presentará conmigo se va a encargar de levantar el nivel de la charla.

Dia 1 (martes 15 de marzo) - Palais Rouge, Jerónimo Salguero 1441

09:00 Desayuno y Registración

09:30 Bienvenida (Eduardo Mangarelli - Director Regional de Nuevas Tecnologías de Microsoft)

09:45 Keynote: ASP.NET MVC (Phil Haack - Program Manager de ASP.NET MVC)

10:45 Presentando WebMatrix (Miguel Sáez, Programa Desarrolladores de Microsoft)

11:30 break

11:45 Acceso a Datos y Modelado con Entity Framework (Daniel Laco y quien escribe)

12:30 Un cambio de Vista en MVC: Razor Syntax (Drew Robbins)

13:15 almuerzo

14:15 Internet Explorer 9 y HTML 5 (Matias Woloski y Johnny Halife)

15:00 Aplicaciones AJAX con MVC (Rodo Finochietti y Pablo Zaiden)

15:45 break

16:00 Funciones avanzadas con MVC 3.0 (Daniel Cazzulino y Julián Domínguez)

16:45 Administrando paquetes con NuGet (Phil Haack)

Día 2 (miércoles 16 de marzo) - Microsoft de Argentina, Bouchard 710, 4to piso

Nótese que este segundo día es de prácticas con instructor, y es importante llevar notebook.

09:00 Desayuno y Bienvenida

09:30 Apertura: Sesión conjunta

10:00 Sesión Asistida de Desarrollo (parte 1)

13:00 almuerzo

14:00 Sesión Asistida de Desarrollo (parte 2)

17:00 Elección de proyecto

18:00 Cierre

Instructores: Phil Haack, Drew Robbins, Diego Gonzalez, Angel "Java" López

Espero que nos veamos por allá.

jueves, 3 de febrero de 2011

Programando en Windows Azure con el Maestro Angel "Java" López

@ajlopez

En la última reunión VAN (Virtual Alt.Net) de Alt.Net Hispano, el Maestro presentó una profunda sesión sobre programación en la plataforma de cloud computing de Microsoft. Para quienes quieran saber más sobre este grupo, pueden leer este post previo.

En esta sesión, como siempre, registrada en video (disponible más abajo), el Maestro @ajlopez recorre los conceptos básicos de Windows Azure, el SDK correspondiente para poder programar aplicaciones para esa plataforma, las opciones de computación (roles web y roles de trabajo), y las alternativas de almacenamiento (tablas, blobs y colas).

Pero lo más jugoso es ver en acción la manera de programar, sobre todo a través de los ejemplos e ideas del Maestro, que sabe mantener el interés con buen nivel de detalles y muy buen humor.

Tras las sesión, hubo en la lista de Alt.Net hispano un mensaje de Eugenio Pace, Sr. Program Manager en Microsoft patterns & practices, que desde Redmond mandó felicitaciones por la sesión y aprovechó para puntualizar algunos detalles que Angel dejó planteados, para beneficio de los asistentes.

Antes de dejarles el video, aviso para todos los que estén interesados en profundizar en el tema y estén alrededor de Buenos Aires, que Angel va a dar un seminario gratuito de dos días sobre Azure, el 15 y 17 de febrero, en el Grupo de Usuarios Microsoft de Argentina.

Que lo disfruten:

Unable to display content. Adobe Flash is required.

lunes, 31 de enero de 2011

Microsoft Web Platform Installer

Web Platform Installer

Una de las quejas recurrentes al trabajar con el stack web de Microsoft era siempre la dificulta de instalar los componentes necesarios, no solamente en el puesto de desarrollo, donde con un poco de tiempo y paciencia se logra, sino en el servidor de producción, donde generalmente el tiempo y la disponibilidad no es tan abundante.

Para solucionar este tema, desde hace tiempo se liberó esta herramienta: el Web Platform Installer, conocido familiarmente como Web PI, que actualmente ya se encuentra en su versión 3.0.

Como Microsoft promociona en el sitio principal, este instalador tiene varias características interesantes:

  • Es gratuito
  • Es pequeño (2 MB)
  • Es inteligente (bueno, al menos entiende algunas dependencias)
  • Está actualizado (siempre propone las últimas versiones de los componentes)
  • Está disponible en 9 lenguajes (incluido español, por supuesto)
  • Instala muchísimas aplicaciones de diversos orígenes (incluyendo IIS, SQL Express, .NET, pero también aplicaciones PHP como Umbraco, Drupal, o mi amigo Moodle). Hay disponible una galería de aplicaciones.

Además de componentes de infraestructura, Web PI también permite instalar herramientas de desarrollo como Visual Studio Express y frameworks como ASP.NET MVC y otros.

Una novedad interesante, e imprescindible desde mi punto de vista, es que ahora toda la funcionalidad se puede acceder por línea de comando, incluyendo cierto control de comportamientos algo molestos de la plataforma Windows que al menos se minimizan un poco con esto: aprobación de acuerdos de licencia y necesidad de booteos.

Que quede claro: hace falta seguir aprobando la licencia pero podemos indicar en el script que la acepte automáticamente, y hay muchos componentes que siguen requiriendo re-bootear la máquina, pero al menos podemos forzar a que no lo haga en cada producto, o no lo haga en todo el proceso. La instalación final se completará en el siguiente boot (sea manual o por script) y Web PI se encarga de resolver este tema solo.

 

lunes, 17 de enero de 2011

Video: Avalancha de lanzamientos desde Microsoft

WebMatrix

El Web Platform & Tools Content Team de Microsoft (hasta donde recuerdo, el grupo en el que está Scott Hanselman) acaba de liberar una cantidad impresionante de productos:

El hecho de que haya salido todo junto no es casualidad: todos estos productos están relacionados de alguna manera, ya que en principio son todos piezas de la nueva estrategia de Microsoft para el desarrollo web, caracterizada por romper un poco los esquemas tradicionales de la compañía. Por ejemplo, muchos de los componentes están liberados como Open Source, y otros son gratuitos, y en líneas generales todos son bastante livianos (mucho más de lo habitual en el mundo Microsoft al menos).

Esta renovada plataforma responde indudablemente al intento de Microsoft de competir con el ambiente más popular en el desarrollo web que va desde PHP hasta Ruby on Rails, e incluso abarca parte de este espacio, como veremos.

Veamos cada componente en un poco más de detalle. Como hay mucha información de Microsoft al respecto, lo que leerán es mi interpretación personal sobre ellos, tratando de relacionarlos con equivalentes en otras plataformas con el objetivo de entender rápidamente el propósito de cada pieza, sin entrar en comparaciones sobre si una es mejor que otra. En principio, es difícil comparar plataformas disimiles y componentes aislados.

ASP.NET MVC es un framework open source basado en el ya antiguo patrón MVC (fue postulado originalmente por Trygve Reenskaug entre 1978/79 en Xerox) y mayormente ignorado por Microsoft en su aproximación a la web, mientras se lo adoptaba en otros ámbitos en frameworks como Struts en Java, Joomla/Drupal en PHP, Django en Python y Rails en Ruby.

Esta versión de MVC incorpora algunas novedades como un nuevo motor para las vistas, Razor, que tiene una sintaxis muy suscinta y clara para mezclar código con HTML con un mínimo de interferencia. También mejoraron mucho la limpieza del JavaScript que integran del lado cliente al evitar scripts inline y usar en cambio anotaciones de HTML 5 que son manejadas por JQuery y jQuery.unobtrusive-ajax, con lo que se pueden realizar validaciones y otras tareas del lado cliente.

Otro pilar de este framework es la extensibilidad, ya que se puede cambiar fácilmente el motor de vistas, soporta montones de frameworks de testing, alternativas para el modelo y su persistencia, y en esta nueva versión incluso mejora el mecanismo de inyección de dependencias, de modo de poder usar el contenedor que más nos guste para intercambiar cualquiera de las piezas.

NuGet es un administrador de paquetes que intenta acercar la funcionalidad de las gem de Ruby al mundo .NET. Todavía es relativamente nuevo, pero comparado con el proceso anterior de búsqueda e inclusión manual de las dependencias es un avance enorme, y seguramente va a facilitar mucho el uso de componentes externos. El proyecto es open source y es mantenido por Microsoft y miembros externos.

IIS Express es una versión gratuita de desarrollo del servidor web, mucho más liviana que el servicio completo, y con la posibilidad de utilizarlo y configurarlo sin requerir privilegios de administrador, algo que tradicionalmente generó muchísimos problemas en equipos dentro de un entorno corporativo seguro.

SQL Server Compact 4 es una versión embebida y gratuita de SQL Server. Algo similar a un SQLite. Los binarios se copian directamente dentro de la aplicación y la base de datos corre dentro del mismo proceso, con lo que no es necesaria ninguna instalación. Por supuesto este servidor no tiene las características de escala que sus hermanos mayores, pero es más que suficiente para una gran cantidad de aplicaciones, y no tiene ningún tipo de restricción de uso en su licencia.

Web Deploy y el Web Farm Framework, como sus nombres lo indican, facilitan el proceso de despliegue y actualización de aplicaciones web en servidores únicos o compuestos en granja. Ambos componentes son gratuitos.

Orchard es un sistema de administración de contenido y blogs open source, basado en MVC 3, utilizando Razor y SQL Compact por omisión. Después de un intento similar poco prolijo y muy criticado (llamado Oxite), Orchard estuvo mucho más cuidado en todo sentido, y aunque por supuesto hay críticas, el consenso es que esta es una aplicación de referencia mucho más valiosa.

Y finalmente, WebMatrix es una herramienta gratuita de desarrollo de aplicaciones web que soporta una cantidad bastante variada de tecnologías en base a plantillas, incluyendo cosas dentro y fuera del mundo Microsoft (aunque corriendo en Windows), como ScrewTurn, Umbraco, DotNetNuke, Orchard, Blogengine.net,WordPress, Drupal y Joomla. Por debajo, WebMatrix incluye IIS Express y SQL Compact, brindando un entorno completo.

Algo interesante que tiene WebMatrix es una cantidad creciente de helpers para integrar muchísimos servicios servicios populares hoy día en la web, como Bit.ly, Facebook, EventBrite, FourSquare, OData, Twitter, UserVoice y muchísimos más.

 

Finalmente, otro elemento importante de todo este combo es la cantidad impresionante de documentación disponible. Basta como muestre este listado de recursos.

Para cerrar, les dejo este video presentando WebMatrix dentro de CodeMash 2.0.1.1(si tienen problemas viendo el video, prueben en la página original en Channel 9):

jueves, 6 de enero de 2011

Videos: Previews de Surface 2.0 y Android 3.0 (Honeycomb)

CES 2011

Durante la CES (la conferencia anual de electrónica para consumidores) que arrancó ayer, hubo unos cuantos anuncios ya, y algunas novedades ya dan vueltas por la red.

Microsoft pesentó la segunda versión de su dispositivo Surface, que ahora es muchísimo más fino ya que no usa más cámaras internas para capturar lo se apoya sobre la pantalla, sino que usa una tecnología en la que cada pixel es un sensor independiente. Esto permite usarlo no sólo como mesa, sino también como kiosko, más parecido a un televisor.

Google hara varios anuncios también, y ya tenemos al menos un video que muestra algunas características de la próxima versión de Android, que notarán orientado a mejorar la experiencia en tabletas además de teléfonos. Es interesante notar que algunas cosas como Maps en 3D y StreetView ya están disponibles hoy, aunque no con la misma velocidad que en el dispositivo del video.

Les dejo los videos de Surface y Android para que disfruten e imaginen aplicaciones: