Mostrando postagens com marcador Flex. Mostrar todas as postagens
Mostrando postagens com marcador Flex. Mostrar todas as postagens

quinta-feira, 15 de novembro de 2007

Oracle escolheu o Adobe Flex

e aqui estou eu, como de costume lendo alguns blog, no caso do James Ward e eis que vi 3 posts muito interessantes, posts dos dias 12 a 14 de Novembro de 2007, onde ele estava participando do evento: Oracle OpenWorld

primeiro post, foi uma foto da apresentação do MetaLink da Oracle com interface em Adobe Flex:


[link post]


Agora sobre o Oracle BI Publisher, outra solução da Oracle que utilizou o Flex


[link post]


Mais uma solução Oracle Enterprise Manager


[link post]


ps.: no dia 14, o tema foi a solução Siebel CRM, onde nesse dia a palestra foi apresentada por James Ward em conjunto com Dipock Das sobre Siebel CRM e RIA. A apresentação abortou o foco de como as aplicações RIA transformaram as experiências dos usuários de software Enterprise. [link post]

agora para aqueles que perguntavam: "- Mas quem usa o Adobe Flex?" ou a outra pergunta: "- O Adobe Flex aguenta/comporta/pode ser utilizado para aplicações de grande porte?"

bom acho que essas referências acima respondem a estas perguntas e libertam do medo de utilizar o Adobe Flex para desenvolver soluções de alto nível em aplicações web... vai esperar mais o que para utilizar a tecnologia FlexPower da Adobe?!

segunda-feira, 12 de novembro de 2007

Granite DS + Adobe Flex Builder

eis a grande questão... comecei semana passada a estudar o uso do Granite DS que me possibilita o uso do protocolo AMF3 para comunicação entre Client & Server...

* a problemática: legal, peguei os exemplos do Granite DS, os .war neles contidos, coloquei no Tomcat e funcionou... dai me veio a questão... como faço para usar isso em um projeto usando o Flex Builder?

* o que usei? segue o que usei nesse meu teste:
- Java 1.5
- Eclipse 3.2 + WTP 2.0 + Adobe Flex Builder Plugin
- Tomcat 5.5.20
- OC4J 10.1.3.20 (servidor de app da Oracle usado como servidor de teste de deploy do projeto)
- graniteds-pojo-0.4.0 (como base para o projeto server side)

* criando projeto para o server side da aplicação
- criar um projeto no Eclipse Dynamic Web Project
- criei um diretório para o projeto com o nome GranitePojoFlex
- após criado o projeto no diretório de nome definido
- copiar os arquivos do graniteds-pojo-0.4.0 para o projeto
> web.xml, códigos, diretórios do WEB-INF
- criei um diretório no /WebContent para o projeto Client Side - Adobe Flex, com nome de flex
- defini nas propriedades do projeto, no item: Web Project Settings, o Context Root para: granitepojoflex

* criando o projeto client side
- criei o projeto no diretório flex citado anteriormente
- o mxml do graniteds-pojo-0.4.0, copiei o conteúdo desse para o arquivo main.xml
- copiei o arquivo /WEB-INF/flex/services-config.xml, para o raíz do projeto
- editei esse arquivo services-config.xml

de:

    <channels>
        <channel-definition id="my-graniteamf" class="mx.messaging.channels.AMFChannel">
            <endpoint
                uri="http://{server.name}:{server.port}/{context.root}/graniteamf/amf"
                class="flex.messaging.endpoints.AMFEndpoint"/>
        </channel-definition>
    </channels>


para:

    <channels>
        <channel-definition id="my-graniteamf" class="mx.messaging.channels.AMFChannel">
            <endpoint
                uri="http://{server.name}:{server.port}/granitepojoflex/graniteamf/amf"
                class="flex.messaging.endpoints.AMFEndpoint"/>
        </channel-definition>
    </channels>


