Es Sábado en la noche y estoy aún en Seattle organizando mis cosas y haciendo investigación sobre toda la fantástica cantidad de información técnica que recibí durante esta semana (Update: Realmente estoy en el aeropuerto de Tacoma a punto de tomar un vuelo a Los Angeles y es Lunes de madrugada, pero estoy traduciendo este post de su original en inglés). Afortunadamente la mayor parte de la información que manejo la puedo compartir y escribir en este blog, pero la parte más divertida es NDA (Non-Disclosure Agreement) lo cual es un contrato de confidencialidad que firmé en el cual acepto guardar los grandes secretos de Microsoft y no contárselo a nadie. Entonces, todo lo que escriba en este post y en los venideros es información pública. Esta es mi bienvenida al mundo de los blogueros y como habrás imaginado soy un desarrollador de software que ama la compañía donde trabaja (Oshyn, Inc) y también a Microsoft, a Seattle, a Ecuador y a mi ex-novia (aún no la olvido pero eso lo escribo en otro blog).
Entonces, Qué es un Microsoft MVP?
Los Profesionales más valiosos de Microsoft o MVPs son personas de la industria que son premiados por Microsoft por su trayectoria técnica, conocimiento del producto y retroalimentación constante y consistente que representa la "voz del consumidor". Sus contribuciones ayudan a Microsoft a evolucionar sus programas y productos. Los MVPs son líderes comprometidos a ayudar a otros a alcanzar los mejores resultados usando productos y tecnologías de Microsoft. Si te interesa ser un MVP o quieres saber quienes son MVP en tu país, puedes consultarlo en www.microsoft.com/mvp.
Qué es el MVP Global Summit?
El MVP Global Summit es un evento de varios días que se lleva a cabo en Seattle y en las oficinas principales de Microsoft en Redmond, Washington. Consiste de una gran cantidad de sesiones de alto contenido técnico y una variedad de oportunidades de conexión, el MVP Global Summit permite que los MVPs conozcan otros MVPs y a Líderes de Productos de Microsoft y proveen retroalimentación en productos y tecnologías. El sitio oficial del evento es www.mvpsummit2009.com.
He sido invitado para atender el MVP Global Summit dos veces anteriormente (2007 y 2008) pero el 2009 fue el mejor de todos. En esta ocasión hubieron aproximadamente 1500 MVPs representando 97 países, 37 idiomas diferentes y más de 90 tecnologías. Este año los grupos de producto e ingeniería presentaron alrededor de 700 sesiones técnicas sobre 70 areas de tecnología de Microsoft. Los oradores principales del evento fueron:
-
Rich Kaplan, Corporate Vice President - Customer & Partner Advocacy
-
Mike Nash, Corporate Vice President - Windows Product Management
-
-
Soma Somasegar, Senior Vice President - Developer Division & Technical Leadership Panel
-
Bob Kelly, Customer Vice President - Server and Tools Division
El de la foto soy yo jugando con un Microsoft Surface. |
Aunque soy MVP en ASP.NET, estoy también interesado en temas que no son desarrollo Web necesariamente. Resulta imposible asistir a todas las sesiones técnicas pero en esta ocasión estuve presente en 14 presentaciones técnicas, 5 keynotes, 1 cena con el grupo de producto de ASP.NET, 1 fiesta de bienvenida y y otra fiesta en el Experience Music Project and Science Fiction Museum la cual estuvo espectacular a propósito. Aprecio mucho y agradezco al equipo de Microsoft que cada año hace posible este evento, empezando con nuestro Master Chief Fernando Garcia Loera (Latin American Region MVP Lead) y nuestro Super Master Chief Nestor Portillo (Worldwide Director of Microsoft Community Support Services). |
Y como dicen por ahí... Lo que pasa en el MVP Summit, se queda en el MVP Summit :-) pero esta es mi lista de los 10 productos y proyectos de Microsoft que me parecen más interesantes y sobre los cuales voy a estar blogueando durante este año (no están ordenadas por ningún criterio):
Uno: Windows Azure
|
La versión más reciente del Kit de Desarrollo de Windows Azure es January 2009 CTP, y tiene las herramientas e interfaces que los desarrolladores necesitamos para crear, desplegar y administrar servicios escalables en la plataforma Windows Azure. |
 |
