logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!
Abr 18

Membase – Banco de dados “chave-valor” distribuído

Escrito por Igor Musardo em .NET, 1, 4, 6, abas, Adobe, apache, Aplicativos, app, AR, Asp.Net, back, Banco de Dados, BI, browser, busca, cache, class, cliente, código, configuração, couchdb, dados, Desenvolvedor, desenvolvedores, Dica, dll, Download, empresas, exemplo, Exemplos, Flex, for, IE, if, image, instalação, int, Java, library, mg, Microsoft, monitor, MSDN, O, on, painel, Partilha, Password, PHP, POO, programação, pt, relatório, Relatórios, RIA, Ria’s Geral, ruby, SDK, server, serviço, servidor, socket, Software, SQL Server, Sun, Tech, Tecnologia, Tema, Teste, UI, uint, Vários, Ved, Visual Studio, web, window, windows, XML, XP @ 04 18th, 2011 | via http://www.igormusardo.com.br | Sem comentários
Igor Musardo
? 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 Membase é um sistema de gerenciamento de banco de dados chave-valor distribuído, otimizado para aplicações web interativas.

O Membase é utilizado em produção em milhares de aplicativos no mundo, entre as grandes empresas que utilizam temos Zynga e NHN. E já também disponível no host compartilhado Heroku.

Infelizmente hoje os hosts brasileiros nos planos compartilhados é dificil encontrar suporte à tecnologias noSQL como o Membase, CouchDb, MongoDb, etc, e com isso forçam os desenvolvedores fazerem software utilizando bancos de dados relacionais que não são aderentes à programação orientada a objetos.

Banco de dados relacional é muito recomendado para persistência de dados que não são utilizados com muita frequência e também para aplicações cujo objetivo é gerar relatórios. Então uma ótima sacada é utilizar as duas tecnologia juntas. Para os dados que são constantemente utilizados por sua aplicação utilize o Membase, para os dados utilizados com menos frequencia use banco de dados relacional.

Porém adotar o modelo chave-valor traz consigo uma pequena “dor”, pois você será forçado a mudar a forma como os dados serão gravados e buscados em sua aplicação, pois o Membase é uma estrutura de dicionário, ou seja, as operações de busca e remoção dependem diretamente de você saber de ante-mão a chave de onde está o registro.

Download

Escolha a versão que mais se adequa a sua necessidade: Enterprise Edition ou Community Edition, eu recomendo a versão Enterprise.

Disponível para Windows, Red Hat e Ubuntu.

O arquivo de instalação tem em média 80MB.

http://www.couchbase.com/downloads

Instalação

A instalação é bem simples seguindo o modelo AVANÇAR, AVANÇAR, …, CONCLUIR.

Após a conclusão da instalação o browser é aberto com a página de SETUP do Servidor Membase.

Membase01

A primeira etapa da configuração do servidor é definir o local onde serão persistidos os dados, escolher se essa instância será um novo cluster ou se juntará a um cluster existente.

Caso for criar um novo cluster, defina a quantidade máxima de memória você deixará disponível para o Membase utilizar. Ele só alocará a memória quando necessário.

Membase02

Agora é hora de criar o Bucket Default, container isolado de dados, a área onde ficarão os dados.

Você pode escolher entre os tipos Memcached e Membase as diferenças entre os dois são muitas, mas as mais importantes são: Membase persiste no disco e Memcached não, o Memcached possui o limite de 1MB por valor em cada registro, no Membase o limite são 20MB.

Uma dica, como você pode criar vários Buckets, sugiro você separar os assuntos de dados do seu sistema em Buckets distintos, isso facilitará sua vida quando precisar definir qual o modelo de chave utilizar para guardar os dados, acredite em mim. :-)

Membase03

Defina um usuário e senha para acessar o serviço, esses dados também serão utilizados para acessar o painel administrativo do Membase.

Membase04

Esse é o painel administrativo do Membase.

Membase05

Assim concluimos a etapa de instalação e configuração do Membase. Simples né?!

Cliente

Agora vamos trabalhar com a integração entre o .NET e o Membase, para isso antes de mais nada é necessário utilizar um client para a linguagem que a sua aplicação foi ou será escrita, no nosso caso .NET.

Hoje as linguagens que já possuem cliente são:

  • .NET
  • Java
  • Perl
  • PHP
  • Ruby
  • C

Para fazer o download do cliente acesse: http://techzone.couchbase.com/downloads

Como configurar sua aplicação para usar o Membase

Primeiro copie as DLL’s Enyim.Caching.dll e Membase.dll para a pasta BIN do seu projeto e adicione a referência dessas DLL’s no projeto.

No web.config ou app.config da sua aplicação acrescente as seguintes configurações:



  

Código de exemplo

Client

Para utilizar o Membase você precisa criar uma instância do MembaseClient passando como prâmetros o nome e senha do bucket:

var membaseClient = new MembaseClient("default", "senha_bucket");

Set

Para armazenar os dados no Membase utilize o método SET:

membaseClient.Set(StoreMode.Set, “key01”, “value01”);

Para o valor o membase aceita qualquer tipo de objeto. O método SET adiciona uma chave inexistente ou substitui uma chave existente.

Get

Para resgatar um valor amazenado utilize o método GET:

var valor = membaseClient.Get(“key01”); // Retorna “value01”

Agora que você foi apresentado ao Membase pode já começar a brincar a fazer testes para aumentar o throughput e a escalabilidade da sua aplicação.

Até o próximo post.

Divita-se.

Mar 14

Adobe Flash Catalyst Panini – Introdução