- feito isso é hora de adicionar esse arquivo nos parametros de compilação do projeto, indo nas propriedades, em Flex Compiler, onde adicionei o seguinte: -services "services-config.xml", com isto ira dizer onde está nossos dados...
- ainda é necessário configurar um outro detalhe nas propriedades do projeto, no item Flex Build Path, o item: Output folder URL, para dizer onde executar a aplicação em Flex... e como nesse caso estamos utilizando o tomcat o valor para esse item será: http://localhost:8080/granitepojoflex/flex/bin, o como esse projeto do Flex está dentro do /WebConten/Flex do projeto Server Side, justifica o porque dessa URL

* hora de executar
- primeiro colocar o projeto server side para executar, como não tem nenhum JSP, não irá aparecer nada quando o servidor e a aplicação estiver rodando
- agora hora de executar o projeto Flex, só mandar executar nosso main.mxml...
- lembrando que foi configurado a URL, você irá observar que estará executando em um endereço URL no seu browser

e eis um projeto em Flex Builder + Granite

* fazendo um deploy em um servidor para testar
no caso usei o OC4J, mas antes...
- no projeto Server Side, clique com o botão direito e vá em exportar WAR...
- para facilitar exporte para o Desktop por exemplo
- no OC4J, na parte de administração eu selecionei esse .war gerado e realizei o deploy...
- após iniciado a aplicação eu usei a seguinte URL para acessar e testar: http://localhost:8888/granitepojoflex/flex/bin/main.html, a porta é 8888, pois essa é a padrão do OC4J

segue o projeto Zipado: [link]

Obs.: esse projeto usa a versão modificada do Granite DS, falado nesse [post]

Granite DS, mapeamento flexível

hoje estudando o Granite Data Services, que é uma alternativa OpenSource e gratuita ao LiveCycles da Adobe, acabei encontrando uma informação que julgo eu ser muito útil...

estava vendo o funcionamento do AMFPHP, onde verifiquei que o mapeamento das classes são flexíveis, onde posso ter múltiplas classes mapeadas, enquanto no granite, eu tinha que mapear apenas uma única classe de cada vez... mas segundo a sugestão repassada, tem como deixar o Granite funcionando de forma similar ao AMFPHP, que em tese é mais fácil de reutilizar o mapeamento...

a dica está nesse [link flex-brasil]

onde é sugerido a alteração da classe: org.granite.messaging.service.SimpleServiceFactory.java

para que o Granite possa ser utilizado de forma flexível:

classe original:
package org.granite.messaging.service;

import flex.messaging.messages.RemotingMessage;

import org.granite.config.flex.Destination;
import org.granite.context.GraniteContext;

import java.util.Collections;
import java.util.Map;

/**
 @author Franck WOLFF
 */
public class SimpleServiceFactory extends ServiceFactory {

    @Override
    public ServiceInvoker<?> getServiceInstance(RemotingMessage requestthrows ServiceException {
        String messageType = request.getClass().getName();
        String destinationId = request.getDestination();
        
        GraniteContext context = GraniteContext.getCurrentInstance();
        Destination destination = context.getServicesConfig().findDestinationById(messageType, destinationId);
        if (destination == null)
            throw new ServiceException("No matching destination: " + destinationId);
        String scope = (String)destination.getProperties().get("scope");
        
        Map<String, Object> cache = null;
        if (scope == null || "request".equals(scope))
            cache = context.getRequestMap();
        else if ("session".equals(scope))
            cache = context.getSessionMap();
        else if ("application".equals(scope))
            cache = Collections.synchronizedMap(context.getApplicationMap());
        else
            throw new ServiceException("Illegal scope in destination: " + destination);
        
        String key = SimpleServiceInvoker.class.getName() '.' + destination.getId();
        SimpleServiceInvoker service = (SimpleServiceInvoker)cache.get(key);
        if (service == null) {
            service = new SimpleServiceInvoker(destination, this);
            cache.put(key, service);
        }
        return service;
    }
}

classe alterada:
package org.granite.messaging.service;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

import org.granite.config.flex.Destination;
import org.granite.context.GraniteContext;

import flex.messaging.messages.RemotingMessage;

/**
 @author Franck WOLFF
 @author Erko Bridee de Almeida Cabrera
 
 * Alterações da classe para possibilitar um mapeamento
 * flexivel para qualquer classe do projeto
 
 * * dica do link:
 * http://br.groups.yahoo.com/group/flex-brasil/message/7933
 * - Graniteds com unico mapeamento de Classe
 
 */
public class SimpleServiceFactory extends ServiceFactory {

