logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!
Nov 25

Voltando ao mundo HTML+JS e agora?

Escrito por Erko Bridee em 1, 2.0, 2009, 3d, 4, 6, action, Adobe, Adobe Flex, Air, api, aplicacao, app, AR, Arquitetura, auto, back, BI, blog, browser, C#, chrome, css, css3, Curso, Cursos, dados, demo, Desenvolvimento, Design, Dica, err, Excel, firefox, flash, Flex, fonte, fonts, for, git, Google, html, html5, ide, IE, if, int, Java, Javascript, JQuery, layout, Linux, Livro, Mate, Mercado, mg, mvc, NaN, novidade, Novidades, O, on, Pessoal, Projetos, pt, RIA, Ria’s Geral, S+S, tag, TAT, Tema, Twitter, UI, UX, vs, web, web design, XP @ 11 25th, 2011 | via http://blog.erkobridee.com | Sem comentários
Erko Bridee
? 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 adianta chorar o leite derramado, depois que a Adobe lan?ou as ?ltimas not?cias vemos que o mercado indo de vez para o HTML5 e n?o adianta reclamar, daqui para frente mais projetos ir?o demandar conhecimentos em HTML5 (novas tags), Javascript e sobre as novidades do CSS3.

Voltando ao mundo HTML teremos que voltar inevit?velmente ao uso do Javascript, mas ao menos a boa not?cia hoje ? que diferente de anos atr?s temos dispon?veis boas bibliotecas javascript para nos ajudar na dif?cil tarefa de fazer uma aplica??o (que tente) funcionar em todos os principais web browsers do mercado (Google Chrome, Mozilla Firefox e o tem?vel IE)

Quanto ao Javascript, hoje pelo que tenho visto ? quase imposs?vel se falar em javascript sem associar ao JQuery, que ajuda muito a criar um c?digo mais limpo e organizado e at? podemos dizer, sofrer menos com o uso do javascript.

Sobre Javascript e JQuery recomendo os respectivos materiais para observar:

The JQuery Essentials

Aos que ficaram interessados pelo JQuery o @bielversallini mandou uma dica muito boa de curso web de JQuery, o jQuery Air, tamb?m jQuery Fundamentals e Livro fundamentos de jQuery 100% traduzido para pt-BR

jQuery Proven Performance Tips & Tricks, 2011

Confesso que desanimei ao ver esta apresenta??o, pois basicamente todos os recursos que gostei no JQuery s?o os mais lentos e recomendados para que n?o sejam usados a menos que n?o haja outra alternativa ou extremamente necess?rios.

jQuery & Responsive Web Design

Excelente dica de como projetar uma p?gina/sistema que se adeque as dimens?es dispon?veis (por alguns este recurso ? chamado de layout fuido/adaptativo). Como estou falando sobre layout recomendo olhar tambem o Knockout.js que possui recursos interessantes para auxiliar na defini??o da view.

Agora para falar a verdade mesmo o melhor material sobre desenvolvimento HTML+JS que vi que o autor foi real e sincero sobre o tema ? o respectivo abaixo:

Taking JavaScript Seriously (feat. Backbone.js)

Como ? dito nos slides, o javascript n?o ? a melhor linguagem do mercado, ela foi escrita em 10 dias, possui muitas defici?ncias, mas temos que aprender pois n?o temos nenhuma outra op??o.

Outro detalhe que me chamou aten??o e achei muito ?til foi a apresenta??o do Backbone.js como uma alternativa para suprir a necessidade de organizar o c?digo em algo que tenta ser o mais pr?ximo poss?vel do MVC.

Mas e sobre arquitetura aplica??es de larga escala? Bom recomendo observar este material abaixo, o qual indica as boas prat?cas de mercado e atuais recursos dispon?veis:

Large-scale JavaScript Application Architecture

Cheguei at? esta apresenta??o atrav?s deste post.

Aten??o este texto a seguir expressa minha oponi?o pessoal

Sinceramente esta apresenta??o foi o santo gral da agonia, pois para mim se trata de uma regress?o tecnol?gica brutal, irei mudar esta minha opini?o no dia em que, eu consiga ter uma arquitetura com um mesmo n?vel que possuo hoje com Adobe Flex + Swiz, como a descrevi neste post, quando este dia chegar (se ? que vai) irei dizer que podemos ent?o come?ar a pensar em utilizar o HTML+JS para solu??es corporativas.

E vamos a luta, retornando ao velho mundo do HTML, por alguns chamados de revolucion?rio mundo do HTML5…

Tweet

Veja também:

  • [Canvas vs. Flash] Butterfly 3D (Canvas + JavaScript)
  • [Adobe Flex] Definindo o foco na aplicação
  • Moto elétrica da Mavizen atinge 210 Km/h e vem equipada com Linux e WiFi
  • Elly Tran Ha, sexy blogger do Vietnã
  • FontStruct : precisa de uma fonte diferente?
Nov 16

LCCS e PHP com ZendAMF

Escrito por Leonardo França em .NET, 1, 2.0, 4, Adobe, AMF, amfphp, AR, Artigo, Artigos, C#, catch, class, classe, classes, developer, Documentação, exemplo, Exemplos, flash, Flex, Flex 4, for, framework, function, handle, image, int, Java, Javascript, live, LiveCycle, Mercado, mg, O, on, Password, PHP, player, portal, programação, pt, rest, RIA, Ria’s Geral, S+S, SDK, server, swf, Teste, try, UI, web, zend, zendAMF, zendFramework @ 11 16th, 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 »

