lunes, 14 de abril de 2008

WEBORB

WebOrb es la version gratuita para el LiveCycle Data Services, permite objetos remotos.

http://www.themidnightcoders.com/weborb/


El LiveCycle Data Services contiene un remote objects que son gratuitos, lo que es de pago es el acceso a traves de jdbc.

martes, 8 de abril de 2008

Ejemplo de BlazeDS

Este tutoriel se muestra cómo crear una aplicación de gato en Flex a l’ del servicio de messaging de BlazeDS.

blazeDS

D’abord pueden cargar a distancia aquí a BlazeDS. Tienen en cuenta que las fuentes están tan disponibles :)
Configuración servidor

1 - en su directorio Blazeds, abren el fichero WEB-INF/flex/messaging-config.xml en un editor de texto. Si utilizan a BlazeDS con el servidor Tomcat integrado, a l’application Red BlazeDS se sitúa aquí: “install_dir/tomcat/webapps”. El fichero messaging-config.xml contiene los parámetros de configuración para el Messaging Servicio. Si abren el fichero services-config.xml del mismo directorio, verán que el fichero “messaging-config.xml” se incluye por referencia en este fichero. El fichero “services-config.xml” permite un configurationhaut nivel de BlazeDS. Generalmente, él referencia en este fichero de los ficheros de configuración para definir servicios específicos, como el messaging. Él definido también de los parámetros sistemas como los “messaging channels” y las dificultades de seguridad en este fichero.

2 - en el fichero messaging-config.xml, exactamente antes del l’élément , añaden l’élément siguiente y salvaguardan el fichero:

< destino id=”chat”/>

3 - el destino en el servidor definido l’endroit dónde los clientes Flex van a ser publicados y a qué clientes Flex van a poder recibir dado que se publicó los mensajes. Tienen en cuenta qu’il allí tiene un channel por defecto nombrado my-polling-amf configurado en el fichero messaging-config.xml. BlazeDS utiliza los “channels” para enviar y recibir los datos entre los clientes Flex y el servidor. El channel por defecto se define en el fichero services-config.xml y se hace referencia solamente en el fichero messaging-config.xml. Este channel particular utiliza la Acción Mensaje Formato (AMF) and investigación al servidor para obtener los nuevos mensajes que llegan a su destino. Además de channels de “sondage”, BlazeDS proporcionado también de los channels que mantienen la conexión entre los clientes y el servidor y permiten difundir flujos de datos (streaming) entre ellos.

4 - empiezan o vuelven a arrancar su aplicación servidor BlaseDS.
Desarrollo del lado Cliente en Flex

1 - en el Flex Builder 3, crear un nuevo proyecto BlazeDS como se describe aquí: http://learn.adobe.com/…

2 - nombran este proyecto chat1.

3 - en el fichero chat1.mxml que el Flex Builder creó, van a crear l’application cliente en Flex que podrá publicar mensajes hacia el gato de destino y también recibir los mensajes procedente del destino.

4 - exactamente antes del l’élément < mx:Application > en el fichero chat1.mxml, añaden un elemento < mx:Script > vacia. Pueden hacer eso copiando el siguiente código:

< mx:Script >


]]>



5 - exactamente antes del l’élément , añade el código MXML siguiente. Este código creado un Productor de mensaje y un Cliente. El Productor envía los mensajes hacia el destino y el cliente suscrito y recibe los mensajes que se envían al destino. En esta aplicación, él creado los objetos Productor y un Cliente en MXML, pero como la mayoría de los objetos Flex, pueden eventualmente crearlos en ActionScript.

< mx:Consumer id=”consumer” destination=”chat” message=”messageHandler(event.message)”/>
< mx:Producer id=”producer” destination=”chat”/>

6 - exactamente por debajo de l’élément < mx:Cons >, añaden el código MXML siguiente. Este código creado l’inter usuario para entender los mensajes, enviarlos, y ver los mensajes recibidos. El Grupo de expertos organiza los objetos niños qu’il contiene. El ControlBar también se utiliza para la disposición. El TextArea sirve para indicar los mensajes recibidos en el destino. El control TextInput permite entender los mensajes. Utilizan a continuación el control Button para enviar los mensajes hacia el destino.

< mx:Panel title=”Chat” width=”100%” height=”100%” >
< mx:TextArea id=”log” width=”100%” height=”100%”/>
< mx:ControlBar >
< mx:TextInput id=”msg” width=”100%” enter=”send()”/>
< mx:Button label=”Send B” click=”send()”/>



7 - copiar a continuación el código ActionScript siguiente bajo la sección CDATA de l’élément < mx:Script >:

importaciones mx.messaging.messages.AsyncMessage;
importaciones mx.messaging.messages.IMessage;