    @Override
    public ServiceInvoker<?> getServiceInstance(RemotingMessage requestthrows ServiceException {
        String messageType = request.getClass().getName();
        String destinationId = request.getDestination();
        
        GraniteContext context = GraniteContext.getCurrentInstance();
        Destination destination = context.getServicesConfig().findDestinationById(messageType, destinationId);
        if (destination == null)
            throw new ServiceException("No matching destination: " + destinationId);
        String scope = (String)destination.getProperties().get("scope");
        
        Map<String, Object> cache = null;
        if (scope == null || "request".equals(scope))
            cache = context.getRequestMap();
        else if ("session".equals(scope))
            cache = context.getSessionMap();
        else if ("application".equals(scope))
            cache = Collections.synchronizedMap(context.getApplicationMap());
        else
            throw new ServiceException("Illegal scope in destination: " + destination);
        
        /*************/
        Destination d = destination;
        ifdestination.getProperties().get("source").equals("*") ){
          Map<String, Object> propertiesMap = new HashMap<String, Object>();
          propertiesMap.put("source", request.getSource());
          d = new Destination(destination.getId(),
          destination.getChannelRefs
          (), propertiesMap, destination.getRoles());
        }
        /**************/
        
        /* String key = SimpleServiceInvoker.class.getName() + '.' + destination.getId();
        SimpleServiceInvoker service = (SimpleServiceInvoker)cache.get(key);
        if (service == null) {
            service = new SimpleServiceInvoker(destination, this);
            cache.put(key, service);
        } ALTERADO */
        
        String key = SimpleServiceInvoker.class.getName() '.' +
        d.getProperties().get("source")//<--Muda Aqui
        SimpleServiceInvoker service = (SimpleServiceInvoker)cache.get(key);
        ifservice == null ) {
          service = new SimpleServiceInvokerd, this )//<--Muda Aqui
          cache.put(key, service);
        }
        
        return service;
    }
}

com isto no projeto do código fonte do GraniteDS, basta usar o build.xml para regerar o .jar do Granite e utilizar este novo jar gerado...

com isto no exemplo do Granite-Pojo, o services-config.xml fica de outra forma:

    <services>
        <service
            id="granite-service"
            class="flex.messaging.services.RemotingService"
            messageTypes="flex.messaging.messages.RemotingMessage">
            <destination id="pojo">
                <channels>
                    <channel ref="my-graniteamf"/>
                </channels>
                <properties>
                    <scope>session</scope>
                    <source>*</source>
                </properties>
            </destination>
        </service>
    </services>



e no código mxml, no mx:RemoteObject, você deverá indicar o atributo source, como mostrado abaixo:

    <mx:RemoteObject
        id="srv"
        showBusyCursor="true"
        destination="pojo"
        source="test.pojo.PojoService"/>



feito isto, com um único mapeamento, você poderá acessar n-classes do seu projeto...
melhor, o que achou?

Traduzindo componentes do Adobe Flex

algo muito útil para o pessoal que anda utilizando o Adobe Flex, naturalmente que os componentes do SDK do Flex estão em inglês, mas não tem como traduzir eles não?

bom tem sim e foi isso que o Fábio Vedovelli mostrou em um screencast muito interessante, onde pode ser visto no respectivo [link]

