posts - 34,  comments - 107,  trackbacks - 4

Bueno... Ahora que el .NET Framework 3.0 ya es oficial, pienso que es el momento de plantearse algunas reflexiones.

Años atrás, por allá el 2004, cuando Vista todavía era Longhorn se nos comentaban los tres grandes pilares sobre los qualses se sustentaría el nuevo sistema operativo: Indigo, Avalon y WinFS. Al cabo de poco tiempo supimos que WinFS desaparecería del sistema (aunque parte de su funcionalidad se incorporaría, aunque basada más en un index server o similar que en SQL Server). Recuerdo por aquellos tiempos un foro de arquitectos celebrado en Madrid, el año 2005 (no recuerdo exactamente cual). Hablaron primero Bill Gates en persona (sobre lo maravilloso que sería el mundo con Longhorn), luego creo recordar alguien de Informática el Corte Inglés nos comentó sobre un Framework que habían elaborado para trabajar en .NET y finalmente Catherine Heller habló sobre la filosofía de Smart Client. Bueno, el caso es que antes de que hablara el amigo Bill, alguien de Microsoft España, comentó que en Longhorn habían girado la tortilla: si el .NET Framework se había construído sobre Windows, dijo, la nueva versión de Windows se había construído sobre el .NET Framework. Y que la nueva API de Longhorn se llamaba WinFX y era enteramente managed. Bueno, la verdad es que por más increíble que sonara esa frase, la dijo muy serio y convencido y estoy seguro que alguien se lo creyó.

A la postre se demostró que era falso, claro. No pasó mucho tiempo que después de anunciar el enésimo retraso de Vista, para calmar al personal dijeron que Avalon e Indigo estarían en también en XP y que de paso iban a perder esos nombres tan molones y pasarían a llamarse Windows Presentation Foundation y Windows Communication Foundation. En aquel momento empezaron a surgir las primeras dudas: que aportará de nuevo Longhorn (o ya era Vista?) si de sus tres nuevos pilares fundamentales uno ya no está y los otros dos también estaran en XP?

Y finalmente hace poco el cambio de nombre: para no marear la perdiz WinFX se llamaría .NET Framework 3.0 (la verdad es que había cierta confusión sobre que versión de Frameork se incluiría con Vista) y ahora, hace nada, el anuncio que el .NET Framework 3.0 ya es oficial.

Hasta ahí la historia un poquillo resumida. Mis preguntas básicamente son... que pasará con .NET cuando salga Vista? Me explico: Vista incorpora bastantes novedades (sí, sí, al final se quedó sin la exclusiva de WinFS, Avalon e Indigo pero trae cosas muy interesantes), pero de momento sólo estan disponibles via código nativo. Por ejemplo, para interactuar con el Restart Manager, o para efectos de Aqua (como transperencias) o para acceder a las nuevas Dialog Boxes se tiene que llamar a P/Invoke. Básicamente al salir .NET Framework 3.0 en XP y 2003 todas las novedades exclusivas de Vista han quedado fuera del .NET Framework. Y que hará Microsoft a partir de ahora? Va a seguir excluyendo todas esas novedades del .NET Framework? Me gustaría poder programar una aplicación completamente en código manejado, sin tener la necesidad de llamar a P/Invoke para poder aprovechar todas las novedades de Vista (repito, algunas muy interesantes). Hasta ahora, en código nativo, cuando MS sacaba un nuevo Windows, se limitaba a añadir (de forma completamente desordenada, por cierto) un nuevo conjunto de funciones con el API nuevo. Era responsabilidad del desarrollador comprobar que la versión de Windows sobre la que se estaba ejecutando el programa contenía la función del API que se quería llamar. Pero con el .NET Framework (al menos de momento) eso no es así: yo programo un sistema con el Framework 3.0 y espero que funcione en cualquiera sistema que tenga el Framework 3.0 instalado... Como lo hará Microsoft para incorporar todas las novedades de Vista al .NET Framework sin romper la compatibilidad con sistemas anteriores? Es más... lo hará?

En fin... sólo son reflexiones de media mañana...
Un saludo ;-)

posted on Wednesday, November 15, 2006 10:30 AM

Post a new comment about this topic
Title  
Name  
Url

Comments   
Protected by Clearscreen.SharpHIPEnter the code you see: