logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!
Ago 31

CRUD com Flex e Java

Escrito por Edgard Davidson em CRUD, Flex, Glassfish, Hibernate, Java, JAX-WS, web services @ 08 31st, 2009 | via http://edgarddavidson.com | Sem comentários
Edgard Davidson
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

O objetivo deste post e demonstrar um CRUD (Create, Retrieve, Update e Delete) feito em Flex e Java. A tecnologia utilizada é a seguinte:  do lado do servidor temos:  JAVA EE, Hibernate, JAX-WS e Glassfish. Do lado do cliente temos o Flex consumindo o webservices Java.

Esse post é continuação do anterior onde falei sobre paginação com datagrid. Agora será demonstrado como inserir, alterar, excluir.

A figura 1 ilustra a interface principal do exemplo.

Tela 11

Figura 1

Para iniciar a criar a aplicação servidor, será mostrado passo a passo como criar a aplicação no Netbeans 6.5.1.

Abra o NetBeans clique em “Novo Projeto”, em seguida escolha a categoria “Java Web” em seguida o projeto “Aplicação Web” conforme ilustrado na figura 2.  O projeto está sendo criado dessa forma porque será uma aplicação web que publicará um serviço web.

tela 1

Figura 2

O próximo passo no Wizard do NetBeans é criar um nome para o projeto. No caso deste exemplo, o projeto foi nomeado como “CrudServidor”. O local do projeto poderá ser o caminho padrão do NetBeans ou outro que você indicar.

tela 2

Figura 3

Como estamos criando uma aplicação Web, então será necessário indicar qual servidor de aplicação web será utilizado pelo projeto que está sendo criado. Conforme a figura 4, o servidor escolhida foi o GlassFish v2, mas nada impede de você escolher outro como tomcat, jboss, etc. No mais deixe os outros campos como estão.

tela 3

Figura 4

Na próxima tela do wizard (Figura 5), será necessário indicar quais frameworks serão utilizados pelo novo projeto. Nesse caso, será utilizado apenas o Hibernate 3.2.5. Fazendo isso o Netbeans já adiciona todos os ponto jar’s necessários para o hibernate, evitando que você tenha que indicar manualmente.  Na figura 5 do wizard também é necessário indicar para qual banco de dados o Hibernate será configurado. Poderia ter criado um novo banco de dados. Se esse projeto fosse para construir uma aplicação real teríamos que criar um novo banco, mas como isso é um exemplo, foi utilizado o “banco sample” que vem junto com a IDE do Netbeans. Então configura conforme figura 5. Neste ponto o seu projeto está criado no Netbeans.

Tela 4

Figura 5

Agora,  configurado o banco, será necessário criar um novo arquivo de mapeamento do Hibernate e POJOS de banco de dados. Para isso clique com o botão direito do mouse sobre a pasta “Pacotes de código fonte” do seu projeto, em seguida clique em novo e encontre o termo “Novo arquivo de mapeamento do Hibernate e POJOS de banco de dados.” Será aberta a tela conforme figura 6. O próximo passo é criar o hibernate.cfg.xml. Esse arquivo contém as informações necessárias para que o Hibernate se conecte ao banco de dados. Nessa tela do wizard (Figura 6), será necessário escolher as tabelas para que o wizard crie um mapeamento por meio de engenharia reversa. Nesse exemplo será mapeado apenas a tabela “Customer”.

Tela 6

Figura 6

A figura 7 mostra a tela do wizard onde será configurado para onde as classes de entidade, ou seja, as classes que mapeiam as tabelas do banco de dados serão geradas. Neste ponto é possível informar se você que criar o mapeamento utilizando anotation ou xml. Nesse projeto foi escolhida a estratégia de criar um arquivo XML de mapeamento objeto relacional para cada classe de entidade. No mais as classes geradas e seus respectivos arquivos de mapeamento com a extensão “.hbm.xml” serão gerados dentro do pacote entidade que foi previamente criado dentro da pasta source do projeto.

