A supervalorização do AJAX

Se você não esteve em Marte no último ano, então já deve ter ouvido falar sobre AJAX (Asynchronous JavaScript and XML), que também atende pelos nomes de Remote Scripting ou Script Callback, uma técnica de desenvolvimento de aplicações Web que permite, basicamente, que uma página faça requisições ao servidor Web via JavaScript, sem a necessidade de atualizar a página inteira, o que pode tornar uma aplicação web mais rica, rápida, interativa e dinâmica para o usuário, deixando-a mais parecida com uma aplicação desktop, o que proporciona uma melhor usabilidade.

Mas qual o segredo do AJAX? Bem, não há segredo algum. Ele utiliza tecnologias que já estão por aí há um bom tempo, como JavaScript, DHTML, XML e XMLHttpRequest, responsável pelo envio e recebimento de dados do servidor. Na verdade, nem o uso de XMLHttpRequest é necessário, já que poderíamos obter um resultado parecido utilizando-se iframes. Como se vê, são tecnologias que qualquer desenvolvedor web que se preze conhece (ou pelo menos deveria conhecer). Assim, AJAX é mais uma arquitetura do que uma novidade.

Então, por que tanta badalação em torno desta sigla? Ao meu ver, são dois os principais motivos: o primeiro é que agora todos os browsers mais recentes (IE, FireFox, Netscape, Opera, Konqueror, Safari, etc) de todas plataformas (Windows, Unix, Mac, etc) suportam a utilização do objeto XMLHttpRequest, que originalmente foi criado pela Microsoft como um componente ActiveX e que, antigamente, era exclusivo do IE. Aliás, a Microsoft anunciou recentemente que, a partir do IE 7.0, o objeto XMLHttpRequest será exposto como um objeto de script nativo, ou seja, não será mais um controle ActiveX, o que tornará o IE mais compatível com os outros browsers. O segundo motivo é a utilização maciça que o Google vem fazendo em seus produtos (como o Google Maps, GMail e Google Suggest, entre outros), que deu uma visibilidade grande para a técnica.

O grande problema que vejo quando há muito hype em torno de alguma tecnologia nova é que a coisa foge do controle e logo começa a aparecer muita besteira sobre o assunto. Com o AJAX não poderia ser diferente e já se vê por aí o efeito negativo da superexposição. Um exemplo disso é a matéria publicada neste mês na Info Exame (sobre a qual já escrevi minha opinião em outro post), que tem o Google como matéria de capa, e cujo o título é "AJAX dá dinheiro?". A conclusão da matéria é que o AJAX ainda não é uma mina de dinheiro, mas é possível ganhar, em média, entre e 20% e 25% a mais ou, segundo um funcionário de uma consultoria, o profissional que domina o AJAX pode até mesmo dobrar seu salário! Além disso, 2006 deve deixar o mercado aquecido para os conhecedores do AJAX. E lá se vão as ovelhinhas aprender a última moda...

Percebam aí que há uma combinação explosiva: um assunto da moda, uma publicação cuja credibilidade é duvidosa, pessoas desinformadas e pronto! A besteira está feita! Será que alguém realmente acredita que o fato de "saber" AJAX (que utiliza tecnologias que um desenvolvedor web já domina há um bom tempo) irá trazer milhares de propostas de emprego e rios de dinheiro? E as empresas que procuram por especialistas em AJAX, será que realmente sabem o que essa sigla significa e sabem o que querem ou somente estão seguindo um modismo e depois de algum tempo irão perceber o quanto foram ignorantes? E as consultorias, ao invés de ajudarem seus clientes a entender o que tudo isso significa, não estariam interessadas na ignorância dos mesmos para que assim consigam "vender" mais consultores e ganhar mais dinheiro? Tudo termina da seguinte maneira: a empresa finge que sabe o que quer e se sente moderna por "estar utilizando" uma tecnologia da moda e o profissional finge que conhece e todos vivem felizes... e assim caminha a humanidade.

Não estou criticando o AJAX, e acho que o mesmo tem o seu valor e muitas das idéias que ele traz, de fato, irão contribuir para melhorar a experiência do usuário em relação às aplicações web. O que me deixa preocupado é quantidade de pessoas que não sabem o que falam.

Ricardo Oneda.

Microsoft Developer Security Resource Kit

Se você é um desenvolvedor consciente, deve se preocupar constantemente com segurança. Aliás, será que alguém hoje em dia ainda não leva em conta este aspecto? Infelizmente, acredito que a maioria não dá a mínima bola para isso e acredita que isso é assunto para o pessoal de infra-estrutura e que basta colocar um firewall para resolver o problema... O resultado é o que estamos cansados de ver por aí: aplicações cheias de falhas e que colocam em risco a segurança e a privacidade da informação, isso sem falar nos prejuízos financeiros.