private function send():void{
var message:IMessage = new AsyncMessage ();
message.body.chatMessage = msg.text;
producer.send (mensaje);
msg.text = “”;

private function messageHandler(message:IMessage):void{
log.text = message.body.chatMessage “n”;
}

Este código permite de:

* Importar la clase AsyncMessage y l’inter IMessage, que se utiliza en el método send ().
* Crear el método send () que appellée en el chasquido sobre el control Button. Este método creado un nuevo AsyncMessage y le asigna una variable mensaje que está del tipo IMessage . Eso definido el valor de la propiedad message.body.chatMessage con el valor de msg.text - el texto del control TextInput. Eso llama a continuación el método send () del Productor para enviar el mensaje, y vaciar la propiedad Text del control TextInput.
* Creado el método para recuperar l’évènement messageHan (). Este método recupera l’évènement “message” cuando l’objet Cliente recibe el mensaje del destino. Este método indica el texto de message.body.chatMessage en la propiedad log.text - del control TextArea.
* Nota: Porque el método send () toma a un IMessage como argumento en este ejemplo vamos explícitamente a caracterizar a AsyncMessage hacia l’inter IMessage que se aplica. Si no quieren hacer eso, llaman producer.send () con un AsyncMessage, la conversión s’effectuera automáticamente.

8 - añaden los atributos MXML siguientes a l’élément < mx:Application > para que el Cliente Flex suscriba al destino en el comienzo de l’application:

creationComplete=”consumer.subscribe()”

9 - L’élément mx:Application debería ahora asemejar a eso:

< mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml”
creationComplete=”consumer.subscribe()” >

¡Se termina ahora el código MXML!

10 - garantizan que el servidor BlazeDS es en marcha.
11 - compilan y lanzan l’application cliente con el Flex Builder haciendo “Run > Run” en la barra de carta.
12 - abren el mismo URL en un segundo navegante.
13 - entran un mensaje en una de las dos ventanas y debería aparecer en l’a ventana.

¡Y aquí para nuestra primera aplicación Adobe Flex que utiliza BlazeDS !

Pronto pondría un nuevo tuto en línea para mostrarles cómo generar red servicios con BlazeDS…

Fuente: Adobe Learn

Fte: http://www.flex-info.fr/es/tuto-blazeds-creer-une-application-de-messaging-en-flex-avec-blaseds/20080312/

Flex Data Services 2

Como comentó Alberto en el anterior post, por fin podemos colgar las charlas celebradas en MIF ONLINE I el pasado 18 de Noviembre.

En mi caso, la charla estaba dedicada a Flex Data Services 2, la aplicación Java de servidor que permite inyectarle un poco de mágia a nuestras aplicaciones Flex dandonos la posibilidad de crear aplicaciones colaborativas, con manejo de datos avanzados, mensajería y comunicación en tiempo real a los clientes conectados, entre otras cosas...
FDS2 en ejemplos

La charla se centra en introducir los conceptos que hacen de Flex Data Services 2 una opción a tener muy en cuenta a la hora de panificar nuestras soluciones. El ejemplo principal (UserSoap Demo) muestra la mayoría de las características de FDS en acción. Hay que tener en cuenta que el código de la demo está pensado con la intención de mostrar la forma más simple de crear las funcionalidades y no se han considerado ningún tipo de arquitectura o estructura (que sería necesaria) en aplicaciones de mayor escala, ya que no era el objetivo de esta charla pero que si lo será en futuras reuniones.

A continuación la relación de enlaces correspondientes a esta charla:

* La grabación de la charla: FDS2 en ejemplos.
* Las transparencias de la charla (formato power point): FDS2 en ejemplos (slides)
* Los archivos de la aplicación de ejemplo UserSoap: UserSoap Demo. Una demo creada con Adobe Captivate 2 sobre esta demo se puede ver aquí.

Para instalar la demo UserSoap:

1. Crear la base de datos "miffds" en MySQL y usar el script de base de datos "miffds.sql", incluido en la distribución.
2. Usar como esqueleto el archivo "flex.war" que viene con la distribución de FDS2 descomprimiendolo en el disco duro local.
3. Copiar el contenido de la carpeta "flex" de esta distribución en "WEB-INF/flex" sobreescribiendo los 3 xmls que ya existen en dicha carpeta.
4. Compilar las clases java de la carpeta "src" y copiar el resultado a "WEB-INF/classes" respetando la estrucuta de paquetes. Copiar también el fichero "flexfds.properties" de src en la misma carpeta.
5. Crear un proyecto Flex en Flex Builder y copiar el contenido de la carpeta "UserSoap" en dicho proyecto. (Nota: Para compilar este proyecto es necesario el componente Spring Graph de Mark Shepherd). Puedes añadir el SWC a este proyecto para compilarlo.
6. Añade los archivos resultantes (html, SWF,...) a tu proyecto FDS y despliega el war resultante en un servidor de aplicaciones Java.

Nota: Si usas Tomcat, debes de instalar JOTM de Objectweb (una implementación de JTA), debido a que este contenedor de servlets no soporta transaccionalidad. Si usas la versión 5.5 de Tomcat, añade el archivo "context.xml" de la carpeta "META-INF" en la carpeta META-INF de tu aplicación FDS.

Fte: http://www.madeinflex.com/2006/12/20/fds2-en-ejemplos-mif-online-i/

Introduccion a Flex Data Services 2 (Live Cycle Data Services)

Nota: Actualmente Flex Data Services ha cambiado su nombre por Live Cycle Data Services

¿Qué es Flex Data Services 2?¿Para que sirve?¿Qué nos aporta?. Estas y otras muchas preguntas seguro que han pasado por la cabeza de aquellas personas fascinadas por las nuevas posibilidades que aporta Flex 2. En este artículo intentaremos dar respuesta a muchas de ellas.

Quizá FDS2 sea la pieza más valorada para aquellos que llevamos años aprendiendo a dominar el arte de la creación de aplicaciones RIA(Rich Internet Applications) debido a que resuelve muchos de los problemas que hemos ido encontrando por el camino y que hemos sufrido durante años. FDS2 aporta un workflow realmente sencillo y fácil de manejar a la hora de abordar un proyecto RIA. ¿Es posible crear RIAs sin FDS2? La respuesta es que si, pero las posibilidades del producto final no serán las mismas sin esta pieza del rompecabezas. Digamos que el grado de "riqueza" de nuestro software no será el mismo, ya que añade servicios y características directamente a nuestro producto sin necesidad de hacer practicamente nada. Por tanto, la sencillez que aporta FDS2 significa productividad y menores tiempos de desarrollo. Algo que puede ser muy significativo a la hora de planificar el coste de un proyecto. Al fin y al cabo La productividad es ahorro de dinero, y este es un lenguaje que todo responsable de un departamento de TI entiende a la perfección.

1. ¿Que es FDS2 y para que sirve?
2. RemoteObjects
3. Flex Message Service
4. Flex Data Management Service
5. Resumiendo
6. Licencias

¿Que es FDS2 y para que sirve?

Flex Data Services 2 es básicamente una aplicación Web Java (para que nos entendamos, un .war) bastante avanzada, que se instala y ejecuta en un servidor de aplicaciones (como pueden ser JOnAS, JBoss o WebLogic) como cualquier otra aplicación web. También puede funcionar en un contenedor de Servlets como Tomcat, aunque para hacer funcionar todas las características, como los Data Management Services, es necesario instalar JOTM. FDS2 es la capa intermedia que actua a modo de pegamento entre los clientes Flex y los sistemas de backend a los que seguramente tendremos que acceder en nuestras soluciones RIA(tales como LDAP, RDBMS, Sistemas de ficheros, Servidores de correo, etc...), exponiendo dichos sistemas mediante una arquitectura SOA pura.



Flex Data Services 2 - Arquitectura J2EE


Esta aplicación web nos aisla de muchos de los problemas de integración que surgen al construir Rich Internet Applications y aporta las siguientes características:

* Remote Objects: Ofrecen la capacidad de hablar con clases java directamente mediante el nuevo protocolo AMF3. Esta es la parte menos novedosa ya que se trata de la evolución del antiguo Flash Remoting. Es decir, programación orientada a llamadas remotas (RPCs).
* Flex Message Service: La arquitectura de FDS2 está orientada al mensaje y combinada con el potencial del protocolo RTMP (Real Time Message Protocol) para comunicaciones en tiempo real. Esto nos permite hacer aplicaciones de colaboración en tiempo real y "data push" a todos los clientes Flex conectados.
* Flex Data Management Service: Introduce en las RIAs la "programación orientada a datos" y la persistencia de estos en tiempo real incluso a nivel de cliente. FDMS está diseñado para que los componentes se comuniquen de forma directa con el servidor realizando las tareas CRUD más básicas (y otras más complejas como paginación, relución de conflictos,etc...) sin que nosotros tengamos que programar prácticamente nada y con la ventaja añadida del refresco de datos en todos los clientes Flex en tiempo real.

Después de años de experiencia diseñando software para construir RIAs, Adobe ha sabido crear un producto que no solo aporta nuevas posibilidades inovadoras (como la posibilidad de hacer "push" de datos al cliente o la orientación a datos), si no que simplifica las ya existentes haciendonos la vida más fácil a los que trabajamos día a día con la tecnología.

Veamos cada una de las características con más detenimiento...
RemoteObjects

Los RemoteObjects (ROs) son uno de los tres tipos de comunicación RPC en Flex. Los otros dos tipos son los componentes HTTPService (get, post y xml sobre HTTP) y WebService (servicios web basados en SOAP), los cuales forman parte del SDK gratis de Flex 2 y no necesitan de FDS2.

Hasta que salió FDS2, Los ROs eran la mejor forma de integración con el servidor. De hecho es la forma que utilizan las RIAs más actuales basadas en Flash o Flex debido a que permite hablar directamente con clases o servicios Java y pasar jerarquias de objetos entre capas (mapeo de clases AS3-Java). Gracias al protocolo AMF (ActionScript Message Format), el desarrollador puede abstraerse de la serialización y deserialización tanto en cliente como en servidor enfocandose en resolver el problema de negocio que tenga entre manos.

Un punto fundamental del exito de los ROs, sobre los Web Services basados en SOAP, es el rendimiento que ofrecen debido a que la capa de transporte está muy optimizada ya que AMF es un protocolo binario en contraposición al formato textual de un mensaje SOAP. Esto se hace evidente cuando el volumen de datos es elevado y donde AMF no tiene competencia. Por último FDS2 soporta el nuevo AMF3 cuyo rendimiento y capacidades son superiores al antiguo AMF0 usado en productos más antiguos como Flash Remoting, OpenAMF o AMFPHP.

Hasta aqui no hay nada que no conociesemos de otras versiones de Flash lo interesante o novedos comienza a partir de aquí...
Flex Message Service

El servicio de mensajería de Flex es el corazón del nuevo FDS2 y permite crear una nueva generación de RIAs colaborativas que intercambian datos en tiempo real (el ejemplo más básico sería una aplicación de chat). Gracias a la nueva arquitectura de publicación-subscripción orientada al mensaje los datos fluyen entre cliente y servidor permitiendo actualizar todos los clientes conectados mediante "push" de datos a dichos clientes (es decir la comunicación se realiza desde el servidor al cliente, al contrario de como estamos acostumbrados).



Flex Message Service - Publicación - Subscripción

El "push" de datos al cliente es posible gracias al protocolo RTMP (Real Time Message Protocol) conocido por muchos gracias a otros productos de Adobe como Flash Media Server 2. La diferencia entre FDS2 y FMS2 es que el primero solo permite usar RTMP para enviar datos, mientras que las capacidades del segundo se amplian al streaming de audio y video.

Las nuevas funciones de mensajería nos permiten enviar los datos através de "canales" basados en protocolos (como AMF o RTMP) capaces de formatear los mensajes en diferentes formas y sabores según nuestras necesidades (quizá queramos mensajes encriptados para comunicaciones seguras o tal vez mensajes "por sondeo"(polling) en vez de mensajes "push" desde el servidor.

A su vez podemos usar adaptadores (JMS, ActionSCript,...) que permiten que estos mensajes interaccionen con diferentes clientes, como por ejemplo, otras aplicaciones Flex o incluso aplicaciones Java (Swing, AWT,...) que usen JMS.


FDS2 - Arquitectura del Bus de Mensajería

Como podeis comprobar FDS2 tiene un diseño altamente desacoplado, donde cada pieza se conecta con las restantes formando un sistema realmente flexible y extendible gracias a la compenetración e interacción de las APIs de cliente y servidor. Toda la configuración de FDS2 descansa sobre ficheros XML bien estructurados que permiten tener un acceso fino a montones de características (opciones de seguridad, proxys, etc...).
Flex Data Management Service

Si FMS es una pasada, no os perdais FDMS que hace del desarrollo de soluciones software un paseo. FDMS se basa en todo lo visto anteriormente y básicamente permite crear aplicaciones "orientadas a datos" en vez de "orientadas a llamadas remotas(o RPCs)". Como era de esperar en este caso también disponemos de canales(channels) y adaptadores(adapters). En FDMS, los adaptadores definen la persistencia de los datos o como estos serán modificados (normalmente usando un gestor RDBMS aunque también podría ser una máquina remota, un sistema de ficheros). Los adaptadores que vienen por defecto son: "actionscript" (que mantiene los datos en memoria y suele tener un uso en escenarios simples), y "java-dao" (que es el usado por defecto, normalmente con una base de datos). También se incluye un adaptador para Hibernate (paquete que viene de serie en la instalación.

Si hasta ahora teniamos distintas soluciones de persistencia en el backend y middleware, FDMS extiende estas capacidades al cliente, de forma que siempre tenemos los datos sincronizados en todas las capas y en definitiva en todos los clientes Flex conectados. Lo mejor de todo es que las tareas CRUD están sistematizadas gracias a la interacción de los componentes de cliente y servidor junto con algunos XMLs de configuración. Esto hace que nosotros solo tengamos que añadir funcionalidades adicionales para completar los casos de uso que se nos presenten.


FDMS - Arquitectura de Flex Data Magement Service

Además FDMS dispone de otras muchas funcionalidades avanzadas:

* Paginación: Podemos configurar el tamaño del conjunto de datos que pidamos, de forma que FDMS se encarga de enviar automáticamente la porción de datos apropiada en cada momento según operemos con los componentes en cliente.
* Resolución de conflictos: Estos se generan cuando dos o mas usuarios están editando los mismos datos simultaneamente. FDMS nos permite decidir que hacer en estas situaciones.
* Relación de datos anidados: Es decir la gestión automática de relaciones "1 a 1", "1 a muchos" y "muchos a muchos". Se definen en el fichero de configuración XML del servidor y FDMS se encarga de todo...

Resumiendo

Si juntamos lo descrito aqui a las otras muchas posibilidades que aportan Flex 2 y el Flash Player 9 (como DataBinding o E4X), tenemos ante nosotros una tecnología realmente innovadora que une unas capacidades gráficas, de video y audio sin competencia hoy en día en el mercado. El tratamiento de los datos y su ubicuidad amplía el concepto de RIA que teníamos abarcando el intercambio de datos con el servidor. La simpleza en el desarrollo es otro factor decisivo a la hora de evaluar este producto, ya que Flex 2 está creado bajo la filosofía EoD (Ease of Development o facilidad de desarrollo).
Licencias

Lo mejor de todo es que hay diferentes versiones de FDS2 para todo tipo de escenarios. Desde una versión grátis (FDS2 Express) con toda la funcionalidad pero pensada para entornos de menor tráfico de datos, versiónes departamentales para un mayor número de usuarios y versiones empresariales donde la alta disponibilidad y la replicación es importante debido al alto número de transacciones y usuarios accediendo a nuestras aplicaciones Flex.

Por tanto, ya no hay excusa para no empezar a crear RIAs con FDS2 y Flex 2. ¿No os parece?.

Fte: http://www.madeinflex.com/2006/10/11/introduccion-a-flex-data-services-2/

Installing the latest nightly Flex 3 SDK build into Flex Builder 3

Continuing my post from the the other day, if you’re trying out Flex 3 SDK and Flex Builder 3 (codename: Moxie), you may want to consider downloading and installing a newer nightly build of the SDK so you can take advantage of all the bug fixes that happen on a daily basis. The first step is to grab the latest version of the SDK, which can be found over on the Adobe Labs site at http://labs.adobe.com/technologies/flex/sdk/flex3sdk.html. All you need to do is read the terms of use and check the check box to enable the downloads. That’s it, no logging in, or registering, just one click and go!

Currently you have a few different options of things to download:

You can download the beta 1 build of the Flex 3 SDK (67 MB ZIP, released June 11, 2007), which includes support for building Adobe AIR (codename: Apollo) applications (for more information, check out the Adobe Integrated Runtime (AIR) page on Adobe Labs). According to the “Flex 3 Planning” page on the official Adobe Flex Wiki (see http://flexwiki.adobe.com/confluence/display/ADOBE/Flex+3+Planning), You can expect to see Beta 2 ”Feature Complete” some time in late July/early August, with Flex 3 shipping in Q4, 2007 (yay!)

August 18, 2007: Updated the dates below to reflect the latest schedule.

Flex 3 milestone schedule:
Date Target
April 9, 2007 M1 Release (Alpha)
June 11, 2007 M2 Release (Beta 1)
October 2007 (was: late July/early August) M3 Release (Beta 2) - Feature Complete
Late 2007 (was: late August/early September) M4 - Release Candidate
Early 2008 (was: Q4 2007) Final Release

OK, back on topic… After reading and agreeing to the terms of use, click the check box on the Flex 3 SDK page on Labs (http://labs.adobe.com/technologies/flex/sdk/flex3sdk.html) to download a copy of the Flex SDK. Here you have a few different choices. You can download any/all of the following:

* “Flex 3 SDK Beta 1″ (which includes support for Adobe AIR).
* “Flex 3 Beta 1 Compiler Modules”. These include compiler ISAPI filters for Windows, as well as compiler modules for Apache on Windows, Macintosh, and Linux.
* “Recent Nightly Builds of the Flex 3 SDK” (Note: “The nightly builds of the Flex 3 SDK do not include support for Adobe AIR. If you require Adobe AIR support you should use the beta 1 version of the Flex 3 SDK.”).

With that out of the way, I’ll assume you already have Flex Builder 3 installed, so grab the most recent copy of the nightly build and download the ZIP file to your desktop (or somewhere easily accessible). If you’re so inclined, you can read the changelist to see which bugs have been fixed in this release. Just click on the “View” link in the Changes column and it should pop up a new browser window.

With the download complete, locate the flex_sdk_3.zip file, and expand it. You should see about 8 directories, as well as an XML file, a license.htm file and readme.htm. According to the readme.htm file (which may not be updated for Flex 3 yet), the Flex SDK contains the following directories:

* asdoc - Contains ASDoc related files. ASDoc is a command-line tool that is you can use to create HTML documentation from the
classes in your Flex application.
* bin -Contains command-line tools such as mxmlc, compc, asdoc and fdb. You use these tools to compile, debug and document Flex applications and components.
The bin/jvm.config file contains Java VM settings.
* frameworks - Contains the framework.swc file, frameworks.swc source code, and other helper files that you use to compile Flex applications.
The frameworks/flex-config.xml file includes the default compiler options.
* lib - Contains JAR files used by the compilers.
* runtimes - Contains debugger versions of Adobe® Flash® Player 9 for Linux, Macintosh, and Windows.
* samples - Contains source code for sample applications.
* templates - Contains HTML templates for Flash Player detection and history management.

With the ZIP file expanded on your harddrive, create a new folder on your harddrive. I chose “C:\dev\FlexSDK” since it is easy to find and a minimal number of letters to type. Copy each of the files and folders you just unzipped into aforementioned folder. So now you should have a folder like “C:\dev\FlexSDK\runtimes\” (where you can find the various Adobe Flash Players).

Next, start up your copy of the Flex Builder 3 beta. If you’ve made it this far and still don’t have that installed, download it from this handy URL: http://labs.adobe.com/technologies/flex/flexbuilder3/ (In a later post I’ll walk through installing the standalone version of Flex Builder now, so sit tight if you’re lost).

After Flex Builder 3 has launched, I’ve found two painless ways to add our newly downloaded SDK:

Method 1) From the main menu, select Window > Preferences to open the Preferences dialog box. Expand the “Flex” tree, and select the “Installed Flex SDKs” option. This brings up a data grid of all currently installed Flex SDKs and their locations. It also allows you to check off which SDK you want to set as the default SDK by clicking the check box on the left of the SDK name. To add a new SDK, click the “Add” button to launch the “Add Flex SDK” dialog box. This dialog box allows you to browse for a new SDK directory, as well as give it a name. In my case, I’m going to set the Flex SDK directory to “C:\dev\FlexSDK” and give it a name of “Flex SDK (Latest)” and click OK. It’s important to note that you’re adding an additional SDK here. You aren’t overwriting anything, or replacing anything. You still have the option to compile your MXML files with the previous versions of the SDKs, such as Flex 2.0.1 Hotfix 2, or Flex Moxie M2, both of which came installed with Flex Builder 3 Beta 1. After clicking OK, you return to the Installed Flex SDKs page. From here, click the check box next to “Flex SDK (Latest)”, or whatever name you used, to set it as the default SDK. This allows you to compile against the latest version of the SDK by default, yet still have the ability to compile against Flex 2.0.1 or Flex 3 SDK Beta 1 within a few clicks. You could also download a nightly build and extract it to a nested folder within your C:\dev\FlexSDK folder. For example, I could have created C:\dev\FlexSDK\build_177055 and then add each nightly build of the SDK to Flex Builder. While this may be overkill for most, it allows you to easily revert back to previous versions of the SDK if something was working in a previous build but not in newer builds.

Method 2) Right-click a project folder in Flex Builder’s Navigator tab and select Properties to open the Properties for dialog box. From here, click the Flex Compiler option on the left to see the various Flex SDKs currently configured by Flex Builder. Here, you can set the SDK that the project will compile against, or override the default SDK with a specific one (such as Flex 2.0.1 Hotfix 2, or any other installed SDK). To add a new Flex SDK from this screen, click the “Configure Flex SDKs…” link on the right to be taken back to the Preferences dialog discussed above.

That’s it. Downloading and installing new SDKs into Flex Builder is a pretty simple and straight forward process.

Good luck, and happy Flexing!

I should also mention that you can grab “Flex 2.0.1 SDK with HotFix 2″ and recent nightly builds of the Flex 2.0.1 SDK from http://labs.adobe.com/technologies/flex/sdk/flex2sdk.html (follow the same instructions as above to install the Flex 2.0.1 SDK into Flex Builder 3).

Fte: http://blog.flexexamples.com/2007/07/19/installing-the-latest-nightly-flex-3-sdk-build-into-flex-builder-3/

Que es ActionScript 3.0, caracteristicas

* Versiones anteriores
* ActionScript 3.0 se basa en ECMAScript
* Máquina virtual de ActionScript (AVM)
* Metas de ActionScript 3.0 y características

ActionScript 3.0 es un lenguaje de programación de gran alcance, orientado a objeto que significa un paso importante en la evolución de las capacidades de desarrollo en las aplicaciones. La motivación que conduce ActionScript 3.0 es crear una lengua ideal para crear Aplicaciones Ricas de Internet, que se han convertido en una parte esencial en las aplicaciones de Internet.

Versiones anteriores de ActionScript ofrecieron la energía y la flexibilidad requeridas para crear experiencias en línea muy completas. ActionScript 3.0 ahora fomenta avances en el lenguaje, proporcionando un funcionamiento magnífico y la facilidad de desarrollo para facilitar el uso altamente complejos, datasets grandes, y código orientado a objeto, basa reutilizable. Con ActionScript 3.0, los desarrolladores pueden alcanzar productividad y funcionamiento excelentes con el contenido y los usos que apuntan al usuario.

ActionScript 3.0 se basa en ECMAScript, el lenguaje de programación estandarizado internacional para scripting. ActionScript 3.0 es obediente con la especificación de la lengua de ECMAScript, tercera edición (ECMA-262). También contiene la funcionalidad basada en trabajo en curso sobre la edición 4 de ECMAScript.

ActionScript es ejecutado por la máquina virtual de ActionScript (AVM) construida en el Flash Player. AVM1, la máquina virtual usada para ejecutar el código de ActionScript de la herenciael poder de Flash Player hoy hace posible una amplia gama de medios interactivos y de usos ricos del Internet.

Sin embargo, los desarrolladores han comenzado a empujar AVM1 a sus límites; sus requisitos del proyecto ahora exigen una brecha importante. ActionScript 3.0 introduce una máquina virtual altamente optimizada nueva de ActionScript, AVM2, que excede dramáticamente el funcionamiento posible con AVM1. Consecuentemente, el código de ActionScript 3.0 ejecuta hasta 10 veces más rápidamente que el código de ActionScript.

La máquina virtual nueva AVM2 está disponible en el Flash Player 9, y será la máquina virtual primaria para la ejecución de ActionScript. El AVM1 más viejo continuará siendo apoyado por Flash Player para la compatibilidad con las aplicaciones nuevas.

Hay numerosos productos que generan el contenido y los usos apuntados en el tiempo de pasada de destello del jugador. Estos productos incorporan a menudo ActionScript para agregar interactividad y comportamiento a sus aplicaciones. En la familia de productos de Adobe, los diseñadores y los desarrolladores profesionales pudieron utilizar ActionScript dentro de varias herramientas como flash, flex, etc. La familia de producto de flex, será la primera línea de productos para tener acceso a las nuevas capacidades de ActionScript 3.0.
Metas de ActionScript 3.0 y características

ActionScript 3.0 se diseña para tratar las metas siguientes:

* Seguridad: El lenguaje soporta tipos de seguridad para que los desarrolladores puede escribir código inequívoco, fácilmente conservable.
* Simplicidad: El lenguaje es bastante intuitiva para que los desarrolladores puedan leer y escribir programas sin constantemente consultar un manual de referencia.
* Funcionamiento: El lenguaje permite a los desarrolladores escribir programas complejos y que estos funciones eficientemente.
* Compatibilidad: ActionScript 3.0 es un dialecto de ECMAScript que formaliza las características de ActionScript 2.0, agregue las capacidades de ECMAScript para XML (E4X), y unifique el lenguaje.

Fte: http://www.flex2mx.com/archives/category/general/

viernes, 4 de abril de 2008

Faq de Flex 2.0

Que es Flex?

Adobe® Flex™ 2 es la solución de desarrollo de aplicaciones más completa y potente para crear y desarrollar aplicaciones de Internet sofisticadas (RIA, del inglés Rich Internet Applications) en la empresa y en la web. Permite a las empresas crear aplicaciones personalizadas y ricas en elementos multimedia que mejoran notablemente la experiencia del usuario y que están revolucionando la manera en que las personas interactúan con la web.

Que es Flex Builder

Adobe Flex Builder™ es un entorno de desarrollo integrado basado en Eclipse™ para el desarrollo de aplicaciones de Internet sofisticadas (RIA) que combina la riqueza de aplicaciones de escritorio con el ámbito multiplataforma de la Plataforma de interacción de Adobe. Flex Builder permite a los desarrolladores construir rápidamente una lógica sofisticada para el cliente que se integra con XML, servicios web o con Flex Data Services. Gracias a las sofisticadas herramientas de diseño y de maquetación, los diseñadores de interfaces también pueden crear interfaces de aplicaciones más sofisticadas y más útiles con una apariencia personalizada.

Que es Flex Data Services

Flex Data Services ofrece un potente conjunto de funciones de gestión de datos para el servidor que permite a los desarrolladores proporcionar rápidamente aplicaciones Flex con grandes volúmenes de datos. Flex Data Services, que se implanta como una aplicación web J2EE estándar, mejora el marco de trabajo Flex del cliente proporcionando una conectividad de datos de alto rendimiento con los datos y la lógica empresarial existentes del servidor. Basándose en una arquitectura de mensajería contundente, Flex Data Services se integra con el middleware estándar existente y proporciona servicios que automatizan la sincronización de datos entre cliente y servidor, añaden compatibilidad para la transmisión de datos en tiempo real y para la mensajería pub/sub, y habilitan las aplicaciones colaboradoras y conectadas ocasionalmente.

Que se puede hacer con Flex?

Aplicaciones de ejemplo http://www.adobe.com/devnet/flex/?tab:samples=1

Donde puedo descargar Flex

Puedes descargar una copia de evaluación en https://www.adobe.com/cfusion/tdrc/i...m?product=flex


Existen Comunidades o Blogs en Español que traten temas de Flex?

Si, algunos ejemplos

MadeInFlex.
Riactive
Klr20mg

por nombrar algunas
__________________
Blog Flash/Flex/Apollo | Desktoptwo | Go Host'em

¿Cuáles son los lenguajes utilizados para el desarrollo de aplicaciones Flex?

MXML

Al igual que HTML, MXML es un lenguaje de marcas que describe las interfaces del usuario que exponen contenido y funcionalidad. A diferencia de HTML, MXML proporciona abstracciones declarativas para la lógica de niveles de presentación y enlaces entre la interfaz del usuario y los datos del lado del servidor. MXML ayuda a elevar al máximo la productividad del desarrollador y aprovechar la reutilización de la aplicación porque separa nítidamente la capa de presentación, de la capa de la lógica del negocio.

El desarrollo con MXML se basa en el mismo proceso iterativo que se utiliza para otros tipos de archivos de aplicaciones web, como HTML, JSP, ASP y ColdFusion Markup Language (CFML). Desarrollar una aplicación con MXML es sencillísimo: se abre el editor de texto, se escriben las etiquetas, se guarda el archivo, y se abre el URL del archivo en un navegador web.

Asimismo, los archivos MXML son archivos XML ordinarios, de modo que eso le permite escoger de entre un amplio abanico de entornos de desarrollo. Se puede desarrollar con un editor de texto sencillo, con un editor de XML exclusivo, o con un entorno de desarrollo integrado (IDE) que sea compatible con la edición de texto. Y como MXML se ajusta a la definición de esquema XML estipulada por el World Wide Web Consortium (W3C), también puede usar la edición estructurada, el coloreado de código y las sugerencias de código (según lo que permita su editor).

Fuente: http://www.adobe.com/es/products/fle...15_tech_wp.pdf

ActionScript 3.0

ActionScript es un lenguaje de programación potente orientado a objetos del entorno de tiempo de ejecución de Adobe® Flash® Player. El lenguaje de programación estándar en el ámbito internacional, ActionScript 3.0, basado en ECMAScript, promueve avances del lenguaje para ofrecer a los desarrolladores un modelo de programación potente para aplicaciones sofisticadas de Internet (RIA). Los desarrolladores pueden conseguir un magnífico rendimiento y sencillez en los desarrollos, lo que facilita aplicaciones muy complejas, gran cantidad de datos y bases de código reutilizable orientadas a objetos. Se ejecuta con la nueva máquina virtual ActionScript (AVM2) en Flash Player 9; ActionScript 3.0 ofrece un rendimiento avanzado para la nueva generación de aplicaciones RIA.

ActionScript 3.0 cumple con el estándar ECMAScript Edition 3 (ECMA-262).

• ECMAScript para XML (E4X) permite la manipulación sencilla de documentos XML gracias a una sintaxis familiar.

• Las expresiones regulares ahorran tiempo de codificación en la búsqueda de cadenas y en los procedimientos de manipulación.

• Eventos DOM Nivel 3 ayuda a los desarrolladores a mantener un código orientado a objetos mejor mediante el uso del modelo de eventos estándar del consorcio W3C.

• El espacio entre nombres y los paquetes mejoran la organización del código y fomentan una estructura de aplicaciones lógica.

• El perfeccionamiento de la depuración y los perfiles de los datos reducen el tiempo de pruebas y facilitan la integración de aplicaciones Flash en entornos de prueba automatizados.

• La gestión de errores y las excepciones mejoradas proporcionan al desarrollador aplicaciones más seguras y potentes.

Nueva máquina virtual

Flash Player 9 incluye una nueva máquina virtual ActionScript (AVM) altamente optimizada llamada AVM2. La nueva máquina virtual, construida desde la base de que sea compatible con la nueva generación de ActionScript, se ha diseñado para ofrecer el rendimiento y las funciones de modo que se cubran las necesidades de desarrolladores de aplicaciones de Internet potentes. AVM2 admite informes de error en tiempo de ejecución, depuración integrada y compatibilidad con conexiones binarias, de modo que los desarrolladores puedan ampliar la capacidad del reproductor para que funcione con cualquier protocolo binario. Flash Player 9 también incorpora AVM1, que ejecuta el contenido heredado de ActionScript, lo que garantiza la compatibilidad retroactiva con el contenido existente.

Mejor rendimiento

Flash Player 9 incorpora mejoras en Flash Player 8 para ejecutar el contenido y las aplicaciones de forma más rápida que anteriormente con distintas mejoras del rendimiento:

• Consiga ejecutar ActionScript 3.0 hasta diez veces más rápido con la nueva máquina virtual y un compilador optimizado.

• Aumente la velocidad del contenido y las aplicaciones gracias a un tiempo de inicio de la aplicación más rápido y una reducción del 50% en el espacio de la memoria.

• Acelere el rendimiento de reproducción mediante gráficos vectoriales en caché más eficaces.

• Mejore la lectura del texto y ofrece un desplazamiento más rápido y mejor de grandes bloques de texto con rutinas optimizadas de procesamiento de texto.

Seguridad mejorada

Flash Player cumple la seguridad sandboxes para aplicaciones, contenidos, datos y URL con el fin de salvaguardar datos confidenciales y ayudar a garantizar una navegación segura para los usuarios finales.

Fuente: http://www.adobe.com/es/products/fla...features/#as30

Mas aplicaciones de ejemplo.
http://flex.org/showcase/
Muchos ejemplos con su respectivo codigo y descarga de fuentes.
http://blog.flexexamples.com/

Fte: Aqui

Introducción básica a Actionscript 3, clases, tipos de datos

Introducción básica a Actionscript 3, clases, tipos de datos

Éste será un primer mini-tutorial de las nuevas cosas que trae Actionscript 3. En ésta entrega veremos la nueva forma de crear clases en AS3, cómo manejar los tipos de datos y usarlos en una aplicación real. El ejemplo está hecho con la versión publica de Flash 9, que puede descargarse gratis de los laboratorios de Adobe; sin embargo, es posible usar este mismo código en Flex 2.

Para prepararlo todo, crearemos un nuevo documento en Flash 9 Alpha. Cambiaremos el tamaño del escenario a 100 x 30 e insertaremos un texto. El texto le pondremos de tipo Dynamic Text y en el nombre de instancia colocaremos numero. Todo debe quedar así:



En este campo pondremos un número aleatorio de 0 a 999. El código para generar el número aleatorio es igual al que usaríamos para Actionscript 2, pero la forma en la que lo pondremos es lo nuevo que vamos a ver.

Guardamos en alguna carpeta nuestro .FLA como aleatorio.fla. Luego, en la carpeta donde guardamos el .FLA crearemos otra carpeta llamada clases (En minúsculas). Dentro de Flash 9 vamos a File -> New -> ActionScript File. Esto nos creará un archivo .as que guardaremos con el nombre Aleatorio.as dentro de la carpeta "clases" que creamos hace un rato. Aquí empieza lo divertido.

La carpeta que creamos como "clases" es, en Actionscript, un paquete. Los paquetes son colecciones de clases que podemos organizar como carpetas y llamarlas de igual manera dentro de nuestros proyectos.

Novedad de ActionScript 3
  • Los paquetes ya existían en Actionscript 2, pero en AS3 debes especificar a que paquete pertenece una clase antes de programarla. Por eso pondremos lo siguiente en Aleatorio.as:

Código :

package clases
{

}

Con esto ya podemos programar la clase cómo lo haríamos en AS2. Incluiremos en el código la definición de la clase y pondremos su constructor.

Novedad de ActionScript 3
  • Debemos especificar que la clase es publica con public.
  • El constructor debe tener el mismo nombre de la clase y es el único metodo/función que no tiene un tipo de datos de retorno.

Código :

package clases
{
public class Aleatorio
{
function Aleatorio()
{ }
}
}

Ahora añadiremos el valor aleatorio que queremos poner en nuestro campo de texto. Para esto crearemos la función getNumero, que nos devolverá un número de 0 a 999.

Novedad de ActionScript 3
  • Es obligatorio especificar si la función será publica o privada.
  • Es obligatorio especificar el tipo de datos que retorna la función. Si no retorna nada, debe especificarse que es void
  • ActionScript 3 tiene el tipo de datos "int" para números enteros. Es recomendado usarlo en vez de "Number" cuando manejamos números enteros ya que, al ser un tipo especifico de datos, hará más veloz la aplicación.

Código :

package clases
{
public class Aleatorio
{
function Aleatorio()
{ }

public function getNumero() : int
{
return Math.round((Math.random()*1000));
}
}
}

Con nuestra clase lista, volvemos a nuestro archivo .FLA. Vamos al codigo del primer keyframe y ahí importaremos la clase que acabamos de crear. Luego instanciaremos un objeto de nuestra clase Aleatorio y por ultimo llamaremos al metodo "getNumero" para poner el numero aleatorio en nuestro campo de texto "numero":

Novedad de ActionScript 3
  • Las variables deben declararse siempre
  • Podremos el tipo de datos a las instancias de nuestras clases
  • Si vamos a colocar un numero dentro de un campo de texto, debemos primero convertir ese numero a String.

Código :

import clases.Aleatorio;
var alea:Aleatorio = new Aleatorio();
numero.text = new String(alea.getNumero());

Luego damos CTRL+ENTER y al ver un numero en pantalla sabremos que hemos creado nuestra primera aplicación en ActionScript 3.

En nuestra siguiente entrega veremos conceptos más avanzados de AS3, nueva forma de manejo de URLs y más novedades.

[ Descargar ejemplo (Requiere Flash 9 Alpha) ]

Fte: aqui

MySql

Motor de BBDD openSource

http://www.mysql.com/

Documento de Adobe para la migracion de ActionScript 2.0 a 3.0

Documento de Adobe para la migracion de ActionScript 2.0 a 3.0

http://livedocs.adobe.com/flex/201/langref/index.html?migration.html&all-classes.html

Herramientas Open Source

Pagina de herramientas Open Source para ingenieria del Software:

http://argouml.tigris.org/