Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais
CSS Control Adapters : Mais Importante do que você imagina
Data:10/10/2008

Translate this page now :





Categories: ASP.NET

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :
Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon

Veja Também


css Há muito tempo atrás (em uma galáxia muito distante...), utilizávamos tables para organizar o design de páginas web. Olhavamos para aquilo e diziamos que era bom.

Assim continuaríamos se não fosse uma pessoa super-inteligente fazer uma observação brilhante que levaria seu nome para os anais da história da internet (putz, esqueci o nome!) : "Por que tenho que utilizar table mesmo quando não estou criando tabelas ?"

Surgiu então a nova metodologia de design chamada tableless (fala que nem macho, macho que é macho não fala tableless, fala sem tabela e pronto!), onde o design é todo feito com CSS. Passamos a olhar para isso e dizer que é bom.

Em paralelo a tudo isso procurava-se diminuir cada vez mais o trabalho dos desenvolvedores através do uso de tecnologias que fizessem o desenvolvedor se preocupar cada vez menos com as questões relativas a design.

Eis então que surge o ASP.NET, com seus webControls, que permite ao desenvolvedor simplesmente fazer o uso dos webControls em alto nível e estes geram automaticamente seu HTML de acordo com a tarefa solicitada pelo usuário, sendo o processo de geração do HTML chamado de renderização.

tableless Se o HTML gerado pelos webControls fosse rígido, "aceite-me ou vá pastar", isso realmente seria desagradável.

Mas não, nada no framework .net é rígido desta forma. No caso do ASP.NET, temos um recurso chamado de control adapters. Os control adapters nos permitem interceptar o processo de renderização dos webControls, alterando o que desejarmos no HTML a ser renderizado pelos webControls.

Isso é útil em muitos casos, por exemplo, para alterar o resultado gerado para diferentes clients (browsers diferentes, dispositivos móveis, etc.) ou quando por algum motivo desejarmos personalizar o HTML.

Neste ponto entra a questão do tableLess : Quando o ASP.NET foi criado tableLess não era ainda um modismo, isso aconteceu depois. Consequentemente os webControls do ASP.NET não são nem um pouco amigáveis com a metodologia tableLess.

Claro que podemos corrigir isso criando control Adapters e por isso mesmo a adaptação dos webcontrols do ASP.NET para tableless se tornou o melhor exemplo disponível do uso de control adapters, surgiu o CSS Control Adapter Toolkit, criado pela Microsoft.

livrotableless O problema é que o CSSCAT foi criado apenas como uma demonstração de como fazer control adapters, portanto não encontra-se totalmente completo. Uma das dificuldades é implanta-lo, pelo fato de possuir diversos arquivos que precisam ser inseridos na aplicação.

Para ajudar na solução deste problema um desenvolvedor transformou o CSS Adapter Toolkit em um projeto compilado, permitindo que a implantação do toolkit em nossos sites se limite a simples cópia de uma dll.

Porém nem tudo são flores : O CSSCAT foi criado como uma demonstração, portanto sua programação não está completa. Muitas propriedades de webControls passam a ser simplesmente ignoradas com a aplicação do CSSCAT.

Isso não chega a ser um grande problema, pois o Toolkit deixa o html extremamente amigável para o CSS e com o CSS podemos chegar ao resultado que desejamos, mas é possível que você esbarre com situações, se não mais difíceis (com as quais esbarrei), até mesmo insolúveis (felizmente ainda não esbarrei com estas).

Mesmo incompleto e com alguns bugs, considero o uso do CSS Control Adapter Toolkit algo essencial nos dias de hoje para que possamos montar um site que seja amigável com as ferramentas de busca nos trazendo assim bons resultados.

Alguns links :

Página do CSS Control Adapter Toolkit da Microsoft - desatualizado

Página do CSS Control Adapter Toolkit no Codeplex - mais atualizado

Artigo sobre a criação de Control Adapters

Uso intensivo de CSS

Pelo fato de muitas propriedades dos webcontrols serem ignoradas, muita coisa precisa ser feita diretamente com CSS. Para os menos habituados isso pode ser um grande sacrifício (passei por isso)

Um bom exemplo é o menu, que por default fica na vertical e que passa a ignorar a  propriedade orientation, precisando que a orientation entre vertical/horizontal seja alterada via css.

Eis um exemplo de CSS aplicado a um menu com imagens para transforma-lo em menu horizontal :

   1: .menuImg
   2: {
   3:     margin: 0px 70px 0px 0px;
   4:     padding-left: 10px;
   5:     position: relative;
   6:     height: 30px;
   7:     float: left;
   8:     list-style-type: none;
   9:     text-decoration: none;
  10: }
  11:  
  12: .menuImg img
  13: {
  14:     border : none;
  15: }
  16:  
  17: .menuImg li
  18: {
  19:     display:inline;
  20:     list-style-type :none;
  21: }
  22:  
  23: .menuImg li a
  24: {
  25:     display:inline;
  26:     float:left;
  27: }

Especial atenção para o display:inline, float:left e list-style-type

Pequenas correções no source do toolkit

Algumas pequenas correções no source do toolkit podem ser necessárias. As que mais me chamaram a atenção foram as seguintes :

  • Os adapters geram um CSS incorporado mesmo quando estamos personalizando o CSS, isso dificulta a criação do CSS. Uma mudança básica que fiz foi não gerar o CSS incorporado quando uma classe CSS estivesse definida.
  • Os adapters geram nomes de classe fixos. É claro que eles precisam gerar diversos nomes de classe, mas existe uma "base" para os nomes que eles geram e esta base poderia ser derivada do nome de classe css utilizada no objeto, ao invés de ser uma base fixada em código. Isso impediria a manutenção de mais de um estilo para o mesmo tipo de objeto.

Conclusão

É uma pena que tanta gente desconheça algo tão importante como o CSS Toolkit Control Adapter (e não falo nem dos control adapters) e que sejam essas as mesmas pessoas que reclamam da auto-geração do HTML feita pelos webControls do ASP.NET, acabando por gerar coisas estranhas como o ASP.NET MVC

Definitivamente o CSS Control Adapter Toolkit entra na lista de itens aos quais a Microsoft deveria se dedicar mais para aumentar a produtividade do desenvolvedor, ao invés de tentar agradar o desenvolvedor com o ASP.NET MVC, que se comparado a possíveis caminhos evolutivos dos webforms, é uma contra-mão do desenvolvimento.

 



Categories: ASP.NET


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br