Escrito por DClick Team em 1, 4, 6, Adobe, Adobe Max, AR, BI, blog, Catalyst, class, Curso, Design, designer, err, Ferramenta, flash, flash builder, Flash Catalyst, for, git, IE, image, int, interface, labs, mg, O, on, Outros, photoshop, Review, RIA, Ria’s Geral, screen, Screencast, Software, tag, TAT, Tech, Tecnologia, Twitter, UI, UX, XP @ 03 14th, 2011 | 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 »

Twitter!

Durante a Adobe MAX 2010, a Adobe lançou o preview público do Adobe Flash Catalyst “Panini”. Esse é um dos tantos passos que a Adobe quer trilhar para tornar o fluxo de trabalho entre designer e desenvolveres mais colaborativo, a fim de criar facilmente design de interfaces utilizando outros ferramentas também da Adobe, como Fireworks, Illustrator e Photoshop, bem como tendo integração com o Flash Builder “Burrito”.

Eu gosto bastante da versão CS5, mas é óbvio que o Catalyst precisa de melhorias, tive a esperança de encontrar todas elas na versão Panini, infelizmente não, mas alguns recurso mais básicos já foram disponibilizados tais como: Resize rápido do Stage, Align (era uma vergonha não ter isso antes, já que todo software Adobe possui essa ferramenta), exportação dos objetos como FXG, Replace dos elementos no Stage, entre esses o detalhe mais interessante que é a fixação dos elementos a extremidade do Stage, para quando houver o redimensionamento da aplicação o mesmo permanecer com o espaçamento entre ele e a parede do Stage sempre na mesma medida, se não entendeu vai ter que assistir ao screencast.

.

.

Baixe o Panini aqui no Adobe Labs

_________________________________________

Eduardo Horvath é UX Specialist e Designer na DClick.
Formado pela Faculdade Impacta de Tecnologia no curso Design de Mídia Digital ele atua na área de Design a mais de 15 anos.
@eduardohorvath

Mar 8

Converta Flash para HTML5

Escrito por Leonardo França em 1, 4, 6, Adobe, Adobe Max, Animação, api, app, apple, AR, class, Curso, Cursos, demo, Diversos, DRE, Dreamweaver, err, exemplo, Ferramenta, flash, Flash Player, for, html, html5, IE, if, image, iphone, labs, mg, navegadores, O, on, PHP, player, problema, problemas, RIA, Ria’s Geral, RTW, Tech, Tecnologia, UI, web, XP @ 03 8th, 2011 | via http://www.leonardofranca.com.br | Sem comentários
Leonardo França
? 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 »



Não tem muito tempo muito se falou, comentou e até se discutiu sobre uma suposta rivalidade entre Flash e HTML5. Sendo que isso parece ter seu alge quando há algum novo lançamento da Apple e que venha sem suporte ao Flash Player. No entanto o que a Adobe prega é que ambos podem conviver mutuamente sem problemas, um não precisa necessariamente eliminar o outro e cada um tem seu foco especifico.

A Adobe participa ativamente do W3C(Consorcio que rege os padrões web) e vem continuamente colaborando para o melhoramento do HTML5. No Adobe MAX 2010, foi demonstrado um exemplo de uma ferramenta com o codinome de “Wallaby”.
Wallaby é o codinome de uma tecnologia experimental que converte a artwork e animação contida nos arquivos do Adobe Flash Professional(.fla) em HTML. Isto lhe permite reutilizar e estender o alcance de seu conteúdo para dispositivos que não suportam Flash Player. Depois que esses arquivos são convertidos para HTML, você pode editá-los com uma ferramenta de edição de HTML, como o Adobe Dreamweaver, ou o que desejar. Você pode ver o resultado em algum dos navegadores compatíveis ou em um dispositivo iOS.
Claro que nem todos os recursos do Flash são suportadas no formato HTML5. No Adobelabs há um documento descrevendo quais recursos são suportados, quais as diferenças descobertas entre os diversos navegadores, que variações do dispositivo foram encontrado e problemas conhecidos atualmente.

Saiba mais
http://labs.adobe.com/technologies/wallaby/

Fev 27

Melhores práticas com Flex, PHP, Zend e Swiz

Escrito por Daniel Schmitz em 1, 2009, 4, 6, action, Actionscript, Adobe, AMF, amfphp, app, AR, Artigo, Artigos, auto, back, BI, botão, bug, busca, class, classe, classes, cliente, código, código fonte, Componente, Componentes, comunidade, configuração, control, Controls, Curso, Cursos, dados, Debug, demo, Desenvolvimento, dispatch, Diversos, Download, dynamic, Eclipse, email, err, erro, event, EventListener, Evento, Eventos, events, exemplo, falha, flash, flash builder, Flex, fonte, for, Formulário, Formulários, framework, function, handle, html, ide, IE, if, image, int, Java, labs, library, lista, Livro, Livros, LOB, Melhores Práticas, menu, mg, mvc, MXML, NaN, O, on, padrão, Pessoal, PHP, processo, procura, Projetos, pt, Remoting, RIA, Ria’s Geral, SDK, server, servidor, spark, string, Sun, swf, Swiz Framework, tag, Tech, Tecnologia, Tema, Teste, Twitter, UI, uint, utils, web, XML, XP, zend, Zend Framework @ 02 27th, 2011 | via http://flex.etc.br | Sem comentários
Daniel Schmitz
? 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 »

Durante o ando de 2010 diversos leitores me escreveram solicitando alguma forma de “receita de bolo” para a criação de projetos em Flex. Estavam buscando uma maneira de criar uma aplicação de forma que fosse mais correta e mais fácil, baseada em padrões de projeto e definida através de uma estrutura que facilitasse o desenvolvimento.

No início de 2011 comecei a pensar mais no assunto, pois irei implementar estas regras nos próximos livros, chegando a uma série de “regras” das quais estarei apresentando neste artigo. Inicialmente, queria dizer que eu não sou o dono da verdade, e estou longe de criar alguma regra que se não usada irá causar o seu insucesso. Estou disposto a receber críticas que sejam construtivas, com o intuito de melhorar o sistema cada vez mais, possibilitando assim que a comunidade tenha em mãos um bom documento para consulta.

PHP ou Java?

Uma das perguntas que mais recebi ao longo de 2010, por isso estarei discutindo um pouco sobre qual linguagem de servidor usar. Inicialmente você deve saber que não é a linguagem que vai fazer você ter sucesso ou não em um sistema, e sim o quanto você conhece a mesma. Por exemplo, se você conhece muito bem PHP, porque aventurar-se em Java se dá conta do recado? O mesmo vale para o Java, mas não recebi emails de nenhum programador Java querendo mudar para php… (sic.. hehe).

O que? é fato nesta “briguinha” é que, não existe melhor ou pior. Java é mais complexo que php, exige mais atenção mas traz muitos benefícios, até financeiros (sim você ganha mais). PHP é mais fácil, você cria tudo mais rápido e com isso fica mais feliz :) Qual você vai escolher? Escolha a que te faz mais feliz.

Zend_AMF ou AMFPHP ?

Outra dúvida muito comum entre os programadores PHP. Eu costumo selecionar um ou outro dependendo do projeto em sí. Se o seu projeto vai usar alguns recursos do Zend Framework, e são muitos, utilize o Zend_AMF. Caso contrário, use AMFPHP.? Aqui chegamos a um impasse do qual julgo ser mais importante do que a briga entre Zend e AMFPHP: você ainda pensa em criar um projeto sem o Zend Framework? Você irá criar tudo que precisa “na mão” ou vai usar componentes de terceiros? Falo isso porque se um projeto em PHP é iniciado, o uso do Zend Framework irá acelerar muito o processo do mesmo. Rotinas como enviar email, acessar a sessão do php, gerenciar usuários com ACL, persistência de dados, acesso ao twitter… são todos muito bem implementados com o Zend e o Zend Framework é mantido pela mesma empresa que mantém o PHP, então não existe biblioteca mais segura em termos de continuidade do que esta.

E quais tecnologias vamos usar nas “melhores práticas” ?

Agora que discutimos as duas perguntas mais perguntadas em 2010 vamos a esta solução que julgo, pessoalmente, ser muito boa:

No cliente:

  • Adobe Flash Burrito e Flex SDK 4.5 (Basta baixar e instalar o Flash Burrito: http://labs.adobe.com/technologies/flashbuilder_burrito/).
  • SWIZ Framework (http://swizframework.org/)

No servidor:

  • PHP
  • Zend Framework (http://www.zend.com/community/downloads)
  • WAMP Server (para rodar o PHP na própria máquina – http://www.wampserver.com/en/download.php)
  • Netbeans ou Eclipse PDT – Eu estou gostando mais do Netbeans, então vou usá-lo.? (http://netbeans.org/downloads/index.html? – Versão PHP)

?

Certifique-se de ter tudo instalado, para que possamos dar prosseguimento no artigo.

Estrutura de pastas e projetos

Outra dúvida comum dos usuários, é definir a estrutura de pastas do projeto. Como instalamos o WAMP Server, ele nos fornece uma pasta onde é possível ter acesso pelo nacegador, através do endereço “localhost”. Isto é, ao acessarmos http://localhost/ o WAMP Server cuida de apontar para o diretório c:wampwww (que é o que chamamos de “document root”). Para que possamos entender a estrutura do projeto, é necessário compreender uma particularidade do Flex. Diferentemente do PHP, os arquivos que estão dentro do projeto Flex não precisam ser enviados ao servidor (os arquivos mxml, as, etc). veja que o Flex compila todos os mxml/as do projeto e gera um único arquivo swf. Este arquivo sim DEVE estar no diretório web do projeto!

Vamos então criar o projeto “melhoresPraticas” da seguinte forma:

  1. Crie a pasta c:wampwwwmelhoresPraticas Este é o diretório público do projeto, acessado através de http://localhost/melhoresPraticas?????????
  2. Crie a pasta c:wampwwwmelhoresPraticasclasses Este é o diretório onde iremos criar as nossas classes PHP
  3. Crie a pasta c:wampwwwmelhoresPraticasvos Este é o diretório onde as classes VOs serão criadas
  4. Crie a pasta c:wampwwwmelhoresPraticasZend Aqui você copia/cola o Zend framework, de forma que o arquivo melhoresPraticasZendLoader.php esteja acessível
  5. No Flash Builder, crie o projeto “melhoresPraticas”. Você pode deixar o DefaultLocation como está. Não clique em Finish, clique em Next, até chegar na configuração do “Compiled Flex application location”. Ou seja, aqui você irá informar para onde os aquivos compilados do flex irão ficar. Coloque o seguinte caminho: c:wampwwwmelhoresPraticasbin-debug. Não clique em Finish, clique em Next, e em Library Path, adicione a biblioteca swiz (o arquivo swc). Em “Output folder URL”, coloque: http://localhost/melhoresPraticas/bin-debug
  6. Com o projeto pronto, clique no botão RUN. Deve então surgir uma página em branco no endereço: http://localhost/melhoresPraticas/bin-debug/melhoresPraticas.html
  7. No Netbenas ou no eclipse, crie o projeto php apontando para c:wampwwwmelhoresPraticas

Testando a conexão

Com os projetos prontos, iremos inicialmente realizar uma simples conexão entre o Flex e o PHP. Isso é útil para que possamos começar com trabalho “pesado”. Para conectarmos o Flex no PHP, preciamos criar uma classe de conexão no Flex, que iremos chamar de ServiceBase, e um arquivo que recebe esta conexão no PHP, que chamaremos de gateway.php.

Para criar a classe ServiceBase, use o Flash Builder e acione o menu File > New > ActionScript Class e crie a classe de acordo com a imagem a seguir:

image

Classe ServiceBase:

package services
{
??? import mx.controls.Alert;
??? import mx.rpc.events.FaultEvent;
??? import mx.rpc.remoting.RemoteObject;
???
??? public dynamic class ServiceBase extends RemoteObject
??? {
??????? public function ServiceBase(classe:String)
??????? {
??????????? super(“zend”);
???????????
??????????? /*
???????????? * Como o arquivo swf está na pasta bin-debug,?
???????????? * precisamos subir um nível para chegarmos ao
???????????? * arquivo gateway.php
???????????? */
??????????? this.endpoint = “../gateway.php”;
???????????
??????????? this.source = classe;
??????????? this.addEventListener(FaultEvent.FAULT,OnFault);
??????? }
???????
??????? protected function OnFault(e:FaultEvent):void
??????? {
??????????? Alert.show(e.fault.faultString,”Erro” );
??????? }
??? }
}

Esta classe tem como principal objetivo estabelecer o endpoint, que é o gateway.php que ainda vamos criar. O atributo source define qual a classe que iremos acessar na pasta classes. Também adicionamos um listener genérico caso haja alguma falha na conexão. Veja que a classe é dinâmica (dynamic), ou seja, podemos chamar métodos da classe sem que eles estejam implementados na classe. Isso é útil pois os métodos chamados nesta classe serão os métodos remotos do PHP.

No servidor, temos que criar o arquivo gateway.php, com o seguinte código:

//Adiciona o autoloader do Zend Framework
// Assim todas as classes do framework
//? serão carregadas quando precisarem
require_once “Zend/Loader/Autoloader.php”;
Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);

//Instancia o servidor Zend_AMF
$server = new Zend_Amf_Server();

//Habilita o modo de desenvolvimento, retornando
// mensagens de erro. Comente esta linha quando
//?? estiver em modo de produção
$server->setProduction(false);

//Adiciona este diretorio como um diretorio de
// classes que podem ser usadas pelo Flex
$server->addDirectory(dirname(__FILE__).”/classes”);
set_include_path(dirname(__FILE__).”/vos”);

//TODO: Adicionar VOs

//Dependendo da requisição do Flex, irá
// chamar a classe correspondente, respondendo
//?? em formato AMF o que a classe responder.
echo $server->handle();

//Não fechar a tag PHP, nunca !!

?

O arquivo gateway.php é o ponto de entrada para as classes em PHP. Veja que inicialmente fazemos um include do Autoloader.php para que todas as classes do Zend Framework sejam instanciadas sem a necessidade de realizar requeires. Criamos então a instância do Zend_AMF_Server, que irá cuidar para que o flex consiga conversar com o PHP via AMF. Adicionamos o diretório classes como um diretório do AMF, onde as classes serão expostas ao flex e usamos o set_include_path para adicionar as classes que estão na pasta “vos” no path global do php, para que não precisamos fazer include das mesmas. Depois adicionaremos mais código sobre as classes VOs.

Na pasta “classes”, criamos a classe Teste, e o método sayHelloWorld. O nome do arquivo tem que ser o mesmo nome da classe, ou seja, Teste.php.

class Teste {
??? public function sayHelloWorld($name)
??? {
??????? return “Hello World $name”;
??? }
}

//Não feche a tag PHP!

?

Agora voltaremos ao Flex para que ele possa acessar a classe teste. No arquivo melhoresPraticas.mxml, adicionamos o seguinte código:

?


http://ns.adobe.com/mxml/2009″
?????????????? xmlns:s=”library://ns.adobe.com/flex/spark”
?????????????? xmlns:mx=”library://ns.adobe.com/flex/mx” minWidth=”955″ minHeight=”600″>
???
??????? ??????????? import mx.controls.Alert;
??????????? import mx.rpc.events.ResultEvent;
???????????
??????????? import org.swizframework.utils.services.ServiceHelper;
???????????
??????????? import services.ServiceBase;
??????? ]]>
???

???
???
??????? ???????????
??????????? var testeService:ServiceBase = new ServiceBase(“Teste”);
??????????? var serviceHelper:ServiceHelper = new ServiceHelper();
???????
??????? serviceHelper.executeServiceCall(
??????????? testeService.sayHelloWorld(“Daniel”),
??????????? function(e:ResultEvent):void{
??????????????? Alert.show(e.result.toString());
??????????? });
???????
??????? ]]>
???

???

?

Como estamos realizando um teste, fazemos o acesso ao PHP no evento creationComplete da aplicação. Criamos a variável testeService que é do tipo ServiceBase, repassando o parâmetro que é o nome da classe no PHP, ou seja, “Teste”. Também criamos a variável serviceHelper que pertence ao Swiz e é um facilitador de acessos ao PHP. Usamos no serviceHelper? o método executeServiceCall, que irá chamar remotamente o método sayHelloWorld repassando o parâmetro “Daniel” e quando concluído, executará a função que está no segundo parâmetro, realizando um Alert.

Ao executar esta aplicação, quando é carregada surgirá a mensagem de retorno do PHP:

?

image

Criando as classes em Service

Com o teste de conexão realizado, podemos avançar mais no código! A primeira refatoração que faremos é em relação as classes que estão na pasta service. Até agora criamos o seguinte código:

??? var testeService:ServiceBase = new ServiceBase(“Teste”);

Ao invés de criar a instância de ServiceBase repassando uma string que é o nome da classe, iremos criar a classe TesteService, da seguinte forma:

image

package services
{
??? public dynamic class TesteService extends ServiceBase
??? {
??????? public function TesteService()
??????? {
??????????? super(“Teste”);
??????? }
??? }
}

Veja que, ao criarmos a classe TesteService, podemos alterar o código da aplicação principal da seguinte forma:

var testeService:TesteService = new TesteService();

Implementando o SWIZ

Um dos melhores benefícios que o SWIZ traz é a possibilidade de separar todo o código Flex em camadas, assim como é feito no padrão MVC. Se você ainda não conhece SWIZ, é melhor conhecer, pois se está lendo este artigo está procurando criar aplicações com uma qualidade melhor e não há como chegar a esse nível sem um framework. O Swiz é o o melhor em termos de custo/benefício, porque nao é o mais fácil de aprender nem o mais complicado, e nao é o mais simples e nem o mais completo. É o meio termo em tudo.

Para usarmos o SWIZ, preciamos estabelecer algumas pastas dentro do projeto Flex, que serão nossas camadas. São elas:

  • config: contém os arquivos que chamamos de “bean”, que são os arquivos que fornecem informações para serem injetadas em outras classes
  • controllers: contém os arquivos que “ditam” a dinamica da camada de visualização
  • services: contém os arquivos que fazem o acesso ao PHP
  • events: contém eventos que podem ser disparados e mediados pelo flex
  • valueObjects: são os VOs que iremos usar na aplicação
  • views: contém os formúlários, é a camada de visão

Na pasta config, iremos criar o arquivo Bean.mxml, com o seguinte código:

??? xmlns:fx=”http://ns.adobe.com/mxml/2009″
??? xmlns:s=”library://ns.adobe.com/flex/spark”
??? xmlns:swiz=”http://swiz.swizframework.org”
??? xmlns:services=”services.*”
??? >
???
???
???

?

Neste bean, criamos a variável “testeService”, que é o tipo TesteService. Atenção quando ao uso de letras maiúsculas e minúsculas.? Sempre voltaremos no Bean.mxml para adicionar mais variáveis e com isso, injetá-las nos formulários e controllers da aplicação. Precisamos ainda configurar o Swiz no projeto principal da aplicação (melhoresPraticas.mxml):


http://ns.adobe.com/mxml/2009″
?????????????? xmlns:s=”library://ns.adobe.com/flex/spark”
?????????????? xmlns:mx=”library://ns.adobe.com/flex/mx”
?????????????? xmlns:swiz=”http://swiz.swizframework.org”
?????????????? minWidth=”955″ minHeight=”600″ xmlns:config=”config.*”>
???
???
???????
???????????
???????????????
???????????

???????????
???????????
??????????????? ??????????????????? eventPackages=”events.*”
??????????????????? viewPackages=”views.*”
??????????????????? />
???????????

???????????
???????????
???????????????
???????????

???????????
???????

???

???

?

Esta configuração, adicionada dentro do fx:Declarations, realiza uma configuração padrão no SWIZ. Basicamente adicionamos o Bean que criamos e definimos onde as classes relacionadas a eventos e formulários ficarão. Também definimos um LOG que será apresentado na aba Console do Flex se estiver rodando em modo de Debug.

Após a configuração

Podemos por exemplo criar a tela de login, e outras telas do sistema. Deixarei o código fonte da aplicação para que você possa olhar com calma.

Pegue o código fonte aqui

Conclusão

A lista a seguir é um resumo de melhores práticas que julgo importantes

  • Use módulos/sub applications somente se precisar mesmo. Não comece um projeto de 10 telas querendo usar módulos para cada tela.
  • Separe sua aplicação em camadas. Você escreve mais e cria mais artigos, mas o projeto fica mais consistente.
  • Você não precisa criar o arquivo services-config.xml para conectar sua app no servidor. Pode-se criar uma classe cujo o endpoint é um caminho RELATIVO ao gateway.
  • Use o caminho RELATIVO sempre, para faclitar o deploy da sua app. Isto é, use “../gateway.php” ao invés de “http://localhost/gateway.php”.
  • Injete o controller na view, para passar dados à ela. Se deseja enviar mensagens para a view, então use eventos
  • Não injete a view no controller.
  • Use o dispatcher do SWIZ.
  • Use o serviceHelper do SWIZ.
  • Quando criar um formulário na view, faça o databind com uma variável do controller.
  • Use eventos com moderação. Particularmente eu uso os eventos para notificar a view de alguma mudança, nunca para passar dados, que é função do controller.
  • Se você quer chamar um método da view pelo controller, use eventos.
  • Mais?
Fev 15

Adding new layout to Dashboard project – Part 1

Escrito por Pablo Souza em 1, 2009, 4, 6, Adobe, app, AR, arte, blog, class, components, custom, Flex, Flex 4, for, IE, if, image, int, layout, library, mg, MXML, O, on, Ria’s Geral, RTW, screen, skins, Source Code, spark, state, TAT, Tech, Widget, window, XML, XP @ 02 15th, 2011 | via http://rectius.com.br/blog | Sem comentários
Pablo Souza
? 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 »

In the yesterday’s post I released the source code of a Dashboard application that uses custom Spark components. Today I’ll show how to change its layout through Flex 4 skinning techniques.
Analyzing the source code you are gonna realize that this application has 2 custom Spark components: PodManager and PodWindow. Today we’ll focus in the implementation of the PodManager component, which is responsible to manage the PodWindow instances, define where it can be instantiated and for the Dashboard features.

Below you can see how to instantiate the PodManager component, define its skin class and also how you can split the PodWindow instances into two content areas, firstElements e secondElements :

<components:PodManager id="podManager"
    skinClass="com.rectius.examples.pod.assets.skins.PodManagerVerticalSkin"
    left="10" right="10" top="40" bottom="15">
?
    <components:firstElements>
        <view:ChartExpenses
          width="100%" height="100%" title="Expenses" />
        <view:ChartProfit
          width="100%" height="100%" title="Profit"/>
    components:firstElements>
?
    <components:secondElements>
        <view:ChartWidget
          width="100%" height="100%" title="Widget"/>
    components:secondElements>
?
components:PodManager>

And the result is the same you’ve already seen in the last post:

And If you wanna change the PodWindow’s layout, displaying it horizontally? Just do this:

<components:PodManager id="podManager"
    skinClass="com.rectius.examples.pod.assets.skins.PodManagerVerticalSkin"
    left="10" right="10" top="40" bottom="15">
?
    <components:firstElements>
        <view:ChartExpenses
          width="100%" height="100%" title="Expenses" />
        <view:ChartProfit
          width="100%" height="100%" title="Profit"/>
        <view:ChartWidget
          width="100%" height="100%" title="Widget"/>
    components:firstElements>
?
components:PodManager>

The above code shows that you don’t need to change the component skin to change its layout, fot that you can just intantiate all PodWindow in the same content area, into firstElements. But why the PodWindow instances are being displayed horizontally? Why don’t vertically? In order to understand it let’s analyse the skin class of the PodManager component:

<?xml version="1.0" encoding="utf-8"?>
<s:Skin
    xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:mx="library://ns.adobe.com/flex/mx">
    -- host component -->
    <fx:Metadata>
        [HostComponent("com.rectius.examples.pod.components.PodManager")]
    fx:Metadata>
?
    -- states -->
    <s:states>
        <s:State name="normal" />
        <s:State name="disabled" />
    s:states>
?
    <s:VGroup width="100%" height="100%">
        <s:HGroup id="firstContainer"
            width="100%" height="100%"/>
        <s:HGroup id="secondContainer"
            width="100%" height="100%"/>
    s:VGroup>
?
s:Skin>

The PodWindow instances are being displayed horizontally because the container firstContainer is a HGroup. Let’s turning over the PodWindow’s orientation by creating a new skin class called PodManagerHorizontalSkin :

<?xml version="1.0" encoding="utf-8"?>
<s:Skin
    xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:mx="library://ns.adobe.com/flex/mx">
    -- host component -->
    <fx:Metadata>
        [HostComponent("com.rectius.examples.pod.components.PodManager")]
    fx:Metadata>
?
    -- states -->
    <s:states>
        <s:State name="normal" />
        <s:State name="disabled" />
    s:states>
?
    <s:HGroup width="100%" height="100%">
        <s:VGroup id="firstContainer"
            width="100%" height="100%"/>
        <s:VGroup id="secondContainer"
            width="100%" height="100%"/>
    s:HGroup>
?
s:Skin>

And that’s the result:

Let’s instantiate again PodWindow components into the content area secondElements:

<components:firstElements>
    <view:ChartProfit
        width="100%" height="100%"
        title="Profit"/>
components:firstElements>
?
<components:secondElements>
    <view:ChartExpenses
        width="100%" height="100%"
        title="Expenses" />
    <view:ChartWidget
        width="100%" height="100%"
        title="Widget"/>
components:secondElements>

And that’s the final result:

Hope you enjoy it!

Fev 4

Iniciando com Adobe AIR for Android

Escrito por Leonardo França em 1, 4, 6, action, Actionscript, Actionscript 3.0, Adobe, Adobe Air, Air, Android, api, aplicacao, Aplicativos, app, apple, AR, Artigo, Artigos, BI, blog, Blogs, builder 4, case, class, Componente, Componentes, Curso, Cursos, Desenvolvedor, desenvolvedores, Desenvolvimento, development, err, exemplo, Exemplos, Ferramenta, flash, flash builder, Flash Builder 4, Flash Platform, Flash Player, Flex, for, Google, html, ide, IE, if, image, Iniciando, iphone, labs, mg, mobile, NaN, News, newsletter, O, on, padrão, PHP, platform, player, pt, RIA, Ria’s Geral, runtime, SDK, site, SmartPhone, Tech, Tecnologia, Tema, Tutoriais, Tutorial, UI, update, Ved, Widget @ 02 4th, 2011 | via http://www.leonardofranca.com.br | Sem comentários
Leonardo França
? 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 »



Já temos há algum tempo a possibilidade de criar aplicativos para Android com a Flash Platform, usando o Adobe AIR ou Flash Player. Além disso o Android vem se tornando a cada dia mais popular, diariamente surgem varios aparelhos cada vez mais poderosos rodando o sistema operacional do Google e a Android Market foi reformulada para facilitar os usuarios e desenvolvedores.
Um detalhe importante é que não são todas as versões do Android que suportam o Adobe AIR e o Flash Player, é necessario que o smartphone tenha o Android 2.2(Froyo) ou posterior, e as versões do AIR deve ser a 2.5 ou Flash Player 10.1.

O desenvolvimento de aplicativos com a Flash Platform para o Android só é possivel a partir do Android 2.2(Froyo) e usando Adobe AIR 2.5 e Flash Player 10.1

Ferramentas de desenvolvimento
Adobe Flash CS5 Professional – É possivel desenvolver aplicativos para Android usando o Adobe Flash CS5 Professional, na ultima versão foi adicionado um profile “AIR for Android”, gerando o arquivo ja com o tamanho padrão de 480?800. Por enquanto não existem componentes pré-programados para Android e não é recomendado usar os já existentes no Flash.

Adobe Flash Builder 4 (burrito) – A Adobe disponilibizou juntamente com o Flash Builder 4 (burrito), o SDK do Flex versão 4.5, com componentes otimizados para dispositivos moveis, para quem se recordar, a Adobe tinha um projeto de uma versão do Flex para mobile chamado “Slider”, em virtude do rápido crescimento do processamento do smartphones atuais, a Adobe decidiu juntar esse projeto ao SDK padrao do Flex.

Qualquer editor de texto – Você pode usar qualquer editor de texto salvando na extensão .as ou seu editor ActionScript favorito.

Runtime Adobe AIR
Para que seu aplicativo rode em um dispotivo com Android, é necessario que seja instalado o runtime do Adobe AIR para logo em seguida você instalar seu aplicativo.

Distribuição
Você pode gerar o instalador do seu aplicativo pelo Flash Builder, Flash CS5 ou por linha de comando usando o ADT. É gerado um aplicativo com a extensão .apk. A distribuição pode ser feita atraves da Android Market, para se tornar um publisher da Android Market, basta pagar a inscrição de 25 dolares.
Acompanhe esse tutorial sobre como publicar seu aplicativo na Android Market
Caso você crie algo para rodar no Flash Player, basta rodar pelo navegador do smartphone, a Adobe tem uma página para que você possa ver alguns sites que usam Flash Player e que foram otimizados para mobile. Acesse o Adobe Flash Showcase for Mobile

Acompanhe alguns tutoriais:
Exemplos no Adobe Labs
Advanced Android development
Creating mobile apps for Android using Flash Builder “Burrito” and Flex SDK “Hero”
Test Drive for Mobile: Style the application

Nos proximos artigos, mostrarei como usar alguns recursos do AIR for Android :D

Fev 3

Apresentação e código do “Adobe @ the Museum”

Escrito por Mauro Martins em .NET, 1, 3d, 4, 6, Adobe, Adobe User Group, api, Apresentação, AR, AUG, back, BI, blog, class, classe, classes, código, demo, email, err, event, Evento, Eventos, exemplo, Experiências, facebook, flash, Flash / Flex, flash builder, Flex, for, framework, gmail, ide, IE, if, image, labs, linkedin, Links e sugestões, map, mg, mobile, O, on, Projectos, RIA, Ria’s Geral, rss, tag, Tech, Tema, template, UI, User Group @ 02 3rd, 2011 | via http://imauro.com/blog/ | Sem comentários
Mauro Martins
? 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 »

augPortoLogo Apresentação e código do Adobe @ the Museum

Olá a todos!

Já lá vão umas semanas desde que não escrevo no blog, mas tudo tem a sua razão! Andei bastante atarefado a preparar o evento do Adobe User Group Porto, que decorreu no Sábado que passou.

O evento chamou-se “Adobe @ the Museum” e foi um sucesso! O feedback recolhido tem sido bastante positivo!

No evento, fiz uma apresentação centrada na utilização do Flash Builder (neste caso versão Burrito)  para criar conteúdos para a tablet da Blackerry, o Playbook.

Aqui têm os slides da apresentação e o código de todos os projectos que demonstrei no evento que incluem:

  • Um leitor de RSS utilizando a nova Framework do Flex direccionada para mobile (Flex Hero);
  • Um exemplo em que utilizo as classes QNX (nativas do sistema operativo do Playbook);
  • Aplicação criada pela Adobe, a já conhecida “Employees directory”;

PS: Mais um ícone muito especial foi adicionado aqui ao lado direito do blog! É isso mesmo! Adobe Community Professional icon smile Apresentação e código do Adobe @ the Museum Mas isso fica para um próximo post!

Um abraço a todos!

  • Blog this on Blogger
  • Subscribe to the comments for this post?
  • Digg this!
  • Share this on Facebook
  • Email this via Gmail
  • Share this on LinkedIn
  • Email this to a friend?
  • Stumble upon something good? Share it on StumbleUpon
  • Tweet This!
Get Shareaholic



Fev 3

Apresentação e código do “Adobe @ the Museum”

Escrito por Mauro Martins em .NET, 1, 3d, 4, 6, Adobe, Adobe User Group, api, Apresentação, AR, AUG, back, BI, blog, class, classe, classes, código, demo, email, err, event, Evento, Eventos, exemplo, Experiências, facebook, flash, Flash / Flex, flash builder, Flex, for, framework, gmail, ide, IE, if, image, labs, linkedin, Links e sugestões, map, mg, mobile, O, on, Projectos, RIA, Ria’s Geral, rss, tag, Tech, Tema, template, UI, User Group @ 02 3rd, 2011 | via http://imauro.com/blog/ | Sem comentários
Mauro Martins
? 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 »

augPortoLogo Apresentação e código do Adobe @ the Museum

Olá a todos!

Já lá vão umas semanas desde que não escrevo no blog, mas tudo tem a sua razão! Andei bastante atarefado a preparar o evento do Adobe User Group Porto, que decorreu no Sábado que passou.

O evento chamou-se “Adobe @ the Museum” e foi um sucesso! O feedback recolhido tem sido bastante positivo!

No evento, fiz uma apresentação centrada na utilização do Flash Builder (neste caso versão Burrito)  para criar conteúdos para a tablet da Blackerry, o Playbook.

Aqui têm os slides da apresentação e o código de todos os projectos que demonstrei no evento que incluem:

  • Um leitor de RSS utilizando a nova Framework do Flex direccionada para mobile (Flex Hero);
  • Um exemplo em que utilizo as classes QNX (nativas do sistema operativo do Playbook);
  • Aplicação criada pela Adobe, a já conhecida “Employees directory”;

PS: Mais um ícone muito especial foi adicionado aqui ao lado direito do blog! É isso mesmo! Adobe Community Professional icon smile Apresentação e código do Adobe @ the Museum Mas isso fica para um próximo post!