O Adobe LiveCycle Collaboration Service possui em seu SDK, exemplos de integração com as principais linguagens de programação web do mercado como PHP, Java, Python, etc.
Na documentação da Adobe, é recomendado o uso do AMFPHP ou o PHP puro mesmo, mas nada impede de usar tranquilamente em conjunto com o ZendFramework (usando ZendAMF)
Ryan Stewart escreveu dois artigos mostrando a implementação com PHP e REST.

  • http://ria.dzone.com/articles/integrating-php-flash
  • http://ria.dzone.com/articles/php-flash-rest

Uma observação sobre o artigo de Ryan, no Flex 4, Adobe passou a usar o swfobject, então o modo de pegar os parâmetros via URL e passar para o SWF fica desse modo:

PLAIN TEXT
JAVASCRIPT:

  1. var xiSwfUrlStr = “playerProductInstall.swf”;
  2. var flashvars = ;
  3. flashvars.roomURL = swfobject.getQueryParamValue(“roomURL”);
  4. flashvars.authToken = swfobject.getQueryParamValue(“authToken”);
  5. var params = ;

No SDK do LCCS, existe um arquivo chamado lccs.php, basta copiar para o mesmo diretório em que você já usa suas classes. Em seguida, adicionar o include no arquivo gateway.php

PLAIN TEXT
PHP:

  1. require_once ‘Zend/Amf/Server.php’;
  2. require_once ‘lccs.php’;
  3. require_once ‘Test.php’;
  4. /** Bootstrap */
  5. // Instantiate server
  6. $server = new Zend_Amf_Server();
  7. $server->setProduction(false);
  8. $server->setClass(‘Test’);
  9. // Handle request
  10. echo($server->handle());
  11. ?>

E está é uma simples classe para teste chamando o método que retorna o token para autenticação.

PLAIN TEXT
PHP:

  1. class Test
  2. private $account;
  3. private $room;
  4. private $devUsername;
  5. private $devPassword;
  6. private $secret;
  7. //$accountURL = “https://collaboration.adobelivecycle.com/$account”;
  8. private $accountURL;
  9. private $roomURL;
  10. function __construct()
  11. //for LCCS
  12. $this->account = “Your SDK account username from LCCS developer portal”;
  13. $this->room = “The room you want to connect to”;
  14. $this->devUsername = “Your LCCS developer account username”;
  15. $this->devPassword = “Your LCCS developer account password”;
  16. $this->secret = “The shared secret from the LCCS developer portal”;
  17. //$accountURL = “https://collaboration.adobelivecycle.com/$account”;
  18. $this->accountURL = “http://connectnow.acrobat.com/$this->account“;
  19. $this->roomURL = “$this->accountURL/$this->room“;
  20. public function getToken($data=array())
  21. try
  22. $this->account = new RTCAccount($this->accountURL);
  23. $this->account->login($this->devUsername,$this->devPassword);
  24. $session = $this->account->getSession($data['room']);
  25. $displayName = $data['displayName'];
  26. $username = $data['username'];
  27. $role = $data['role'];
  28. $token = $session->getAuthenticationToken($this->secret, $displayName, $username, $role);
  29. return $token;
  30. catch (Exception $e)
  31. throw new Exception($e->getMessage());
  32. }
  33. }
  34. ?>
Nov 11

Minha opinião atual sobre a “Morte do Flash”

Escrito por Erko Bridee em .NET, 1, 2.0, 2009, 3d, 4, 6, action, Adobe, Adobe Air, Air, Ajax, Android, api, AR, Arquitetura, back, BI, blog, Blogs, browser, C#, class, cliente, css, css3, demo, Desenvolvimento, entrevista, err, facebook, Ferramenta, flash, Flash Player, for, game, git, html, html5, ide, IE, image, int, internet, jandersonfc, jandersonfc.com, Java, Javascript, jogo, Jogos, Mercado, mg, mobile, O, on, player, Projetos, prova, pt, Redes Sociais, Revistas, Ria’s Geral, S+S, site, SmartPhone, Sun, Tecnologia, Tema, tendencia, Teste, Twitter, UI, vs, web, zend @ 11 11th, 2011 | via http://blog.erkobridee.com | Sem comentários
Erko Bridee
? 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 »

Nesses ?ltimos dias a internet est? virada em um caos depois dos boatos e anuncio da “Morte do Flash” (descont?nuo do Flash Player para disposit?vos m?veis, leia-se smartphones e tables Android/RIM), todo um medo gerado pelo combo da not?cia com a demiss?o de 750 funcion?rios da Adobe (EUA e Europa)

Minha real opini?o ? a seguir:

No mais, os projetos continuam, novos desafios est?o surgindo, novas oportunidades de ganhar dinheiro continuam aparecendo constantemente, nada de mimimi, bora usar HTML5, e que tecnologia for…

Roubando a frase do @jandersonfc disse no final desse post: As tend?ncias s?o suas aliadas

“Tecnologia, Ferramentas e metodologia s?o o meio, dinheiro no bolso ? o fim”

Se voc? ainda est? preocupado sobre a tal morte do Flash no mobile, recomendo ler o post: Adobe desiste do Flash Player plug-in para dispositivos m?veis do @igorcosta e reflita no seu texto.