Fonte : Fábio Vedovelli

quarta-feira, 7 de novembro de 2007

Flex2/ActionScript 3 - Transformando objetos em XML

agora pouco, um amigo me notificou sobre um post muito interessante e útil no blog do Urubatan, onde ele publicou um código muito útil, que transforma um objeto do AS3, para um XML, de forma muito simples

Urubatan - Flex2/ActionScript 3 - Transformando objetos em XML

terça-feira, 6 de novembro de 2007

Adobe Flex : Geoprocessamento

olhando os posts do Igor Costa, vi sobre uma aplicação implementada em Flex, muito interessante, que informa as aeronaves/aviões em voo ao redor do mundo, mostrando sua respectiva posição e quando colocado o ponteiro do mouse em cima do símbolo que representa o avião, é exibido a rota do mesmo


Cayri

Fonte : Igor Costa

Google lançou uma versão em Adobe Flex do Searchmash

tudo bem que a notícia não é tão nova assim (Outubro de 2007), mas apenas agora que li sobre isso e achei muito interessante, além de muito melhor a versão em Flex que a em HTML desse serviço do google...


Searchmash: HTML | Flex

compare ambas versões e tire sua própria conclusão... porém eu prefiro mais a qualidade de uma aplicação em SWF =D

Fonte : Google Groups flexdev referenciando RIApedia

Adobe Flex : Tutorial : enviando dados XML para o PHP

um tutorial disponível nesse [link], muito bem escrito e serve como um ótimo exemplo para orientar como enviar dados complexos do Adobe Flex para o servidor utilizando XML...

esse mesmo esquema pode ser utilizado para enviar para o java, no caso no java quando receber este parametro, basta utilizar um parser de XML para recuperar os valores...

no caso o uso do XStream (Object > XML | XML > Object) é muito útil nesse cenário ;)

Fonte : DZone

quinta-feira, 1 de novembro de 2007

Adobe Flex : radio web


Anywhere.FM

notícia atrasada mas tudo bem (21 de Agosto de 2007), mas para quem não conhecia assim como eu, segue, um novo caso de sucesso de implementação feita com o Adobe Flex, aqui o site achei bem tranquilo e rápido o acesso, ficou muito bom...

lembra um estilo de rede social, onde você pode montar uma playlist e deixar para que os outros acessem, assim como você pode ouvir as playlist(musicas) que os outros usuários uparam...


Fonte : Flex RIA

quarta-feira, 31 de outubro de 2007

Adobe Flex e Red5

como voltei a estudar o Adobe Flex agora para finalmente utiliza-lo em projetos na empresa que trabalho hoje (to feliz da vida com esse fato), voltei a estudar pesado e algo muito interessante é a possibilidade de stream de dados entre o Flex e o servidor, no caso a Adobe tem o Flash Media Server que é um produto comercial que serve de servidor de media para aplicações que no caso, tenham a necessidade de ter um sistema de chat (audio/vídeo)... mas existe uma solução OpenSource que tem a mesma finalidade do Flash Media Server (FMS), é o Red5...

achei um site muito legal com algumas coisas muito úteis, sobre como trabalhar com o Adobe Flex e Red5

- Red5 Flex2/AS3 Demo :: FLV Stream Player [link] [download]
segundo o post, esse exemplo foi feito utilizando o Red5 v0.6RC1

agora um exemplo que achei muito legal e criativo de integração do Adobe Flex com o Red5, foi este:

- FITC Hollywood - What a great time! [link] [demo]
bom melhor do que eu tentar explicar o fato, eis o vídeo da apresentação


outros post do blog RockOnFlash sobre o Red5 : [link]

segunda-feira, 29 de outubro de 2007

Adobe Flex : janelas MDI

algo muito útil em aplicações, é o uso de esquema MDI de janelas... aquelas janelas internas na aplicação que podem ser minimizadas, maximizadas, organizadas, etc...

