ADF es la implementación de JSF de Oracle, el siguiente video, nos da un recorrido desde cero, mostrando además todo el potencial de ADF; esta inglés, pero a diferencia de otros videos la pronunciación es lo suficiente buena y clara como para que cualquier persona pueda entenderlo al completo.
Dura unos 47 minutos.
- FIN -
Showing posts with label ajax. Show all posts
Showing posts with label ajax. Show all posts
23 May 2009
18 May 2009
Webinar - ICEfaces y JSF 2.0
ICEfaces es una implementación de JSF bastante popular y muy usada por su integración transparente con Ajax/Ajax Push, el siguiente video muestra las posibilidades que tiene la tecnología y conceptos relacionados con Ajax Push.
- FIN -
- FIN -
05 May 2009
Frameworks RIA basados en AJAX
Echo3, YUI, GWT y RAP .... por si fuera poco, aquí dejo "más madera" para aquellos que les guste divertirse con aplicaciones RIA hechas con AJAX (es decir que no usen Flash, Silverlight o JavaFX)
Echo3
Echo3 permite desarrollar aplicaciones web basadas en AJAX, en el lado servidor con Java o en el lado cliente con JavaScript. Las aplicaciones son desarrolladas orientadas a componentes y con un API que nos permite manejar sus eventos; de manera similar a las aplicaciones de escritorio, eliminando de esta manera la naturaleza basada en páginas de los navegadores. Para los desarrolladores Echo trabaja como un toolkit de interfaz de usuario.
Tal vez su característica más notable es la capacidad de crear aplicaciones completas del lado cliente utilizando JavaScript, sin necesitar un servidor de aplicaciones y además con la capacidad de ejecutarse enteramente offline.
Actualmente Netbeans tiene un plugin para Echo2 y para Eclipse existe un plugin llamado EchoStudio, el cual es de pago.
Enlaces relacionados:
Yahoo User Interface
La libreria YUI es un conjunto de utilidades y controles escritos en JavaScript para construir aplicaciones web RIA usando técnicas como DOM scripting, DHTML y AJAX; consume de forma natural datos en formato JSON; tiene una excelente documentación y ejemplos que hacen fácil el empezar a usarlos, lo único que me costo (a título personal) es aplicar estilos.
Actualmente existe un plugin para Eclipse llamado Aptana IDE.
Enlaces relacionados:
Google Web Toolkit
Framework desarrollado por Google, permite desarrollar aplicaciones web basadas en AJAX, programando y depurándolas usando Java con el IDE de preferencia. Al finalizar la escritura de nuestra aplicación (escrita en Java), GWT compila y traduce dicho programa a JavaScript y HTML compatible con cualquier navegador web.
Tiene su propio IDE basado en python, pero también tiene un plugin que se integra con Eclipse.
Enlaces relacionados:
Lo que no me gusta nada de GWT es que tenemos que escribir la GUI mediante código JAVA, me recuerda a otro framework similar que utilice en 2004, del cual un buen día elegí olvidarme su nombre :-P
Eclipse Rich Ajax Platform
RAP(a parte de ser un estilo musical :-p) nos permite crear aplicaciones RIA con front-ends Java, usando el modelo de componentes de Eclipse basado en el estándar OSGi(es decir : trata de llevar OSGi al lado cliente). OSGi es orientado a servicios, y basado en componentes, además promociona la interoperatibilidad de aplicaciones y servicios.
Su IDE es Eclipse.
Enlaces relacionados:
RAP y GWT son diferentes ya que RAP ejecuta la lógica en el servidor y genera JavaScript para los controles en tiempo de ejecución (NO en tiempo de compilación). Una implementación de SWT(Standard Widget Toolkit) se ejecuta en el servidor y los desarrolladores pueden extender sus vistas y perspectivas para añadir funcionalidad.
Lo mas interesante de todo esto es ver que sucedera en adelante con el matrimonio OSGi & Ajax (que merece todo un artículo de por si solo)!!!
P.D: Y todo este lio por que estoy explorando las posibilidades que me da Google App Engine (Por naturaleza GWT); en fin una cosa lleva a la otra ... y asi acabamos escribiendo a veces pequeños resumenes como este.
- FIN -
Echo3
Echo3 permite desarrollar aplicaciones web basadas en AJAX, en el lado servidor con Java o en el lado cliente con JavaScript. Las aplicaciones son desarrolladas orientadas a componentes y con un API que nos permite manejar sus eventos; de manera similar a las aplicaciones de escritorio, eliminando de esta manera la naturaleza basada en páginas de los navegadores. Para los desarrolladores Echo trabaja como un toolkit de interfaz de usuario.
Tal vez su característica más notable es la capacidad de crear aplicaciones completas del lado cliente utilizando JavaScript, sin necesitar un servidor de aplicaciones y además con la capacidad de ejecutarse enteramente offline.
Actualmente Netbeans tiene un plugin para Echo2 y para Eclipse existe un plugin llamado EchoStudio, el cual es de pago.
Enlaces relacionados:
Yahoo User Interface
La libreria YUI es un conjunto de utilidades y controles escritos en JavaScript para construir aplicaciones web RIA usando técnicas como DOM scripting, DHTML y AJAX; consume de forma natural datos en formato JSON; tiene una excelente documentación y ejemplos que hacen fácil el empezar a usarlos, lo único que me costo (a título personal) es aplicar estilos.
Actualmente existe un plugin para Eclipse llamado Aptana IDE.
Enlaces relacionados:
Google Web Toolkit
Framework desarrollado por Google, permite desarrollar aplicaciones web basadas en AJAX, programando y depurándolas usando Java con el IDE de preferencia. Al finalizar la escritura de nuestra aplicación (escrita en Java), GWT compila y traduce dicho programa a JavaScript y HTML compatible con cualquier navegador web.
Tiene su propio IDE basado en python, pero también tiene un plugin que se integra con Eclipse.
Enlaces relacionados:
- Google Web Toolkit (GWT) with Eclipse - Tutorial
- thescreencast : GWT RPC in Eclipse
- GWT : Getting started
- GWT-Ext : Showcase - Tutorial
- Tutorial de Introducción al Google Web Toolkit (castellano)
- Creating your first GWT app with Cypal Studio for GWT
Lo que no me gusta nada de GWT es que tenemos que escribir la GUI mediante código JAVA, me recuerda a otro framework similar que utilice en 2004, del cual un buen día elegí olvidarme su nombre :-P
Eclipse Rich Ajax Platform
RAP(a parte de ser un estilo musical :-p) nos permite crear aplicaciones RIA con front-ends Java, usando el modelo de componentes de Eclipse basado en el estándar OSGi(es decir : trata de llevar OSGi al lado cliente). OSGi es orientado a servicios, y basado en componentes, además promociona la interoperatibilidad de aplicaciones y servicios.
Su IDE es Eclipse.
Enlaces relacionados:
- Eclipse : Getting started
- Eclipse RAP demonstration
- Introducción a OSGi
- Construyendo webapps usando OSGi
RAP y GWT son diferentes ya que RAP ejecuta la lógica en el servidor y genera JavaScript para los controles en tiempo de ejecución (NO en tiempo de compilación). Una implementación de SWT(Standard Widget Toolkit) se ejecuta en el servidor y los desarrolladores pueden extender sus vistas y perspectivas para añadir funcionalidad.
Lo mas interesante de todo esto es ver que sucedera en adelante con el matrimonio OSGi & Ajax (que merece todo un artículo de por si solo)!!!
P.D: Y todo este lio por que estoy explorando las posibilidades que me da Google App Engine (Por naturaleza GWT); en fin una cosa lleva a la otra ... y asi acabamos escribiendo a veces pequeños resumenes como este.
- FIN -
07 August 2008
JSON vs XML una diferencia práctica
Dado el post anterior, queda un poco claro, que la utilización XML+Xpath en el lado del cliente es bastante molesta, si se desea dar compatibilidad claro!
Lo primero, no pienso entrar en una de las largas discusiones que hay entre JSON y XML; solo hablaré de la solución más adecuada para el problema expuesto.
La ventaja de este problema, es que el servicio que devolvía el XML(Servicio Web) esta dentro de la aplicación que se esta desarrollando; asi que ¿Por que no cambiar y utilizar JSON basandonos en los principios de REST?
La solución más adecuada ("hacerlo correcto") pasó por crear un recurso que devolviera los datos en formato JSON, así no dependemos de los soportes propios que cada navegador da a XML, ya que JSON es soportado directamente por todos ellos (al menos los principales).
Las modificaciones realizadas fueron:
Finalmente :
La respuesta final del servicio quedo así (mucho más compacta):
{"x":"12.3456","y":"-4.789"}
El codigo javascript final quedo así (mucho más legíble):
var objJSON = txtJSON.parseJSON();
parent.setUtmX(objJSON.x);
parent.setUtmY(objJSON.y);
A continuación pongo un enlace a un visor de objetos JSON, el cual recibe un texto en este formato, lo convierte, y luego muestra sus propiedades y métodos en tablas.
Visor de objetos JSON