Agora se voc? j? estava jogando a toalha achando que o Flash j? era, se voc? estava fechando o “caix?o”, pode executar um rollback ai, pois ontem (10/11/2011) foi disponibilizado o novo Flash Player 11.1 e AIR 3.1. Tenha em mente que a plataforma Flash ainda ter? um bom tempo de vida. Motivo banal pelo qual n?o ir?o conseguir matar o Flash, digo que talvez esse mundo mobile tenha at? que readerir ao Flash : games, ainda mais agora com o novo suporte a acelera??o gr?fica e a 3D. Outro grande motivo, se “matarem” o Flash Player hoje haver? uma revolta mundial dos jogadores do jogos do Facebook e demais redes sociais, tamb?m sabemos que o HTML5 est? a anos luz de dist?ncia da maturidade e capacidade do Flash Player atual, ent?o o Flash Player n?o morrera.

Algo que eu tenho em mente, quando penso no assunto, eu lembro da mesma agita??o que foi na ?poca do Ajax, no final aqui estamos n?s usando o Flash ao invez do Ajax para desenvolver sistemas robustos. O HTML5 para sites e algumas outras coisas at? que j? tem como utilizar, mas creio que vamos chegar na mesma situa??o que nos deparamos a alguns anos atr?s e recorreremos a algo como o Flash que ? mais robusto para desenvolvimento de sistemas.

Algu?m me diz como ? que eu fa?o uma arquitetura organizada, com pacotes no JavaScript?

Algu?m sabe se existe alguma maneira de trabalhar com IoC no JavaScript?

Fora outras quest?es para as quais n?o tenho resposta de como fazer usando HTML5 + JS + CSS3

Lembrando que a compatibilidade crossbrowser do HTML5 ? um pesadelo [mobile] [web browsers teste] [demos teste]

N?o estou dizendo que sou contra o HTML5, mas hoje ele ainda ? muito imaturo para desenvolver, leia bem: sistemas

E como n?o devemos nos apegar a tecnologia alguma, muito menos rejeitar qualquer outra que o mercado est? aderindo, recomendo o HTML5 Rocks para quem quizer estudar o HTML5.

No mais, n?o se desespere com as not?cias que voc? l? na internet, mas mantenha-se sempre atualizado, pois quem escolhe que tecnologia voc? ir? utilizar no pr?ximo projeto, provavelmente ser? o seu cliente, pedindo se roda no iPad…

Tweet

Veja também:

  • Flash Mobile 10 – Para Outubro de 2009
  • [Canvas vs. Flash] Butterfly 3D (Canvas + JavaScript)
  • Flash Player 10.1 : entrevistas e demos
  • Adobe Flash suporte completo para dispositívos móveis a caminho : agora vai
  • HTC Hero: primeiro dispositivo com Android e Flash
Nov 9

Conhecendo o LESS. The Dynamic Stylesheet.

Escrito por DClick Team em 1, 2.0, 4, 6, Adobe, Air, app, apple, AR, back, BI, browser, C#, class, classe, classes, código, css, css3, Curso, Cursos, custom, dados, demo, Desenvolvedor, Desenvolvimento, Desenvolvimento Web, Design, Destaque, Dica, Diversos, Documentação, dynamic, empresas, err, erro, error, Estilo, exemplo, Exemplos, for, function, gc, Google, html, html5, ide, IE, if, int, Java, Javascript, kit, layout, menu, Microsoft, MIX, NaN, O, on, Opinião, Outros, padrão, problema, problemas, programação, prova, pt, referencia, RIA, Ria’s Geral, RoR, S+S, Sem categoria, site, tag, TAT, Twitter, UI, uint, Utilidades, Ved, web, zend @ 11 9th, 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!

Como todos devem ter percebido, nos últimos meses o CSS3 e o HTML5 tem ganho um grande destaque no desenvolvimento web. Grandes empresas como o Google, Microsoft, Adobe e Apple estão apoiando fortemente o desenvolvimento web utilizando WebStandards. Caso você já conheça algo sobre CSS, provavelmente deve saber como é complicado a organização desses documentos em um projeto de médio ou grande porte. Dado esses problemas conhecidos, foram surgindo os chamados pré-processadores de CSS, que viabilizam a criação de documentos de estilo, adicionando novas funcionalidades.

Hoje vamos conhecer o LESS, The Dynamic Stylesheet Language. O objetivo dessa biblioteca em javascript é prover uma série de funcionalidades para as, usualmente criadas a mão, folhas de estilos. Recursos tais como, variáveis, mixins (Multiple Inheritance, Traits), mixins parametrizáveis, funções, namespaces, importação, etc. Vamos aprender como utilizar os principais recursos dessa biblioteca em um projeto e como aproveitar o melhor dessa biblioteca para organizar corretamente nossas folhas de estilo.

Variables

As variáveis ajudam-nos a definir valores que podem ser utilizados em diversas regras do nosso CSS. Elas possuem escopo assim como em uma linguagem de programação orientada a objetos, trocando em miúdos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Arquivo stylesheet.less
// Essa variável foi definida no escopo do arquivo, logo, todas as regras do arquivo podem acessar seu valor.
@siteBackgroundColor: #FF3300; // Laranja

h1
// A variável headingColor foi criada no escopo da regra h1, logo, apenas ela e outras regras criadas dentro
// do mesmo escopo tem acesso ao seu valor.
@headingColor: #333333; // Cinza