Es cierto que el nuevo paradigma Cloud Computing no es para todos y que hay escenarios en los cuales no es aplicable, pero creo que existe un mercado importante de clientes que delegan las operaciones de infraestructura a un socio estratégico (en este caso Microsoft) debido a las múltiples ventajas que esto representa como por ejemplo reducción de costos, confiabilidad, escalabilidad, seguridad y muchas otras.
Si te interesa probar el desarrollo de aplicaciones para Windows Azure, te recomiendo visitar estos links:
Dos: Silverlight
Durante los primeros 4 meses luego de que Silverlight 2 fue liberado, el motor de ejecución fue descargado por más de 100 millones de consumidores, fácilmente traducido en una de cada cuatro computadoras con acceso a Internet en todo el mundo.
La adopción de Silvelight es increíblemente rápida y la nueva versión va a estar aún mejor. Dentro de dos semanas, durante el evento MIX 2009 habrán sesiones de Silverlight 3. Yo estaré en Las Vegas para atender este evento público (No-NDA), de tal forma que pueda publicar información en este blog sobre lo nuevo que traerá la siguiente versión de Silverlight.
Si estás interesado en Silverlight toda la información la puedes encontrar en el sitio http://www.silverlight.net/ que está lleno de tutoriales, quickstarts, whitepapers, screencasts, showcases y foros de discusión. También recomiendo revisar estas aplicaciones de ejemplo desarrolladas por Nikhil y Tess a quienes respeto bastante por su trayectoria técnica y la calidad de los contenidos de las cosas que publican:
Los usuarios y desarrolladores de Linux no están fuera del alcance de Silverlight. Miguel de Icaza (inteligentísimo hacker y Linux Master Chief) habla sobre lo que es MoonLight y MoonShine.
Tres: Microsoft Project Code Named "Velocity"
Trabajé en proyectos de banca por algunos años. La última oración me hace sentir un poco viejo... y sabio. En todos los bancos en los que trabajé los problemas eran parecidos y muchos de ellos eran relacionados con el rendimiento de las aplicaciones Web. Cómo soportar modelos de concurrencia optimística y pesimística? Cómo mejorar las métricas de calidad (disponibilidad, tiempos de respuesta, etc)? Cómo manejar la complejidad de el balanceo de carga? Finalmente el equipo de desarrollo terminaba implementando componentes y mecanismos propios para estas tareas. Aunque la implementación funcionara bien al principio, a medida que los requerimientos de negocio o infraestructura cambiaban, la solución se volvía más compleja y difícil de mantener. También esto requería de muchas horas de desarrollo y a veces es difícil explicar al cliente que tiene que pagar por cientos de horas de desarrollo de componentes complejos para soportar las aplicaciones ASP.NET de alta escalabilidad. Fue entonces cuando Velocity apareció.
Para fines de adopción temprara está disponible la siguiente versión: Microsoft Project Code Named "Velocity" Community Technology Preview 2 y también los ejemplos de Velocity para este CTP.
Finalmente, el equipo de Velocity hizo un anuncio importante hace una semana: Velocity CTP3 está próximo a salir (probablemente en el MIX 2009).
Cuatro: ADO.NET Data Services también conocido como "Astoria"
Una idea simple, pero interesante: Crear un framework simple basado en REST para exponer servicios centrados en datos. Los datos pueden ser accesados a través de URIs, representados en formatos bastante conocidos como JSON o XML y se puede interactuar con estos servicios usando los verbos HTTP usuales como GET, POST o DELETE. También se espera que en el futuro sea posible usar características como LINQ to ADO.NET Data Services para convertir sentencias LINQ a URIs. Simplemente Fantástico!
La semana pasada fue muy interesante para este proyecto, hubieron dos nuevas versiones liberadas que se anunciaron:
Aunque esta es una tecnología del tipo quiero-empezar-a-usarlo-ahora, aconsejo lo que hago para todos las versiones Alpha y CTP "No intente esto en casa" que significa, no usarlo en ambientes de producción.
Cinco: .Net Framework 4.0 & Visual Studio 2010
|