Assim, qualquer material que nos ajude a melhorar a segurança de uma aplicação é bem-vindo. A Microsoft disponibilizou o Microsoft Developer Security Resource Kit, um DVD-ROM que, assim como os outros Resource Kits, vem com uma série de informações sobre um determinado assunto, que no caso é segurança em desenvolvimento de software: artigos e documentos técnicos, melhores práticas, treinamentos, web casts, ferramentas, etc. O Resource Kit é praticamente gratuito, pois paga-se apenas as despesas de envio, que no Brasil fica em US$20,00 (pelo menos no meu caso).

Ricardo Oneda.

Notepad turbinado

Apesar de toda produtividade que IDEs como o Visual Studio proporcionam, muitas vezes, por necessidade ou mesmo por opção, costumamos utilizar o Notepad para tarefas simples de edição de arquivos texto. O Notepad é fantástico neste ponto, pois é pequeno, rápido e muito eficiente no que se propõe a fazer. Entretanto, ele poderia ter algumas características que o deixariam muito melhor, sem perder as características citadas. Se você pensa como eu, sugiro conhecer os seguintes softwares gratuitos:

Pessoalmente, prefiro o Notepad++. Entre suas características, estão o reconhecimento e highlighting de várias linguagens (entre elas C, C++, C#, Java, HTML, XML, Javascript, SQLetc) deixando o texto mais legível, funcionalidade de auto-complete, que pode ser customizada e extendida, suporte a edição de múltiplos arquivos através de abas, zoom, macro, entre outras.

Uma pequena curiosidade: nos primórdios da Internet, quando ela ainda não era uma rede tão comercial, era comum nos depararmos com imagens como a seguinte em sites pessoais:

Era uma época na qual quem sabia HTML era tratado como um Deus e ganhava rios de dinheiro. Também era uma maneira um tanto infantil de demonstrar conhecimento - e de que era "cabra macho", já que tudo tinha sido feito na "unha" Smile

Ricardo Oneda.

DataSet ou Classe Customizada?

Uma das dúvidas quando se está planejamento a arquitetura de um sistema multicamadas feito em .NET é sobre como fazer a comunicação entre as camadas da aplicação: utilizar DataSet ou desenvolver classes customizadas? A resposta para esta pergunta - e para todas as outras polêmicas como esta - é...depende.

Ambas abordagens tem suas vantagens e desvantagens: enquanto o DataSet pode ser bom pois já traz uma série de características prontas que podem nos poupar tempo, ele também é mais "pesado" já que possui muita coisa que talvez não iremos utilizar. Já a utilização de classes de negócios customizadas traz um maior controle sobre nossa arquitetura, já que podemos otimizá-las de acordo com nossas necessidades, mas o que num primeiro momento pode ser uma vantagem pode se tornar uma desvantagem, já que teremos que desenvolver muita coisa do zero, o que pode consumir um tempo grande do projeto. Outra alternativa que também pode ser considerada é a utilização de DataSet Tipados, que entre suas vantagens está o fato de ser fortemente tipado (ao contrário do DataSet "puro"), mas que também está longe de ser a solução de todos os nossos problemas.

Com o objetivo de ajudar a fazer uma escolha tão complexa quanto essa, sugiro a leitura do artigo DataSets vs. Collections do mestre Dino Esposito, no qual ele analisa cada caso e explica em qual situação utilizar cada uma das opções. Do artigo, chamo a atenção para uma tabela comparativa entre as várias possibilidades.

E a seguir alguns outros artigos que podem ajudar a decidir qual o melhor para o seu caso (percebam o quanto o assunto é polêmico):

On the Way to Mastering ASP.NET: Introducing Custom Entity Classes
Poor MSDN article on Custom Business Entities and DataSets
Typed DataSets and Business Entities: A Compromise (Part 1)
Typed DataSets and Business Entities: A Compromise (Part 2)
Typed DataSets and Business Entities: A Compromise (Part 3)

Ricardo Oneda.

Importante: correção para falha grave de segurança

A Microsoft disponibilizou a correção para a vulnerabilidade que foi descoberta recentemente na manipulação de arquivos gráficos WMF (Windows Meta File) que permite executar programas remotamente e que afeta todas as versões do Windows. O grande problema desta falha de segurança é que, para ser infectado, basta você acessar uma página que contenha uma imagem intencionalmente corrompida. Não precisa executar ou instalar nada! São muitos os relatos de sites que têm se aproveitado disso para instalar spywares sem permissão nas máquinas dos usuários, isso sem falar em outros tipos de programas nocivos, como cavalos de tróia. Sugiro a todos que instalem a correção imediatamente e que recomendem o mesmo para seus amigos. Mais informações e o download da correção podem ser encontradas em:

Microsoft Security Bulletin MS06-001

Ricardo Oneda