// Isto significa que, se criarmos uma outra regra chamada &.mainTitle
// Observe o uso do &.classe, isso copia a regra pai e associa uma classe, o output disso seria exatamente h1.mainTitle
&.mainTitle
// Como essa regra esta contida na regra h1, podemos acessar o valor da variável headingColor.
color: @headingColor;

}

h2
// Se tentarmos acessar o valor nessa regra, que não encontra-se contida na regra h1, receberemos um erro da biblioteca
// informando que a variável headingColor não encontra-se definida.
color: @headingColor; // Brrrrrr! Error.

O que é interessante no uso de variáveis é a reutilização e organização. Imagine uma design guideline onde existem RGBs específicos a serem seguidos, essas cores poderiam ser definidas em um documento chamado color_variables.less e adicionados ao nosso arquivo principal utilizando a clausula @import.

@Import – Importando outros arquivos

Quando um arquivo LESS é importado, todas as suas variáveis e mixins são adicionados ao arquivo principal. Os escopos serão mantidos e a extensão .less é opcional.

@import “lib.less”
@import “lib”

É possível utilizar pastas nas clausulas de @import:

@import “where/is/my/stylesheet.less”
@import “where/is/my/stylesheet”

Mixins

No LESS, mixis são como uma espécie de classe CSS que pode ser reutilizada em diversas outras regras. Quando utilizadas, todas as propriedades definidas no mixin são adicionadas a regra onde a mesma foi adicionada, caso um mixin mude, todas as regras que o referenciam serão também modificadas.

Imagine o conceito de mixin como classes CSS orientadas a objeto, o que é interessante do mixin é que temos aqui algo como uma herança múltipla, caso uma mesma instrução seja declarada em mixins diferentes, e esses mixins adicionados a uma regra, o mixin declarado por último terá vantagem na construção final do CSS da regra onde foi adicionado.

1
2
3
4
5
6
7
8
9
10
11
12
.bordered
border-top: dotted 1px black;
border-bottom: solid 2px black;

// Declaramos agora uma regra qualquer que fará uso do nosso mixin.
div.someDiv
.bordered; // Simples assim, adicionamos todas as propriedades contidas no mixin em nossa regra.

div.anotherDiv
.bordered; // A mesmas propriedades serão adicionadas nessa regra.

Quando modificarmos o mixin .bordered, todos os elementos que o estão utilizando serão modificados. Reutilização!
Vamos para um exemplo mais usável para exemplificar como é um mixin parametrizável.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Bordas arredondadas cross-browser.
// Observe que utilizamos algo parecido com uma função de javascript para declararmos nosso mixin.
// A notação de variável deve ser adicionada (@radius), com isso, criamos uma variável chamada “radius” no escopo
// do mixin que poderá ser utilizada apenas internamente pelo método.
// Observe também que declaramos um valor padrão para o parâmetro, de 5px.
.border-radius( @radius: 5px )

// Repare que utilizamos a mesma variável para todas as regras.
border-radius: @radius;
-moz-border-radius: @radius;
-webkit-border-radius: @radius;

// Para utilizarmos a regra, seguimos o mesmo padrão
div.someDiv
.border-radius; // Nesse caso estaremos utilizando o valor padrão de 5px.

div.anotherDiv
.border-radius(10px); // Nessa aplicação, modificamos o valor da propriedade para 10px.

É importante destacar que um mixin pode conter diversos parâmetros. Isso pode ser feito da seguinte forma:

1
2
3
4
5
6
// Declaramos um novo mixin
.border-radius-and-color( @radius: 5px, @borderColor: #000000 )

.border-radius( @radius ); // Observe que aqui reutilizei o mixin previamente definido. Composição de mixins.
border: 2px solid @borderColor; // Adicionamos agora a cor para a borda.

Nested Rules

Com o LESS você pode criar suas regras de CSS utilizando uma espécie de hierarquia. Vamos ver como isso funciona na prática.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Dado o CSS abaixo
div#header #menu
…
rules

div#header #menu li a
…
more rules

div#header #topNav
…
another rules

Com o LESS, o mesmo CSS acima poderia ser escrito da seguinte forma:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Como utilizar hierarquia com Less
div#header
#menu
ul
li


}
}

#topNav


}

Depois de processado, o CSS será exatamente igual. Você não precisa utilizar esse esquema de hierarquia caso não queira, é importante lembrar que o LESS é apenas uma extensão do CSS, se for de desejo do desenvolvedor, podemos escrever um código LESS sem usar nenhum recurso especial, como se fosse um CSS tradicional.

Operations

Com o LESS o seu CSS sabe fazer contas. Qualquer número, cor ou variável pode ser utilizada em uma operação aritmética.
Ele sabe identificar quando estamos utilizando uma cor ou um número, por exemplo:

1
2
3
4
5
6
7
@base: 5%;
@filler: @base * 2;
@other: @base + @filler;

color: #888 / 4;
background-color: @base-color + #111;
height: 100% / 2 + @filler;

Assim como no javascript, é possível também utilizar parênteses nas suas operações:

1
width: (@var + 5) * 2;

Color Functions