- FIN -
Lo primero, no pienso entrar en una de las largas discusiones que hay entre JSON y XML; solo hablaré de la solución más adecuada para el problema expuesto.
La ventaja de este problema, es que el servicio que devolvía el XML(Servicio Web) esta dentro de la aplicación que se esta desarrollando; asi que ¿Por que no cambiar y utilizar JSON basandonos en los principios de REST?
La solución más adecuada ("hacerlo correcto") pasó por crear un recurso que devolviera los datos en formato JSON, así no dependemos de los soportes propios que cada navegador da a XML, ya que JSON es soportado directamente por todos ellos (al menos los principales).
Las modificaciones realizadas fueron:
- Crear un recurso(uri) en lugar de ws que devolviera los datos en formato JSON
- Recoger la respuesta de la petición AJAX como texto
- Utilizar el parser de JSON de javascript(json.js)
- Utilizar directamente las propiedades del objeto JSON
Finalmente :
La respuesta final del servicio quedo así (mucho más compacta):
{"x":"12.3456","y":"-4.789"}
El codigo javascript final quedo así (mucho más legíble):
var objJSON = txtJSON.parseJSON();
parent.setUtmX(objJSON.x);
parent.setUtmY(objJSON.y);
A continuación pongo un enlace a un visor de objetos JSON, el cual recibe un texto en este formato, lo convierte, y luego muestra sus propiedades y métodos en tablas.
Visor de objetos JSON
- FIN -
04 August 2008
selectSingleNode Mozilla e IE
Las funciones selectNodes y selectSingleNode son muy útiles para seleccionar nodos, en objetos XML utilizando sentencias XPath; ambas se pueden encontrar dentro de IE, pero NO dentro de FireFox (Mozilla) la cual ofrece otra función llamada evaluate.
Por ejemplo, si tenemos una página que utiliza AJAX, que recoge la respuesta de un servidor y la trata como un documento xml, y además deseamos acceder directamente a sus nodos utilizando XPath, para rellenar o validar algunos campos; tenemos el problema de la "compatibilidad de navegadores".
var req = new XMLHttpRequest();
req.open("GET", "http://miserver/content/coordenadas.xml", false);
req.send(datos);
var xml = req.responseXML;
El contenido de la variable xml sería la siguiente estructura:
<?xml version="1.0" encoding="utf-8">
<coordenadas>
<x>12.3456</x>
<y>-4.789</y>
</coordenadas>
Para acceder al valor de x desde IE sería algo así (funciona):
var x = xml.selectSingleNode("//X").text;
Para acceder al valor de x desde Mozilla sería así (NO FUNCIONA):
var nsResolver = xml.createNSResolver
( xml.ownerDocument == null ?
xml.documentElement :
xml.ownerDocument.documentElement);
var xIterator = xml.evaluate("//X", xml, nsResolver,
XPathResult.ANY_TYPE, null );
La solución
Libreria útil para utilizar selectNodes y selectSingleNode en Mozilla:
http://km0.la/js/mozXPath/
Enlaces Mozilla:
http://developer.mozilla.org/en/docs/DOM:document.evaluate
http://developer.mozilla.org/en/docs/XPathResult
http://developer.mozilla.org/en/docs/Introduction_to_using_XPath_in_JavaScript
http://www.anieto2k.com/2006/12/10/usando-xpath-desde-javascript/
- FIN -
Por ejemplo, si tenemos una página que utiliza AJAX, que recoge la respuesta de un servidor y la trata como un documento xml, y además deseamos acceder directamente a sus nodos utilizando XPath, para rellenar o validar algunos campos; tenemos el problema de la "compatibilidad de navegadores".
var req = new XMLHttpRequest();
req.open("GET", "http://miserver/content/coordenadas.xml", false);
req.send(datos);
var xml = req.responseXML;
El contenido de la variable xml sería la siguiente estructura:
<?xml version="1.0" encoding="utf-8">
<coordenadas>
<x>12.3456</x>
<y>-4.789</y>
</coordenadas>
Para acceder al valor de x desde IE sería algo así (funciona):
var x = xml.selectSingleNode("//X").text;
Para acceder al valor de x desde Mozilla sería así (NO FUNCIONA):
var nsResolver = xml.createNSResolver
( xml.ownerDocument == null ?
xml.documentElement :
xml.ownerDocument.documentElement);
var xIterator = xml.evaluate("//X", xml, nsResolver,
XPathResult.ANY_TYPE, null );
La solución
- incorporar dentro de mi página la libreria mozXPath.js
- distinguir si estoy utilizando IE o MoRzilla
if (window.ActiveXObject){
x = xml.selectSingleNode("//X").text;
} else if (document.implementation && document.implementation.createDocument){
x = xml.getElementsByTagName("X")[0]
.selectSingleNode("text()").nodeValue;
}
No pienso decir gran cosa de la funcion evaluate, que cada cual la pruebe y la critique; a mí personalmente su documentación me ha hecho perder el tiempo.Libreria útil para utilizar selectNodes y selectSingleNode en Mozilla:
http://km0.la/js/mozXPath/
Enlaces Mozilla:
http://developer.mozilla.org/en/docs/DOM:document.evaluate
http://developer.mozilla.org/en/docs/XPathResult
http://developer.mozilla.org/en/docs/Introduction_to_using_XPath_in_JavaScript
http://www.anieto2k.com/2006/12/10/usando-xpath-desde-javascript/
- FIN -
02 October 2007
Ajaxify aplicaciones JSF(1.2) con NetBeans 5.5.1
La implementación de JSF que trae este IDE no trae incorporado Ajax, lo cual puede ser un inconveniente y a la vez una razón para decantarse por otra, sin embargo existe un componente llamado Dinamic Server Faces, el cual nos permite "Ajaxzinizar / Ajaxify" nuestras aplicaciones JSF (añadir funcionalidad Ajax).
Lo primero de todo es descargar el componente Dinamic Server Faces desde el update center de Netbeans.
Tools -> Update Center
Una vez descargado habría que instalarlo.
Tools -> Component Library Manager ->Import, luego habría que navegar para indicarle el fichero, por defecto se encuentra dentro del directorio de instalacion\rave2.0\samples.


Después, sobre el proyecto donde deseamos utilizar Ajax habría que añadir la libreria.

Elegir el componente Dinamic Server Faces.
En el siguiente link se puede encontrar toda la información oficial necesaria sobre los Dynamic Faces.
Lo primero de todo es descargar el componente Dinamic Server Faces desde el update center de Netbeans.
Tools -> Update Center
Una vez descargado habría que instalarlo.
Tools -> Component Library Manager ->Import, luego habría que navegar para indicarle el fichero, por defecto se encuentra dentro del directorio de instalacion\rave2.0\samples.
Después, sobre el proyecto donde deseamos utilizar Ajax habría que añadir la libreria.
Elegir el componente Dinamic Server Faces.
En el siguiente link se puede encontrar toda la información oficial necesaria sobre los Dynamic Faces.
Subscribe to:
Posts (Atom)