Tela 7

Figura 7

Em seguida (Figura 8), será necessário adicionar ao seu projeto um novo serviço web. Esse serviço web será a sua classe de fachada que irá publicar um web services com uma lista de métodos disponíveis para ser consumidos por qualquer aplicação cliente. Nesse projeto o nome do serviço Web é ControleCustomer. Entenda a classe de fachada com um classe que implementa as regras de negócio de um caso de uso, então se tivéssemos um caso de uso chamado “Getão de Customer”, então a classe ControleCustomer implementaria as suas regras. Note que a classe ControleCustomer  será gerada dentro do pacote chamado “controle” que foi previamente criado.

Tela 8

Figura 8

Bem, seguido todos os passos acima, espera-se que o seu projeto tenha a estrutura como ilustrado na figura 9.

Tela 9

Figura 9

A primeira classe gerada foi a classe de entidade Customer. Essa classe foi gerada automaticamente por engenharia reversa com descrito acima.
Segue o código da classe

package entidade;
// Generated 27/08/2009 21:14:32 by Hibernate Tools 3.2.1.GA

/**
 * Customer generated by hbm2java
 */
public class Customer  implements java.io.Serializable {
    private static final long serialVersionUID = 1L;

     private int customerId;
          private String zip;
     private String name;
     private String addressline1;
     private String addressline2;
     private String city;
     private String state;
     private String phone;
     private String fax;
     private String email;
     private Integer creditLimit;

    public Customer() {
    }

    public Customer(int customerId, String zip) {
        this.customerId = customerId;
        this.zip = zip;
    }
    public Customer(int customerId, String zip, String name, String addressline1, String addressline2, String city, String state, String phone, String fax, String email, Integer creditLimit) {
       this.customerId = customerId;
       this.zip = zip;
       this.name = name;
       this.addressline1 = addressline1;
       this.addressline2 = addressline2;
       this.city = city;
       this.state = state;
       this.phone = phone;
       this.fax = fax;
       this.email = email;
       this.creditLimit = creditLimit;
    }

    public int getCustomerId() {
        return this.customerId;
    }

    public void setCustomerId(int customerId) {
        this.customerId = customerId;
    }

    public String getZip() {
        return this.zip;
    }

    public void setZip(String zip) {
        this.zip = zip;
    }
    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public String getAddressline1() {
        return this.addressline1;
    }

    public void setAddressline1(String addressline1) {
        this.addressline1 = addressline1;
    }
    public String getAddressline2() {
        return this.addressline2;
    }

    public void setAddressline2(String addressline2) {
        this.addressline2 = addressline2;
    }
    public String getCity() {
        return this.city;
    }

    public void setCity(String city) {
        this.city = city;
    }
    public String getState() {
        return this.state;
    }