Na minha opinião um dos recursos mais úteis durante o desenvolvimento de uma aplicação. Podemos efetuar operações em cima de RGBs, por exemplo, imagine que o layout do seu website foi criado baseado-se em apenas uma cor, utilizando diversos tons dessa cor. Com o LESS é possível utilizar métodos pré-definidos como lighten, saturate, darken, fadein, fadeout e spin. Esses métodos retornam sempre um RGB que pode ser utilizado em seu LESS. Vejamos alguns exemplos:

1
2
3
4
5
6
7
8
9
@base: #f04615;

.class
// Saturo em 5% a cor base.
color: saturate(@base, 5%);

// Utilizo a cor base 25% mais clara
background-color: lighten(@base, 25%);

É possível também extrair informações de uma determinada cor para ser utilizada em outra.
Isso é feito a partir dos métodos hue, saturation e lightness.

1
2
3
hue(@color); // retorna o valor do canal ‘hue’ da cor @color
saturation(@color); // retorna o valor do canal ‘saturation’ da cor @color
lightness(@color); // retorna o valor do canal ‘lightness’ da cor @color

Namespaces

Em dado momento necessitamos organizar uma série de mixins e variáveis. Para isto podemos utilizar um conceito presente no LESS chamado Namespaces. Assim como em linguagens de programação orientadas a objetos, que possuem o conceito de pacotes, os namespaces fornecem encapsulação para nossas folhas de estilo. Isso pode ser implementado facilmente utilizando a mesma notação de ID do CSS tradicional. Vejamos.

1
2
3
4
5
6
7
8
9
10
11
12
#bundle

.button ()

display: block;
border: 1px solid black;
background-color: grey;
&:hover background-color: white
}
.tab …
.citation …
}

Verifique que acima, criamos um mixin chamado button dentro do namespace bundle. Para o utilizarmos devemos fazer da seguinte forma:

1
2
3
4
#header a
color: orange;
#bundle > .button; // Estamos acessando o namespace ‘bundle’ e fazendo uma chamada para o mixin ‘button’.

Uma utilização muito comum dos namespaces é na criação de pequenas bibliotecas de utilidades. Imagine que sua empresa pode possuir uma série de arquivos LESS, e em um determinado projeto você necessita de acesso a esses mixins, variáveis, etc. Organizar seus documentos com namespaces fácilita a visualização e localização de uma determinada instrução no seu documento LESS, como por exemplo, um mixin customizado que pode ser facilmente encontrado a partir da sua indicação de namespace.

1
2
3
someRule
#dclick > .border-radius(10px);

Conclusão

Como podemos ver, o LESS facilita uma série de tarefas que são praticamente impossíveis de serem efetuadas pelo CSS tradicional.
Aconselho a todos que tenham interesse em se aprofundar mais na biblioteca a conhecer o website (http://lesscss.org/). Lá você poderá encontrar a documentação com maior riqueza de informações também poderá ver alguns exemplos de código que não foram abordados nesse post.

Qualquer dúvida, sinta-se a vontade e envie-nos um comentário!
Abraço!

Out 26

Html5 – Gráfico com range de meses

Escrito por DClick Team em .NET, 1, 2.0, AR, browser, C#, Componente, Componentes, demo, Diversos, exemplo, Flex, framework, Frameworks, Gráfico, html, html5, if, int, internet, Introdução, Java, Javascript, O, on, pt, Ria’s Geral, Sem categoria, TAT, Twitter, UI, UX @ 10 26th, 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!

Como todos já devem saber, o Canvas é um elemento muito poderoso do HTML5, com ele podemos desenvolver diversos tipos de componentes e aplicações. Tenho certeza que ainda não descobri 5% de seu potencial, ainda mais que meu estudo hoje está limitado a javascript/html puro, sem a introdução de frameworks auxiliares.

Para o exemplo abaixo, utilizei como base um outro exemplo que encontrei na internet, pois ele tinha as funções de desenho das linhas dos gráficos. Com ele em mãos resolvi desenvolver algo mais próximo do que fazemos em dashboards no Flex, como um range de datas para filtro no gráfico, e não é que ficou legal?

Your browser does not support iframes.

Out 26

Html5 – Gráfico com range de meses (Exemplo)

Escrito por DClick Team em 1, 2.0, 6, AR, C#, Componente, Componentes, demo, Diversos, exemplo, framework, Frameworks, Gráfico, html, html5, int, Introdução, Java, Javascript, O, on, pt, Ria’s Geral, UI, UX @ 10 26th, 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 »

Como todos já devem saber, o Canvas é um elemento muito poderoso do HTML5, com ele podemos desenvolver diversos tipos de componentes e aplicações. Tenho certeza que ainda não descobri 5% de seu potencial, ainda mais que meu estudo hoje está limitado a javascript/html puro, sem a introdução de frameworks auxiliares. Para o exemplo abaixo,…

Continue Lendo
Out 10

Criando extensão para o Google Chrome – Parte 1/2

Escrito por Gabriel Versallini em 1, 2.0, 3.5, 4, 6, action, AR, Artigo, back, botão, browser, C#, chrome, class, Curso, developer, Documentação, exemplo, for, Google, html, ide, IE, if, image, Java, Javascript, Mac, mg, O, on, Pessoal, procura, pt, RIA, Ria’s Geral, S+S, screen, site, super(), tool, UI, window, windows @ 10 10th, 2011 | via http://www.versallini.com.br | Sem comentários
Gabriel Versallini
? 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á, pessoal!

No artigo de hoje mostraremos como é simples criar uma extensão para ao Google Chrome. Apesar de ser um recurso esquecido pelas agências, pode agregar muito valor ao seu negócio.

É importante que tenha um bom conhecimento de HTML e JavaScript. Abra o editor de sua preferência e vamos ao trabalho! (Na época de Windows gostava do Notepad++, no Mac ainda não tenho preferência.)

Documentação Oficial: http://code.google.com/chrome/extensions/devguide.html

Primeiro devemos criar uma pasta com nome da extensão, VERSALLINI. Em seguida, precisamos criar o arquivo manifest.json, pois é ele que o Chrome procura na hora de identificar e instalar a extensão. Veja a seguir:


  "name": "VERSALLINI",
  "version": "1.0",
  "description": "Gabriel Versallini ,
  "permissions": [
    "http://www.versallini.com.br/"
  ]
}