|
Pará un cachito flaco, dijiste 2010 y 4.0? Así es. Asi que empieza a hacerte a la idea de que el VS2008 es tiempo pasado y parte de los libros de historia de la computación. Sé que el siguiente comentario va a hacer que los fans de Eclipse vengan a buscarme con las antorchas encendidas, pero no tengo duda alguna de que Visual Studio es por mucho, la mejor herramienta de desarrollo jamás creada. |
Hacer espacio en el disco duro antes de la descarga. Esta máquina virtual pesa 7GB comprimida y 25GB descomprimida. Es por eso que Microsoft sugiere tener al menos 40GB libres en disco y 1GB de memoria RAM dedicada a la máquina virtual, y
Este es un CTP viejo (Septiembre 2008) configurado para expirar el 31 de Diciembre de 2008. Si lo quieres usar ahora, se debe hacer los cambios sugeridos al archivo .vmc antes de abrir la máquina virtual.
y eso es todo. Así de fácil. Ahora para empezar a jugar con el CTP te recomiendo que:
Seis: Managed Extensibility Framework (MEF)
|
Managed Extensibility Framework (MEF) es una nueva librería en .NET que permite una mayor reusabilidad de aplicaciones y componentes. A través de MEF, las aplicaciones .NET pueden pasar de ser estáticamente compiladas a dinámicamente compuestas, en resumen, se pueden componer aplicaciones que ya hayan sido terminadas sin necesidad de recodificarlas, siempre y cuando hayan sido desarrolladas bajo este modelo. Si te interesa desarrollar aplicaciones que se puedan extender a través de composiciones, entonces MEF lo que estabas buscando.
|
|
Hasta ahora he visto varias demos de MEF y todo lo que he visto hasta ahora me ha gustado. MEF actualmente está en versión Alpha y el Preview 4 está disponible para descarga en el sitio de MEF en CodePlex.
Si te interesa conocer más sobre estos proyectos te sugiero visitar estos blogs:
-
-
Brad Abrams' Blog. Brad es también uno de los autores del libro Framework Design Guidelines, y estaré asistiendo a su sesión en el MIX llamada "Building Amazing Business Centric Applications with Microsoft Silverlight 3" el próximo 18 de Marzo.
-
Glenn Block's Blog. Tuve la opotunidad de ir a una presentación de MEF por Glenn y él es un experto en la materia. El día de la presentación estaba recuperándose de un problema de salud, pero aún así completó la presentación.
Siete: ASP.NET Model-View-Controller (MVC) Framework
|
Otro de mis favoritos. No sé por donde empezar a hablar sobre ASP.NET MVC Framework, hay demasiadas cosas que decir sobre el tema. Algo que encuentro interesante es que en los foros de discusión existe una rivalidad entre los defensores de ASP.NET MVC y los de ASP.NET WebForms... |
Esto me hace recordar que cuando presento una demo y pregunto a la audiencia si debo hacerla en Visual Basic o C# la gente empieza a discutir sobre un tema sobre el cual no tiene sentido seguir discutiendo.
Y bueno, aquí algunos puntos que considero importante mencionar respecto a la guerra no declarada entre MVC y WebForms:
-
De ninguna manera veo a MVC como un reemplazo de WebForms. Es sólo otra manera de hacer las cosas, al final el resultado será una aplicación Web independientemente de la forma cómo esté desarrollada. Hay un viejo dicho en mi país (aunque creo que en todo el mundo) que dice que "Todos los caminos llevan a Roma". Lo cual es falso, pero ustedes entienden lo que quiero decir.
-
MVC es una forma genial de desarrollar aplicaciones Web, al igual que WebForms. Sólo tienes que aprender a apreciar el arte en todas sus formas.
-
Mirar a las personas discutir si deben usar C# o Visual Basic para desarrollar una demo es divertido. Siempre pregunto, pero igual siempre termino desarrollando la demo en los dos lenguajes para satisfacer a la audiencia.
-
Porqué existe aún la discusión sobre C# y Visual Basic? Me explico, si somos desarrolladores multi-lenguaje, simplemente uso el lenguaje que es apropiado para el reto en cuestión.
Ok, el tema es MVC. Existe en Internet mucha información y recursos sobre este tema que está ganando popularidad. Si estás buscando empezar te recomiendo que no olvides estos importantes sitios y recursos:
-
ASP.NET MVC Official Site. Descargas, Tutoriales, Videos, Galería, Aplicaciones de Ejemplo, Kits de Aprendizaje, Blogs... todo lo necesario para empezar en este deporte.
-
Phil Haack's Blog. Phil es Senior Program Manager en el equipo de Microsoft encargado de desarrollar el framework ASP.NET MVC. Dentro de pocos días Phil estará presentando dos sesiones en el MIX a las cuales estaré asistiendo. Las sesiones son:
-
Esos son los títulos reales de las sesiones de Phil. Parece que va a estar muy interesante.
Ocho: ASP.NET Dynamic Data
Alguna vez has pensado que debería haber una manera más fácil de desarrollar aplicaciones o módulos que consisten en operaciones CRUD (Create, Read, Update, Delete) sobre un modelo de datos? Hemos estado trabajando con operaciones CRUD desde... digamos muchos años. En mi clase en el colegio yo era el único geek. Probablemente pienses que esto era muy triste pero en realidad no lo fue. De hecho, yo era probablemente el estudiante más feliz y adinerado en mi clase. Cada mes en la clase de programación enviaban un proyecto que consistía básicamente en desarrollar alguna aplicación tipo CRUD. A veces era un sistema de facturación o un mantenimiento de clientes, pero siempre era lo mismo: un sistema que te permita crear, leer, actualizar y borrar sobre un modelo de datos. Eramos alrededor de 20 grupos de proyecto y yo cobraba 50 mil sucres para completar la misión. Después de un fin de semana de escribir código entregaba 20 discos de 3 1/4 y hacía un millón de sucres, cada mes. En aquella época un dólar de Estados Unidos era alrededor de 5000 sucres de tal forma que yo hacía unos 200 dólares mensuales trabajando un fin de semana al mes.
En la universidad todo fue muy diferente. Los proyectos fueron más retadores y la universidad que yo escogí estaba llena de geeks. Así es como termina la historia. Dynamic Data te permite construir una aplicación Web totalmente funcional basada en el modelo de datos. El modelo de datos por defecto es LINQ to SQL pero se puede usar también Entity Framework. Existe también una discusión entre los aficionados de LINQ To SQL y Entity Framework, pero en este caso prefiero Entity Framework por razones que pienso escribir en futuros posts.
El punto principal es que existen cierto tipo de aplicaciones Web y módulos que pueden ser construidos automáticamente porque en estos casos el Modelo de Datos es la aplicación. Características como filtrado y navegación inteligente son tomadas del modelo pero pueden ser también personalizadas en las plantillas de Dynamic Data. Al final, se puede construir una aplicación en cuestión de minutos.
No existe instalador para esta característica. Dynamic Data es parte del .NET Framework version 3.5 SP1 Release y también se pueden encontrar varios ejemplos publicados en Codeplex en este link: Dynamic Data 4.0 Preview 2 samples.
Nueve: Parallel Extensions to LINQ (PLINQ)
|
PLINQ es una e las muchas iniciativas del grupo de Concurrent Programming en Microsoft, y por ahora es aplicable a LINQ to Objects con algunas limitaciones. También se trata de un componente caja negra y es extremadamente simple de usar. La complejidad no está en cómo se usa sino en entender que pasa cuando se ejecutan consultas en múltiples procesadores.
|
|
Esta es una opción muy importante a la hora de incrementar el rendimiento de las aplicaciones .NET al sacar ventaja del procesamiento en paralelo. Si quieres probar PLINQ está disponible en el CTP de Visual Studio 2010 (tratado en el punto 5 de este post) y también hay un ejercicio dedicado a PLINQ en el Visual Studio 2010 CTP Training Kit.
Si quieres mantenerte al tanto de lo que sucede con PLINQ te recomiendo suscribirte al blog de Daniel Moth.
Diez: Entity Framework
|
ADO.NET Entity Framework es un framework para el modelamiento de entidades de datos para el .NET Framework. ADO.NET Entity Framework está incluido en el Service Pack 1 del .NET Framework 3.5 y también en el Service Pack 1 de Visual Studio 2008.
La imagen es de la portada del libro de Julia Lerman sobre Entity Framework que compré y estará llegando a mi oficina el próximo miércoles. Fui a una presentación de Julia sobre EF la semana pasada y me enteré de muchas cosas buenas que se vienen para EF, aunque ya había decidido cambiarme a EF como my modelador de entidades de datos oficial por razones que voy a extender en este blog más adelante.
|
También estoy haciendo revisión técnica del libro Professional ADO.NET 3.5 with LINQ and the Entity Framework por Roger Jennings, así que tengo mucha información sobre la cual escribir en este tema.
Hay más información sobre Entity Framework en los siguientes links:
Ok. Ahora es Domingo por la noche. (Update: Realmente es Martes al mediodía, pero lo estoy traduciendo de su original en inglés). He escrito esto desde el aeropuerto en Seattle, luego en el aeropuerto de Los Angeles, en las nuevas oficinas de Oshyn en LA a las cuales nos mudaremos este fin de semana y lo estoy terminando en las actuales oficinas de Oshyn. Espero seguir escribiendo un poco más en los próximos días y me he dado cuenta que hay muchas cosas que no sé cómo traducirlas del inglés al español o que simplemente creo que no se pueden o deben traducir. Mis disculpas a mis amigos puristas del idioma español.