    public void setState(String state) {
        this.state = state;
    }
    public String getPhone() {
        return this.phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getFax() {
        return this.fax;
    }

    public void setFax(String fax) {
        this.fax = fax;
    }
    public String getEmail() {
        return this.email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
    public Integer getCreditLimit() {
        return this.creditLimit;
    }

    public void setCreditLimit(Integer creditLimit) {
        this.creditLimit = creditLimit;
    }
}

Agora a classe de fachada ControleCustomer que também é o webservices.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controle;

import entidade.Customer;
import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebService;
import persistente.GenericDAO;
import persistente.GenericException;

/**
 *
 * @author Edgard Davidson
 */
@WebService()
public class ControleCustomer {

    private GenericDAO dao = new GenericDAO();

    @WebMethod
    public void inserirCustomer(Customer customer) throws GenericException {
        // Tratar aqui alguma regra de negócio
        dao.save(customer);
    }

    @WebMethod
    public void alterarCustomer(Customer customer) throws GenericException {
        // Tratar aqui alguma regra de negócio
        dao.update(customer);
    }

    @WebMethod
    public void exlcuirCustomer(Customer customer) throws GenericException {
        // Tratar aqui alguma regra de negócio
        dao.delete(customer);
    }

    @WebMethod
    @SuppressWarnings("unchecked")
    public List obterObjetosCustomer(String campo, String pesquisa, int indice, int maximo) throws GenericException {
        // Tratar aqui alguma regra de negócio
        Customer customer = new Customer();
        return  dao.loadObjects(campo, pesquisa, customer, indice, maximo);
    }

    @WebMethod
    public long obterQuantidadeObjetosCustomer(String campo, String pesquisa) throws GenericException {
        // Tratar aqui alguma regra de negócio
        Customer customer = new Customer();
        return dao.getCountObjects(campo, pesquisa, customer);
    }
}

As demais classes e arquivos XML de configuração estão empacotados para download no final do post.

Agora segue o código fonte Flex:
Primeiro a código fonte da aplicação principal.




	
		 0)
					var temp1:int=this.indice + 1;
				var temp2:int=this.indice + this.maximo;
				if (temp2 > this.qtdeObjetos)
					temp2=this.qtdeObjetos;
				lbPag.text=temp1.toString() + " - " + temp2.toString() + " de " + this.qtdeObjetos.toString();
			}

			private function onResultObterObjetosCustomer(event:ResultEvent):void
			{
				var acTemp:ArrayCollection=new ArrayCollection();
				var i:int;
				acTemp=event.result as ArrayCollection;
				AC.removeAll();
				var customer:Customer;

				if (event.result != null)
				{
					if (acTemp == null)
					{
						this.controleBotoesPaginacao(1);
						customer=new Customer();
						customer.customerId=event.result.customerId;
						customer.name=event.result.name;
						customer.city=event.result.city;
						customer.state=event.result.state;
						customer.zip=event.result.zip;
						customer.email=event.result.email;

						AC.addItem(customer);
					}

					if (acTemp != null)
					{
						this.controleBotoesPaginacao(acTemp.length);
						for (i=0; i < acTemp.length; i++)
						{
							customer=new Customer();

							customer.customerId=acTemp.getItemAt(i).customerId;
							customer.name=acTemp.getItemAt(i).name;
							customer.city=acTemp.getItemAt(i).city;
							customer.state=acTemp.getItemAt(i).state;
							customer.zip=acTemp.getItemAt(i).zip;
							customer.email=acTemp.getItemAt(i).email;

							AC.addItem(customer);
						}
					}
				}
				else
					this.controleBotoesPaginacao(0);
			}

			private function onResultExcluirCustomer(event:ResultEvent):void
			{
				AC.removeItemAt(gridCustomer.selectedIndex);
				AC.refresh();
				Alert.show('Excluido com sucesso!', "Mensagem");
			}

			private function onResultObterQuantidadeObjetosCustomer(event:ResultEvent):void
			{
				this.qtdeObjetos=event.result as int;
				srv.obterObjetosCustomer(comboBoxFiltro.selectedItem, campoBusca.text, indice, maximo);
			}

			private function onFault(event:FaultEvent):void
			{
				if (event.fault.rootCause == null)
					Alert.show("MOTIVO:\n" + event.fault.faultString + " \n\nDESCRIÇÃO:\n" + event.fault.faultDetail, "ERRO: " + event.fault.faultCode);
				else
					Alert.show("MOTIVO:\n" + event.fault.message + " \n\nDESCRIÇÃO:\n" + event.fault.faultDetail, "ERRO: " + event.fault.faultCode);
			}

			private function inicio_Click():void
			{
				this.indice=0;
				this.maximo=nsMaximo.value;
				obterObjetosCustomer_Click();
			}

			private function retroceder_Click():void
			{
				if ((this.indice - nsMaximo.value) <= 0)
					this.indice=0;
				else
					this.indice=this.indice - nsMaximo.value;
				this.maximo=nsMaximo.value;
				obterObjetosCustomer_Click();
			}

			private function avancar_Click():void
			{
				this.indice=this.indice + nsMaximo.value;
				this.maximo=nsMaximo.value;
				obterObjetosCustomer_Click();
			}

			private function fim_Click():void
			{
				this.indice=this.qtdeObjetos - nsMaximo.value;
				this.maximo=nsMaximo.value;
				obterObjetosCustomer_Click();
			}
		]]>
	
	
		
		
		
		
		
		
		
		
	
	

		
			
				
					
					
					
					
					
					
				
			
			
				
				
				
				
				
				
				
				
			
			
				
					name
					cyte
					state
					zip
					email
				
			
			
			
		
		
			
			
			
			
			
		
	


Agora o fonte da tela de cadstro.




	
		
	
		
		
		
		
	

	
		
			
		
		
			
		
		
			
		
		
			
		
		
			
		
			
	
		
		
		
		
	

A figura 11 é print da tela de cadastro de usuário

Tela 12

Figura 11

Segue o código fonte do lado servidor feito em Java. CrudServidor

Segue o código fonte do lado cliente feito em Flex. CrudCliente

Ago 31

Configurando o FB3 como plugin no Eclipse 3.5

Escrito por Elvis Fernandes em Desenvolvimento, Eclipse, erro, Flex, Flex Builder, Galileo, instalação, Plugin @ 08 31st, 2009 | via http://www.elvis.eti.br | Sem comentários
Elvis Fernandes
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Se você tentar instalar o Flex Builder 3 como plugin no Eclipse 3.5 (Galileo), você irá se deparar com uma mensagem de erro dizendo que o plugin não pôde ser instalado. Mas o FB3 pode sim rodar no Eclipse 3.5.

Ignore as mensagens de erro que aparecerem e termine a instalação do plugin. Depois, vá até o diretório onde está o arquivo executável do eclipse, entre na pasta links e edite o arquivo com.adobe.flexbuilder.feature.core.link. Dentro deste arquivo haverá uma única linha mais ou menos assim:

C:/Arquivos de programas/Adobe/Flex Builder 3 Plug-in

Altere essa linha, adicionando “path=” no começo dela. O seu arquivo ficará assim:

path=C:/Arquivos de programas/Adobe/Flex Builder 3 Plug-in

Pronto, o plugin do FB está funcionando!

Bons códigos!

path=C:/Arquivos de programas/Adobe/Flex Builder 3 Plug-i

Posts relacionados

  • Instalação “avançada” do RestfulX no seu projeto Rails“Advanced” installation of RestfulX into your Rails app“>Instalação “avançada” do RestfulX no seu projeto Rails“Advanced” installation of RestfulX into your Rails app (0)
  • Você precisa do arquivo pro11.msi? Acho que não …Do you need the pro11.msi file? I don’t think so …“>Você precisa do arquivo pro11.msi? Acho que não …Do you need the pro11.msi file? I don’t think so … (112)
  • Erro “bad line length character” no Git“>Erro “bad line length character” no Git (1)
  • Na web como os chineses“>Na web como os chineses (1)
  • Instalando o Rails 2 no Debian“>Instalando o Rails 2 no Debian (2)
  • Error #2032: Stream Error.“>Error #2032: Stream Error. (5)

© Elvis for Elvis Fernandes, 2009. |
Permalink |
7 comentários |
Adicione ao
del.icio.us


Tags: eclipse, erro, flex builder, galileo, instalação, plugin

Ago 31

Ruby Object Model: Uma obrigação

Escrito por Daniel Lopes em oop, orientação objetos, ruby, Ruby e Rails @ 08 31st, 2009 | via http://blog.areacriacoes.com.br/ | Sem comentários
Daniel Lopes
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Muito se fala sobre eu trabalho com uma linguagem Orientado a Objeto, ou Java é Orientado a Objetos ou PHP tem classes, mas qualquer um que diz não sabe realmente o que é orientação a objetos.