Exemplo : [link]
Site do projeto : Google Code

domingo, 28 de outubro de 2007

Adobe Flex : utilidade

exemplo de campo input avançado [link]

componente player de flv [link]

artigos e vídeos de Flex/AIR [link]

J2flex - Armazenamento de persistência de dados para aplicações Flex [link]

Adobe Flex : Chat Widget : Chatopica

mais uma aplicação realmente muito interessante implementada usando o Adobe Flex, um widget de chat para ser utilizado facilmente em outros sites...

Chatopica Adobe Flex
 

Fonte : Clockwork Objects

quinta-feira, 25 de outubro de 2007

Usando o Adobe Flex para colaboração em tempo real com Derek DeMoro

realmente um assunto muito interessante e altamente aplicavel para aplicações que precisam de uma interação maior entre os seus usuários (em inglês)


Fonte : James Ward Blog

quarta-feira, 24 de outubro de 2007

Ótima novidade : Adobe Flex Builder 2 original e gratuito para estudantes e faculdades

lendo o blog do Igor Costa eis que li um post sobre essa excelente novidade, para todas as faculdades e estudantes das mesmas da área de informatica... podem utilizar o Adobe Flex completo com uma licensa voltada para estudantes...

leia mais no post do Igor Costa : [link]

outras informações sobre o assunto podem ser vistas nesse [link] do Yahoo Finance

terça-feira, 16 de outubro de 2007

Tutorial : JDJ : Adobe Flex & Java

Uma aplicação completa com comunicação RPC entre Adoble Flex e Java

Aos interessados que estão trabalhando com Adobe Flex e Java, eis mais um meio/maneira de integrar o Java com o Adobe Flex, usando como base o JMS : [link]

outro tutorial muito interessante que tem por lá, de integração entre Adobe Flex e Java é o :

Aplicações de Internet Rica com Adobe Flex e Java : Flash + POJO = RIAs

detalhe legal quanto a este turorial, o fonte está disponível ao final : [link]

---

outras publicações sobre Flex podem ser encontradas nesse [link], o pessoal criou um FDJ - Flex Developer's Journal, um meio interessante para manter-se informado sobre Flex =]

quinta-feira, 11 de outubro de 2007

Peter Elst : Adobe MAX Chicago

um blog muito interessante relacionado aos produtos da Adobe, Flex e afins...
e lá eu vi as palestras do evento, tem outros posts muito interessantes no blog dele também, recomendo olhar =]

Flash “Next”


Flash no C/C++


Aplicações Flex no Linux


Seam Carving


Photoshop Express


Flash Home para Mobile


PDF Packaging


Fonte : Peter Elst

Iniciando : Adobe AIR e Flex

um post muito interessante, introdutórios sobre Adobe Flex e AIR, muito interessante que recomendo... (em inglês)

Adobe AIR and Flex : Getting Start

Fonte : DZone

terça-feira, 9 de outubro de 2007

Adobe Flex 2.0 , trabalhando em conjunto do Spring e Hibernate

aos interessados e vai a dica, hoje vi um link bem interessante de uma palestra de um funcionário da Adobe falando sobre o Adobe Flex e como utiliza-lo em conjunto do Spring e Hibernate

segue o [link] da palestra (em inglês, video + slides)
veja também o post do blog de Christophe Coenraets, falando sobre este assunto : [link]

Fonte : DZone

FofoFlexer

opa acessando o site o O Velho (este post), vi que tem uma novidade nessa aplicação, quem lembra que a algum tempo atrás foi apresentado um algoritmo revolucionario de maniputação de imagens (olhe este post), para redimensionamento e algumas outras funcionalidades, então essas foram adicionadas no FotoFlexer e estão a sua disposição, veja o vídeo sobre essas funcionalidades:


FotoFlexer

segue um post anterior que falei sobre o FotoFlexer