Salve a imagem abaixo na pasta da extensão com o nome de icon.png:

Para saber se fez tudo certinho abra o Google Chrome clique em Tools/Extensions, em seguida no botão Developer Mode no canto superior direito e logo depois em Load unpacked extension…. Selecione a pasta da extensão e pronto, nossa extensão será instalada com sucesso, veja a seguir:

Repare que mesmo com a extensão instalada ainda não criamos nenhuma funcionalidade para ela. Daremos continuidade no próximo artigo, é importante resaltar que daqui pra frente é como criar um site porém com tamanho reduzido.

Divirta-se!
Abraço

Set 14

Palestra CFMeetup

Escrito por Pedro Claudio em 1, 2.0, 3.5, 6, AR, C#, ColdFusion, developer, event, Evento, Eventos, events, for, free, if, Java, Javascript, mg, O, on, online, pt, Ria’s Geral, site @ 09 14th, 2011 | 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 »

Amanhã Ryan Anklam vai falar sobre JavaScript Fundamentals for ColdFusion Developers.

Visite o CFMeetup e se informe sobre os detalhes do evento, que será online, free e em inglês.

Ago 31

Oportunidades de trabalho na Alta Comunicazione

Escrito por Lucas Marçal em 1, 4, action, Actionscript, ActionScript 3, Actionscript 3.0, AMF, amfphp, Android, api, app, AR, Banco de Dados, BI, builder 4, C#, ColdFusion, ColdFusion 8, css, css3, dados, Desenvolvimento, Design, designer, Destaque, developer, DRE, Dreamweaver, err, Ferramenta, flash, flash builder, Flash Builder 4, framework, gaia, git, html, html5, IE, if, ignite, int, Java, Javascript, JQuery, layout, motion, mysql, O, on, oop, photoshop, PHP, procura, programação, pt, RIA, Ria’s Geral, S+S, Sun, TAT, UI, Vagas, web, xhtml @ 08 31st, 2011 | via http://www.lucasmarcal.com.br/blog/ | Sem comentários
Lucas Marçal
? 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 »

A Alta Comunicazione está abrindo novas vagas para o setor de web, abaixo segue um descritivo do perfil desejado separado por áreas.
Se você tem facilidade em trabalhar em equipe, gosta de um bom desafio e procura uma vaga de trabalho entre em contato conosco:

Enviar CV para: trabalhecomagente@altacomunicazione.com.br
Assunto: DIGITAL
www.altacomunicazione.com.br

Perfil WebDesigner

-Ferramentas de trabalho
*Dreamweaver CS5.5
*Photoshop Cs5
*Illustrator CS5
*Fireworks Cs5

-Habilidades necessárias
*Conhecimento sobre XHTML e CSS
*Conhecimento sobre Jquery
*Conhecimento sobre JavaScript
*Sólidos Conhecimentos sobre Adptação de layouts (PSD) para XHTML

-Diferenciais
*habilidade para desenvolver layouts
*HTML5 e CSS3
—————————————————————————-

Perfil Developer PHP

-Ferramentas de trabalho
*Dreamweaver CS5.5
*Navcat
*Photoshop cs5
*Fireworks Cs5

-Habilidades necessárias
*Conhecimento sobre XHTML e CSS
*Conhecimento sobre Jquery / Javascript
*Conhecimento Intermediário sobre Linguagem SQL e Banco de dados MYSQL
*Conhecimento (ter desenvolvido algo) com Codeigniter
*Conhecimento sobre AMFPHP
*Conhecimento sobre PHP nativo
*Falicidade na integração de APIs

-Diferenciais
*HTML5 e CSS3
*Coldfusion 8 ou 9
—————————————————————————

Perfil Developer Actionscript 3.0

-Ferramentas de trabalho
*Dreamweaver CS5.5
*Flash Cs5.5
*Flash Builder 4.5 / FlashDeveloper 4.0 / FTD
*Photoshop cs5
*Fireworks Cs5

-Habilidades necessárias
*Conhecimento sobre Actionscript 3.0
*Conhecimento sobre Gaia Framework
*Conhecimento sobre adptação de layouts
*Conhecimento sobre OOP (Programação orientada a objeto)
*Falicidade na integração de APIs
*Sólidos conhecimentos sobre Motion via Timeline ou Greensock

-Diferenciais
*HTML5 e CSS3
*Coldfusion 8
*PHP (AMFPHP)
*Desenvolvimento de Apps para Android e IOS

Enviar CV para: trabalhecomagente@altacomunicazione.com.br
Assunto: DIGITAL
www.altacomunicazione.com.br