Digo isto porque aprendi OOP inicialmente em Delphi e depois em Java e em nenhumas das vezes me foi ensinado da forma correta.

Então se você é programador de qualquer linguagem aconselho que veja os dois videos abaixo, porém se você é desenvolvedor Ruby então é mais do que obrigatório que você entende completamente estes videos.

Sou realmente um fã da forma como Dave Thomas ensina as coisas, então divirtam-se com os ensinamentos:

1º Object Model: Scotland on Rails

Uma explicativa e detalhada apresentação sobre o que é OOP e como as coisas devem ser.

Scotland On Rails

2º Object Model: Pragmatic programmers

Object Model do Ruby ilustrado com dezenas de exemplos práticos e como isto influi no dia a dia geral em Ruby e principalmente como se encaixa quando se utiliza metaprogramação

http://www.pragprog.com/screencasts

Ago 31

Treinamento Online Concluído

Escrito por Vinícius Sandim em C#.net, Flex, FluorineFx, Serviços, Treinamento, Visual Studio @ 08 31st, 2009 | via http://www.viniciussandim.com | Sem comentários
Vinícius Sandim
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Ontem, dia 29/08 foi o último dia do treinamento online que preparei: Desenvolvendo com Adobe Flex e Microsoft .Net.

Os encontros foram muito produtivos, gosto bastante de treinamentos porque não são apenas os participantes que aprendem, pelo contrário, eu também aprendo muito com as trocas de experiências durante as conversas no chat.

Quero agradecer ao pessoal que participou, espero ter atendido todas as expectativas.

Gostaria também de aproveitar o post e dizer que em breve abrirei uma nova turma do treinamento, caso você tenha interesse, entre em contato através do email treinamento@viniciussandim.com que informo mais detalhes.

Ago 31

CFTwitterLib – TweetDiff – Aplicação de exemplo em ColdFusion para Twitter

Escrito por Pedro Claudio em CFTwitterLib, ColdFusion, Twitter @ 08 31st, 2009 | via http://blog.pcsilva.com/index.cfm | Sem comentários
Pedro Claudio
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Mais um exemplo de uso da biblioteca ColdFusion para acesso ao Twitter, esta aplicação não será continuada, é um mero exemplo. Ficou tão boa que resolvi incrementar o layout.

Ago 29

Off-Topic: Transformando textos em mp3

Escrito por Daniel Lopes em Mac @ 08 29th, 2009 | via http://blog.areacriacoes.com.br/ | Sem comentários
Daniel Lopes
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Bem, passei duas semanas sem postar nada porque ando muito apertado de serviço ultimamente. Então segue uma dica que ando usando para ler alguns textos quando não estou na frente do computador ou com um livro acessível.

Bem, passei duas semanas sem postar nada porque ando muito apertado de serviço ultimamente. Então segue uma dica que ando usando para ler alguns textos quando não estou na frente do computador ou com um livro acessível.

Para quem usa MacOsX temos uma ferramenta chamada speech, que inicialmente foi desenvolvido para fins de acessibilidade mas que tem uma outra utilidade muito bacana :) .

O speech funciona muito bem com textos em inglês, então o que ando fazendo é coloca-lo para ler meus textos e gravar o resultado em MP3 para poder carregar os texto em meu Mp3 Player. Para ativar o speech para leitura de textos selecionados faça o seguinte:

Acesse System Preferences/Speech e escolha a tecla (eu utilizo CTRL+S)

Agora vc pode selecionar um texto e apertar a tecla para que ele comece a falar. Agora instale o Audio Hijack e selecione a opção System Audio e depois é só apertar a RECORD que você tera os seus textos em MP3.

O único problema é que o speech não lê muito bem textos em português, então se alguém conhecer alguma solução será bem vindo :)

Ago 28

Operador Lógico ||= em AS3

Escrito por DClick Team em Actionscript, Flex, Otimização, programação @ 08 28th, 2009 | via http://blog.dclick.com.br/pt/ | Sem comentários
DClick Team
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Bom, poucas pessoas sabem para que serve o operador lógico “||=”. Vou tentar explicar um pouco sobre ele.