Um abraço a todos!

  • Blog this on Blogger
  • Subscribe to the comments for this post?
  • Digg this!
  • Share this on Facebook
  • Email this via Gmail
  • Share this on LinkedIn
  • Email this to a friend?
  • Stumble upon something good? Share it on StumbleUpon
  • Tweet This!
Get Shareaholic



Fev 3

Apresentação e código do “Adobe @ the Museum”

Escrito por Mauro Martins em .NET, 1, 3d, 4, 6, Adobe, Adobe User Group, api, Apresentação, AR, AUG, back, BI, blog, class, classe, classes, código, demo, email, err, event, Evento, Eventos, exemplo, Experiências, facebook, flash, Flash / Flex, flash builder, Flex, for, framework, gmail, ide, IE, if, image, labs, linkedin, Links e sugestões, map, mg, mobile, O, on, Projectos, RIA, Ria’s Geral, rss, tag, Tech, Tema, template, UI, User Group @ 02 3rd, 2011 | via http://imauro.com/blog/ | Sem comentários
Mauro Martins
? 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 »

augPortoLogo Apresentação e código do Adobe @ the Museum

Olá a todos!

Já lá vão umas semanas desde que não escrevo no blog, mas tudo tem a sua razão! Andei bastante atarefado a preparar o evento do Adobe User Group Porto, que decorreu no Sábado que passou.

O evento chamou-se “Adobe @ the Museum” e foi um sucesso! O feedback recolhido tem sido bastante positivo!

No evento, fiz uma apresentação centrada na utilização do Flash Builder (neste caso versão Burrito)  para criar conteúdos para a tablet da Blackerry, o Playbook.

Aqui têm os slides da apresentação e o código de todos os projectos que demonstrei no evento que incluem:

  • Um leitor de RSS utilizando a nova Framework do Flex direccionada para mobile (Flex Hero);
  • Um exemplo em que utilizo as classes QNX (nativas do sistema operativo do Playbook);
  • Aplicação criada pela Adobe, a já conhecida “Employees directory”;

PS: Mais um ícone muito especial foi adicionado aqui ao lado direito do blog! É isso mesmo! Adobe Community Professional icon smile Apresentação e código do Adobe @ the Museum Mas isso fica para um próximo post!

Um abraço a todos!

  • Blog this on Blogger
  • Subscribe to the comments for this post?
  • Digg this!
  • Share this on Facebook
  • Email this via Gmail
  • Share this on LinkedIn
  • Email this to a friend?
  • Stumble upon something good? Share it on StumbleUpon
  • Tweet This!
Get Shareaholic



Jan 19

O Adobe Flex

Escrito por SamuelFacchinello em .NET, 1, 4, 6, Adobe, Adobe Flex, Air, Animações, app, AR, BI, blog, Blogs, C#, chrome, comunicação, Dica, Dicas, Download, efeito, efeitos, empresas, err, exemplo, Exemplos, explorer, Ferramenta, firefox, flash, flash builder, Flex, for, free, gc, Google, grátis, html, ide, IE, int, interface, internet, Java, labs, mg, Microsoft, O, on, online, Pessoal, PHP, player, Plugin, produto, programação, RIA, Ria’s Geral, S+S, serviço, Serviços, TAT, Tech, Tema, Teste, Treinamento, Tutoriais, UI, Vídeo, Vídeos, web, Webservice, window, windows, XML, XP @ 01 19th, 2011 | via http://desenvolvendoemflex.blogspot.com/ | Sem comentários
SamuelFacchinello
? 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 »

Olá!!

Bom, vamos começar do começo!!! Aqui vou explicar um pouco sobre o Adobe Flex e suas maravilhas.
Començando…

  • O que é o Adobe FLEX??
É uma linguagem de programação baseada na plataforma Flash da Adobe (mas não se engane, o Flex não é para fazer animações com “linha de tempo”, Adobe Flex é para fazer Sistemas Web).
Hoje, o flex não é uma ferramenta muito conhecida entre as empresas que utilizam sistemas na web, mas isso já está mudando, graças a empresas e/ou pessoas que estudam mais e mais para sempre inovar com seus produtos e serviços.

  • O que o Flex tem de bom?

O Flex é famoso pela sua rica interface gráfica, pela sua facilidade de aprendizado, também pela facilidade de comunicação com outras linguagens (JAVA, PHP, etc) seja por Xml, WebService, RemoteObject, etc. Ele tem efeitos e transições que deixam o usuário final maravilhado com a interface das aplicações desenvolvidas com essa ferramenta.

  • Como começo??

É muito fácil de aprender a desenvolver em Flex, para começar você deve fazer o download do Flash Builder (versão teste por 60 dias) aqui (você também pode solicitar uma licença estudante para não comerciais aqui).
É só instalar e começar a se divertir. :D
*Para rodar as aplicações desenvolvidas em Flex, precisa de um navegador (firefox, chrome, ie, opera, etc) e o plugin do FlashPlayer instalado.
A própria Adobe disponibiliza um treinamento grátis (em inglês) das funções básicas do Flex, esses vídeos podem ser visto aqui.

  • Exemplos de aplicações

A muitos exemplos espalhados pela internet, mas existe o Tour de Flex que pode ser instalado logo abaixo (versão em AIR) ou então clicar aqui e ver a versão online.

<p>&amp;amp;amp;lt;p&amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;br&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;br&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;br&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Con&amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;lt;/p&amp;amp;amp;gt;</p>

  • Conclusão

A principio é isso pessoal, em breve novos posts com dicas e tutoriais.
Qualquer dúvida é só entrar em contato.

Abraço, Obrigado.

« Entradas anteriores | Entradas recentes »

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 2791 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