09-12-2006 Iñaki Sanchez
He soñado con que Microsoft sacaba un día algo novedoso, en que sería algo original y lo propusiera como un estándar. Y, en cambio, me he encontrado con XAML. Microsoft ha presentado XAML como una de las novedades presentes en el Windows Presentation Framework, que viene con la nueva máquina virtual.
Entre otras cosas, XAML permite diseñar la interfaz gráfica, ya sea de una aplicación de escritorio o una web, mediante un xml, que luego se carga haciendo uso del explorador web Internet Explorer. Precisamente, esto cambia la concepción que tenía Microsoft sobre las aplicaciones de escritorio, donde la interfaz se definía mediante uso de clases (tipo SWING o AWT de java).
¿Pero realmente esto es algo nuevo?. Hace tiempo, existió XUL. Al igual que XAML, también define interfaces mediante xml, sólo que en el caso de XUL, en vez de usar Internet Explorer para visualizar las interfaces, se usa Mozilla Firefox. Aunque las diferencias entre XUL y XAML no sólo se reduce a diferentes tags con distintos nombres (XUL utiliza css para definir ciertas cosas), en distintos momentos se ha hablado de usar XSLT para pasar de XUL a XAML y viceversa.
Se han vertido distintas opiniones en torno a este concepto (en inglés):
Viendo todo esto, sólo queda esperar como es aceptado XAML por la comunidad. XUL no ha sido aceptado de forma amplia para desarrollar aplicaciones de escritorio (la versión definitiva de la especificación fue publicada en el 2001, y no se han publicado mejoras desde entonces), y uno se pregunta si las diferencias que Microsoft aporta a XAML (como, por ejemplo, un motor capaz de crear animaciones y efectos) son suficientes para que no termine igual que XUL.
1. mm | Diciembre 10th, 2006 at 8:12 pm
Casi todos los sistemas de interfaces de usuarios se pueden definir como XML: swing, gtk, swt, winForms,qt,…
2. Iñaki Sanchez | Diciembre 11th, 2006 at 1:23 pm
Vale. He usado definir como un término ambiguo. Lo que quería expresar es lo siguiente:
Mientras que SWING, AWT y .Net (anteriores versiones) necesitaban escribir clases (.java, .vb o .cs) y los elementos gráficos como botones, tablas y demás eran atributos de esa clase , con XAML no es así.
Con XAML, el xml puede ser interpretado, usandose un visor para mostrar la interfaz, o compilado, siguiendo el método tradicional (clases, atributos).
Así pues, para crear interfaces mediante xml, anteriormente se debía usar herramientas de terceras partes para poder traducir el xml (y si hubiera varias herramientas, habría varios tipos de xml, ya que cada una seguiría su especificación) a las clases que conforman la interfaz, y esto no permitiría que la máquina virtual directamente interpretase el xml y lo mostrase sin utilizar una clase intermedia.
EDITO: Mirando un poco por ahi, me he encontrado con un parser que hicieron empleados de Microsoft en su día:
3. electrocucaracha | Abril 18th, 2008 at 11:09 pm
WPF no solo se reduce ejecutarse dentro del explorador, para eso nacio Silverlight, mas bien es aprovechar un poco el conocimiento de separación de capas tan utilizado en web. Esto beneficiara el desarrollo en paralelo permitiendo a los diseñadores no limitarse a las posibilidades que ofrecen los controles ni requerir conocimientos avanzados de estos. Con WPF da un gran avance hacia el diseño de aplicaciones de escritorio.