Na documentação da adobe este operador é descrito da seguinte forma: “Assigns expression1 the value of expression1 || expression2.”, traduzindo seria: “Atribui para expressão1 o valor de expressão1 ou da expressão2″. Lembrando que para o operador lógico usamos com sintaxe “expressão1 operador expressão2“.

Vou mostrar em exemplos mais claros como isso funciona.

Exemplo1:

PLAIN TEXT
ACTIONSCRIPT:

  1. var array:Array; // Variável arr tem o valor nulo.
  2. array ||= [“Bruno Sales”]; // Caso array seja nulo, atribua o valor ["Bruno Sales"]
  3. trace(array.toString()); // Resultado: Novo valor atribuido, trace imprime "Bruno Sales"

Exemplo2:

PLAIN TEXT
ACTIONSCRIPT:

  1. var array:Array = [“DClick”]; // Variável arr tem o valor ["DClick"].
  2. array ||= [“Bruno Sales”]; // Caso array seja nulo, atribua o valor ["Bruno Sales"]
  3. trace(array.toString()); // Resultado: Váriavel não foi alterada, trace imprime "DClick"

Logo, visualizando a diferença dos 2 exemplos, concluímos que o operador lógico “||=” faz o mesmo que o código abaixo, porém de uma maneira mais “elegante”.

PLAIN TEXT
ACTIONSCRIPT:

  1. var array:Array = [“DClick”];
  2. if (array == null)
  3. {
  4. array = [“Bruno Sales”];
  5. }

Espero que tenham gostado. :)

Ago 28

Source code formatter for MXML/AS3

Escrito por Fabio da Silva em utils @ 08 28th, 2009 | via http://fabiophx.blogspot.com | Sem comentários
Fabio da Silva
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Tenho usado este plug-in já faz algum tempo e recomendo.

Fonte: http://www.newsight.de/2009/02/09/source-code-formatter-for-mxmlas3/

Outro plug-in é o sugerido pelo Eduardo Kraus no seu post: Ctrl+Shift+F no Flex Builder.

Ago 28

Os erros na aplicação Flex

Escrito por Eduardo Kraus em Erro Flex, Flash player debugger, Flex @ 08 28th, 2009 | via http://blog.mxml.com.br | Sem comentários
Eduardo Kraus
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Todos sabem que eros são ruim para a aplicação, e todos devem ver o quanto aperto a tecla de concertar erros quando pedem sujestões. Mais o que alguns não sabem é que muitas falhas de funcionalidade são decorrente destas falhas.
/* Você que vive triste, cansado, não sabe porque não funciona?
Não se desespere, seus [...]

Ago 27

Tecinfor-wave plugin para wordpress

Escrito por Tecinfor em Adobe, adobewave, Notícias, Plugin, Wordpress @ 08 27th, 2009 | via http://tecinfor.net | Sem comentários
Tecinfor
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Pra quem usa o adobewave no blog ai esta o plugin para agilizar o processo de notificar seus seguidores, que voce postou um novo artigo no seu blog.
O plugin é bem simples de usar basta acessa o site  o site http://wordpress.org/extend/plugins/tecinfor-wave/
vou prepara um artigo esplicando como usar o plugin. Bom por hoje é só.
Retweet this [...]

« Entradas anteriores |

ACERCA

O que é o RedeRIA ?

O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 2795 entradas vindas de 53 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

Feed: assine já
Twitter: siga-nos

GOOGLE

Votação


Deveria o RedeRia agregar conteúdo em inglês?
Ver Resultados

AUTORES


Eduardo KrausAlexandre TadashiBindableCognitiva SoluçõesDaniel LopesDaniel SchmitzDanielPedrinhaDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFelipe BorellaFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPablo SouzaPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSamuelFacchinelloSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimWillian ManoXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com