Mai 21

Comparando ASP.net WebForms e ASP.net MVC

Escrito por Vinícius Sandim em .NET, 1, 2.0, 3.5, 3d, 3g, 4, 6, action, Ajax, app, AR, Arquitetura, Asp.Net, back, Banco de Dados, BI, browser, C#, C#.net, class, classe, classes, cliente, código, código fonte, comparação, Componente, Componentes, control, CRUD, css, dados, Desktop, developer, Download, Drag And Drop, err, event, Exemplos, explorer, Ferramenta, Flex, fonte, for, framework, function, gae, gc, html, ide, IE, if, int, Java, Javascript, JQuery, Links, lista, map, menu, mg, mtv, mvc, O, on, Partilha, Pessoal, portal, Projetos, pt, RIA, Ria’s Geral, S+S, server, site, SQL Server, state, tag, TAT, template, tv, UI, uint, UX, Visual Studio, vs, web, xhtml, XML, XP @ 05 21st, 2011 | via http://www.viniciussandim.com | 1 comentário
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 »

Eu confesso que nunca me interessei em desenvolver sites e muito menos aplicações web utilizando ASP.net, sempre achei que a metodologia “drag and drop” que o Web Forms nos proporciona não funciona legal na web, pois ela gera muito “lixo” para o navegador, e isso é crucial em uma WebAPP.

Portanto, desde que migrei de desktop (Delphi 7) para web, tenho trabalhado com o nosso querido Flex no Front End e o C#.net no Back End. Mas desde que o ASP.net MVC foi lançado, tenho acompanhado de perto a sua evolução, e confesso que ele tem me agradado bastante.

Para não perder o costume, venho hoje compartilhar com vocês um pouco do que tenho estudado, este post faz uma comparação de um projeto idêntico criado usando as duas metodologias.

Então chega de conversa e vamos ao que interessa:

As ferramentas que utilizei para criar os projetos foram:
• SQL Server 2008 Express
• Visual Web Developer Express 2010
• Framework ASP.net MVC 2.0

O projeto acessa uma base de dados com apenas uma tabela, com a seguinte estrutura:

Tabela

Não utilizei nenhum framework ORM, fiz o mapeamento das entidades manualmente, usando as classes nativas do Framework. (SqlConnection, SqlCommand e SqlDataReader).

Quando criei os projetos, utilizei os templates do prório Visual Web Developer:

CriandoProjeto

Para o projeto Web Forms, usei ASP.NET Web Application.
Para o projeto MVC usei: ASP.NET MVC 2 Web Application.

É claro que não vou fazer um passo a passo de como criar o projeto, o foco deste post não é isso, mas depois de pronto, nosso Solution Explorer do projeto WebForms ficará assim:

SolutionForms

Já o projeto MVC, tem uma estrutura um pouco maior, porque ele trabalha completamente “tipado”, temos as classes Model, Controller e View, como manda o figurino:

SolutionMVC

Certo, agora vamos ao objetivo, quando executo o projeto WebForms e acesso a página de clientes, o Framework gera este código HTML:

"-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">"http://www.w3.org/1999/xhtml" xml:lang="en">


"../Styles/Site.css" rel="stylesheet" type="text/css" />
"post" action="default.aspx" id="ctl01">
class="aspNetHidden"> "hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /> "hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /> "hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="ZhpEPEbRGaEf3wxNFvEkKLAz6ze4Y1776/kxLQ+oQoJx5Ew6ZrkBOLulNNEfu2T+c9uFRH7RTl5UUrZ3A1gK1BMKQc174Sha+0Wt5wmfhTKcGIb1YUgfoyjwcO8TYaR3U3o3l/07IemJNiwmeH8cM7BzSKkWiBTRuwjyI6u7VHlH7TyWLCMw0bneQ8edbb2YBMnGslvv7YSjWb5RdYMIjhu77ZE4CwQwK75UxHI1QZUgHjIaNP7MrZpoxi+tQbCBVW9Lc3jZCq0gbouSkWw7epm9WZknpiH5T68BTGirDfP4BfUZygsyB6aHmrpdN47pKJz7kFH78soAuE4Yd1NWNk9mHK+6ErcoVe3EkH8ycfXm51UwzkwNp2XRdr2s2AANsWpDdxNhyDTo2Mia2/YrPGirUzqV62RWlVWpS/KBwBpdtSLlYVnLaU6eJyjrJhqXxKzTa8b3F1av8h40cX5teT+0odXAWB3E2GcrE9XGfwa1ACk5QQlFsh+UplF/dEuzes6UBjJd9LQS7kPVabfzs/y8L3BRsK0Rtb0i1unXfHMuq3eVg/XQGnwb9uEhL5EdHjniskkoUzQh1T2yJfPwajrjxU06M5Ba43Soj8pk03isqi4tBqBllPVkv13Hyz8eapd85VejaO+3CUqXVr3J9/3MvZWjNcA2QOef7H4xKmtVExbxingFQqj5K5appmJReVczk8/HLCOnLD+Wa5/7CKWTj/OucQgIgPYnGEpzMZUlKJZFLAeFfwwkR2XVZcyyCoYWjK2pJX5zuCXMVkMxKCCuWjVvtl3GPfUkz1nsgP/Jtyq7vSdiXdGE/qxV8yRGJN5h4MlvVOfYq2gKspcNIZzwCzVCidhdoY8SYjnz+qyIXmXxXD3VkF2XGbcId86i/qOkwOyk9UcAS8iR+Es/MkQg7WximaQQji+o67grOaE=" />
class="aspNetHidden"> "hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="" /> "hidden" name="__PREVIOUSPAGE" id="__PREVIOUSPAGE" value="J0z-AYjFMhWT0kpqMD21gr0HoEKRmyw5_w3a37YYi27BAPn9DepNebG_20nPZ-VajOl1_KCPnab6uApAzjeQe7rOkN95u7baMYMKLA59Jpw1" /> "hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="IRcnHy6RQ1JCPCa5l/6k5JvtDNRbcbaJH7wDUCh/MVtgwLHo5W/iwGkTGRYeZHjYgqrWjjGjzZQvt+FJuMho2GE+Qf3syKzyeGXquF9a/Ws577KUO6oFdTWrhmsBXMMh" />
class="page">
class="header">
class="title">

