sábado, 12 de abril de 2008

HTML 5 - Como está indo...

Saiu ontem, 11 de abril, o mais novo rascunho do HTML 5 na W3C. Este visa a substituir o HTML4, XHTML 1.x, e DOM2 HTML, apesar de manter compatibilidade com estes. Isto é um rascunho que o lendo dá para ter uma idéia de onde querem chegar com o HTML 5 e qual o esforço está sendo feito.

Nesta matéria, é citado que os navegadores Opera e Firefox 2.0 já suportam algumas tecnologias do HTML5, comentando do firefox 2.0 falou-se do elemento canvas e do client-side storage.

Fui atrás para ver pelo menos o canvas, para desenhar gráficos, e consegui este exemplo:
<html>
<head>
<script type="application/x-javascript">
function draw() {
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");

ctx.fillStyle = "rgb(200,0,0)";
ctx.fillRect (10, 10, 55, 50);

ctx.fillStyle = "rgba(0, 0, 200, 0.5)";
ctx.fillRect (30, 30, 55, 50);
}
</script>
</head>
<body onload="draw()">
<canvas id="canvas" width="300" height="300"></canvas>
</body>
</html>

Código1:
Imagem 1 - Exemplo do canvas funcionando no firefox.

É um exemplo simples, basicamente definimos o tamanho, posição e cores, inclusive transparência de duas figuras. Neste link tem mais exemplos e fala da compatibilidade com a apple.

Veja um exemplo para Internet Explorer e Firefox neste link.

O client side storage, que tem armazenar informações no cliente como armazenar o session no servidor? Também é possível veja.

Os navegadores Firefox 3 e Internet Explorer 8, ambos em versão beta, devem implementar o HTML 5.

Devemos ter em mente também que os navegadores antigos não terão suporte às novas funcionalidades, então temos que pensar qual o público alvo de nossas aplicações web e disponibilizar os funcionalidades compatíveis. O ASP.NET já identifica o navegador e gera o HTML utilizando os recursos disponíveis do navegador, um exemplo é ativar javascript nos valitadores somente quando há suporte do navegador. Isto já é bacana, mas talvez em algum momento seja necessário fazermos nossas intervenções via javascript ou ajax para fornecer alguma funcionalidade no cliente. Um exemplo é que se quisermos utilizar um customvalidator, devemos escrever nosso código C# ou javascript, a idéia deverá ser a mesma, só mudará algumas tecnologias.

Referências:
http://www.w3.org/html/wg/html5/
http://www.whatwg.org/specs/web-apps/current-work/
http://open-mania.com/2008/01/23/w3c-publica-rascunho-de-html-5/
http://www.internetnews.com/xSP/article.php/3672011

Firefox 3:
http://developer.mozilla.org/en/docs/Firefox_3_for_developers

Internet Explorer 8:
http://info.abril.com.br/aberto/infonews/032008/05032008-21.shl
http://msdn2.microsoft.com/en-us/library/cc288472(VS.85).aspx