My ASP.NET Application

class="loginDisplay"> [ "../Account/Login.aspx" id="HeadLoginView_HeadLoginStatus">Log In ]
class="clear hideSkiplink"> "#NavigationMenu_SkipLink"><span"Skip Navigation Links" src="/WebResource.axd?d=xFBnuqKYnqgWTzzLZBOde45ezhDnXgdvOgtOQCvZwJw6xfKBic_vxFOBRotUqhEobwKQWWgbNXfNYvZsldu9uZj6j6aYf49eocT9vsEpgtM1&t=634356288728593750" width="0" height="0" style="border-width:0px;" />
class="menu" id="NavigationMenu">
    class="level1">
  • class="level1" href="../Default.aspx">Home
  • class="level1" href="../About.aspx">About
"NavigationMenu_SkipLink">
class="main"> Listagem Completa de Clientes
"0" rules="all" border="1" id="MainContent_GridView1" style="border-collapse:collapse;">
"col">Id_Cliente "col">Nome "col">CPF "col">RG "col">Idade "col"> "col">
17 Jo?o 123.123.123-12 12.312.123-1 30 "Edita.aspx?Id_Cliente=17">Editar "return confirm('Tem certeza?');" id="MainContent_GridView1_LinkButton1_0" href="javascript:__doPostBack('ctl00$MainContent$GridView1$ctl02$LinkButton1','')">Excluir
19 Jos? 444.444.444-44 44.444.444-4 21 "Edita.aspx?Id_Cliente=19">Editar "return confirm('Tem certeza?');" id="MainContent_GridView1_LinkButton1_1" href="javascript:__doPostBack('ctl00$MainContent$GridView1$ctl03$LinkButton1','')">Excluir
18 Maria 999.999.999-99 99.999.999-9 35 "Edita.aspx?Id_Cliente=18">Editar "return confirm('Tem certeza?');" id="MainContent_GridView1_LinkButton1_2" href="javascript:__doPostBack('ctl00$MainContent$GridView1$ctl04$LinkButton1','')">Excluir
"submit" name="ctl00$MainContent$btnInserir" value="Inserir novo cliente" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$MainContent$btnInserir", "", false, "", "Insere.aspx", false, false))" id="MainContent_btnInserir" />
class="clear">
class="footer">

Dêem uma olhada em quanto código os componentes criam. É muita coisa, imaginem isso em um grande portal? Americanas.com gerando este código? Meio inviável não? Aproveito para destacar o código gerado pelo ViewState, herói e vilão do Web Forms.

Agora vamos comparar a mesma página gerada pelo projeto MVC:

"-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">"http://www.w3.org/1999/xhtml">

    Index


"Content/Site.css" rel="stylesheet" type="text/css" />


class="page">
"header">
"title">

My MVC Application

"logindisplay"> [ "/Account/LogOn">Log On ]
"menucontainer">
    "menu">
  • "/">Home
  • "/Home/About">About
"main">

Listagem completa de clientes:

Código Nome CPF RG Idade
30 Jo?o 123.123.123-12 12.312.123-1 30 "/Cliente/Edit?Id_Cliente=30">Editar | "/Cliente/Delete?Id_Cliente=30" onclick="return confirm('Tem certeza?');">Excluir |
32 Jos? 444.444.444-44 44.444.444-4 21 "/Cliente/Edit?Id_Cliente=32">Editar | "/Cliente/Delete?Id_Cliente=32" onclick="return confirm('Tem certeza?');">Excluir |
31 Maria 999.999.999-99 99.999.999-9 35 "/Cliente/Edit?Id_Cliente=31">Editar | "/Cliente/Delete?Id_Cliente=31" onclick="return confirm('Tem certeza?');">Excluir |
"/Cliente/Create">Novo cliente...
"footer">

O que acham? As duas páginas fazem exatamente a mesma coisa, no entato o MVC gera beeeem menos código.

Bom pessoal, essa é apenas uma das vantagens do MVC, posso destacar outras:

  • Controle total do código que será enviado ao navegador;
  • Arquitetura em camadas, códigos completamente separados;
  • Classes que auxiliam a geração do HTML para o browser de acordo com as ações do Controlador, sem lixo!;
  • Facilidade de se implementar Ajax (de verdade) no seu projeto.
  • Integração com o Jquery usando classes do Framework;

Bom é isso, vou me despedindo, mas antes deixo o código fonte dos dois projetos disponíveis para download.

« 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