RSS feed
Melhorias relacionadas à HTML5 com a Atualização das Ferramentas da ASP.NET MVC 3 - ScottGu's Blog em Português

Melhorias relacionadas à HTML5 com a Atualização das Ferramentas da ASP.NET MVC 3


Na semana passada eu escrevi sobre a nova Atualização das Ferramentas da ASP.NET MVC 3, e depois segui com um post detalhado que cobriu a abordagem de desenvolvimento EF Code First e os novos recursos de Geração Automática de Código (Data Scaffolding) presentes na atualização.

O post de hoje é uma continuação dessa série e abrange algumas das novas melhorias da HTML5 que chegam com o lançamento da Atualização das Ferramentas da ASP.NET MVC 3.

Suporte de Modelos de Projeto para Marcação Semântica HTML5

A Atualização das Ferramentas da ASP.NET MVC 3 adiciona suporte para que você opcionalmente use marcação semântica HTML5 ao criar novos projetos ASP.NET MVC 3. Você pode especificar isto marcando a checkbox "Use HTML5 semantic markup" (Usar marcação semântica HTML5) ao criar novos projetos:

SNAGHTML10f01f0d

Ao selecionar esta checkbox duas coisas acontecem:

1) Faz com que o VS 2010 use elementos de marcação semântica HTML5 como <header>, <footer>, <section> e <nav> dentro do arquivo padrão layout.cshtml que é gerado. Isto substitui os elementos <div> usados anteriormente para os elementos header/footer/navigation - que continua sendo o comportamento padrão, se a checkbox de marcação semântica HTML5 não for selecionada.

2) Faz com que o VS 2010 referencie a biblioteca JavaScript modernizr.js por padrão dentro do arquivo layout.cshtml - que entre outras coisas, permitirá que você use CSS para estilizar elementos de marcação semântica HTML5, mesmo em navegadores mais antigos como o IE6 (garantindo que seu site ainda funcione em navegadores mais antigos).

Entendendo Marcação Semântica HTML5

A HTML5 introduz uma série de novos elementos e APIs que introduzem novas capacidades comportamentais (recursos como <video>, <canvas>, <svg>, etc). 

A HTML5 também introduz novos elementos (como <section>, <article>, <aside>, <header> e <nav>) que te permitem enriquecer o significado e estrutura semântica do seu conteúdo e páginas. Esses recursos permitem que você escreva suas páginas de forma que você não tenha que usar elementos opacos <div> para estruturar tudo, e ao invés disso, estes novos elementos permitem que você expresse de uma maneira melhor o significado semântico do seu conteúdo. Isso torna seu código um pouco mais limpo para leitura, e a longo prazo, esperamos, permita que os browsers e motores de busca entendam de uma maneira melhor sua marcação HTML e proporcionem experiências ainda mais ricas.

Quando você cria um novo projeto ASP.NET MVC 3 com a checkbox "Usar marcação semântica HTML5" selecionada, o Visual Studio irá usar marcação HTML semântica ao invés de elementos <div> (onde for apropriado) dentro do arquivo layout.cshtml que é gerado para o novo projeto. Isso significa que o topo do site/cabeçalho, é envolto em um elemento <header>, links de navegação são cercados por um elemento <nav> e o rodapé é encapsulado dentro de um elemento <footer>.

Aprenda mais sobre a Maração HTML5 Semântica

Bruce Lawson e Remy Sharp tem um excelente livro chamado Apresentando HTML5 (em Inglês) que cobre (entre outros novos recursos da HTML5) como você pode tirar vantagem da marcação semântica da HTML5:

imagem

Você também pode ler o artigo da Emily Lewis Usando Hoje as Novas Tags Semânticas da HTML5 (em Inglês) no site ScriptJunkie da MSDN para saber mais sobre o papel da marcação semântica HTML5 e para ver um exemplo prático da mesma em ação.

Intellisense para HTML5 no VS 2010 SP1

Com o VS 2010 SP1, você pode agora alterar a opção da dropdownlist "Target Schema for Validation" (Esquema Alvo para Validação) na barra de ferramentas do Editor de Texto para ter como alvo a HTML5:

imagem

Quando você selecionar HTML5 como seu alvo de validação, o motor de intelliSense HTML dentro do Visual Studio irá prover intellisense adequada para os novos elementos e atributos da HTML5. Isto é verdade para ambos os elementos comportamentais, como <canvas> e <video> bem como elementos semânticos como <article> e <nav>:

SNAGHTML1115b0b2

Nota: a próxima versão do VS por padrão honrará o <!DOCTYPE>, na parte superior da página ao direcionar intellisense, e então permitirá que você especifique um padrão a ser usado quando ele não estiver presente (ou quando você estiver editando código dentro de controles do usuário (user controls) ou modelos parciais). Com o VS 2010 e versões anteriores do Visual Studio você tem que explicitamente definir qual é a versão HTML que você quer ter como alvo.

Biblioteca Modernizr.js

Marcação Semântica HTML5 agora é suportada por todos os fabricantes de navegadores modernos, e você pode usar as técnicas padrão CSS para estilizar e personalizar páginas construídas com ela.

Um desafio, porém, é que ainda há um monte de navegadores mais antigos por aí - navegadores como o IE6 por padrão não permite que você estilize elementos semânticos da HTML5 usando CSS. O site HTML5 semântico que parece bonito em um navegador moderno pode acabar parecendo quebrado a menos que você use uma biblioteca que lhe permita contornar essa limitação.

Modernizr.js

Modernizr é um pequena e elegante biblioteca JavaScript open-source (código aberto) que ajuda você a tirar proveito de novas tecnologias web (HTML 5, CSS 3), mantendo um nível de compatibilidade com navegadores mais antigos que ainda não suportam estas novas capacidades. Você pode aprender mais sobre a Modernizr no site http://modernizr.com/.

Começando com a Atualização das Ferramentas da ASP.NET MVC 3, estamos agora distribuindo a Modernizr com a ASP.NET MVC 3, e a adicionamos por padrão em todos os novos projetos ASP.NET MVC 3. Se você selecionar a opção "Usar marcação semântica HTML5" ao criar novos projetos ASP.NET MVC 3, o Visual Studio irá também adicionar uma referência para a biblioteca Modernizr.js por padrão dentro do seu modelo layout.cshtml:

imagem

Modernizr.js e usando CSS com HTML5 Semântica em Navegadores antigos

Incluindo a referência de script da Modernizr.js acima lhe permitirá usar CSS para estilizar elementos semânticos da HTML5 - fazendo com que tais estilos funcionem tanto em navegadores modernos (onde os novos elementos são suportado nativamente), bem como nos navegadores mais antigos (incluindo o IE6). Entre outras coisas, a Modernizr é inteligente o suficiente para rodar um pequeno script que fará com que os navegadores mais antigos honrem as regras de CSS em elementos desconhecidos encontrados por eles.

Você pode ver os benefícios que a Modernizr traz ao executar o projeto padrão ASP.NET MVC 3 usando o IE9. Se você usar o modo de renderização padrão do IE9 (que suporta elementos semânticos da HTML5), o site ficará igual ao mostrado a seguir, e usará o suporte a CSS nativo do navegador para HTML5 semântica:

SNAGHTML112b7c79

Se você habilitar "Compatibility View" (Visão Compatível) dentro do navegador (o segundo ícone na parte superior da barra de navegação do IE) - você verá uma renderização da página "com qualidade inferior" (da mesma forma que os usuários do IE6/7/8 veriam). A Modernizr permite que nossas regras CSS funcionem nesse modo de qualidade inferior - apesar de o antigo motor de renderização do IE não suportar nativamente elementos como <header>, <footer>, <nav>, <section>, etc:

SNAGHTML112e4acf

Se não tivéssemos incluído a Modernizr.js na página, os visitantes do site usando navegadores mais antigos teriam visto alguma coisa quebrada assim:

SNAGHTML1130d736

Como você pode ver - a biblioteca Modernizr proporciona uma grande melhoria se compararmos os resultados! O melhor de tudo, não tivemos que escrever nenhum código ou criar alguma folha de estilos CSS alternativa para que o site funcione sem quebrar. E nós estamos utilizando marcação semântica HTML5 em todo o site.

Usando a Modernizr para Detectar Capacidades do Navegador

O exemplo de marcação semântica HTML5 acima é apenas um dos benefícios bacanas que a Modernizr traz. 

A Modernizr também torna mais fácil verificar recursos/capacidades do navegador (sem que você tenha que escrever código para diferentes versões de navegador), e permite que você facilmente detecte e sinalize se um recurso específico é suportado. Você pode aprender mais sobre como isso funciona no site http://modernizr.com

Justin Schwartzenberger tem um bom post que mostra isso em ação, e destaca Como usar a Modernizr com a ASP.NET MVC 3 para armazenar dados do usuário via localstorage da HTML5 (em Inglês). Seu tutorial mostra um exemplo ASP.NET MVC 3 completo, onde ele usa o recurso localStorage da HTML5 caso este recurso esteja disponível, e recorre ao uso de cookies em navegadores mais antigos caso localStorage não esteja disponível. 

Sumário

A nova Atualização das Ferramentas da ASP.NET MVC 3 está cheia de coisas boas. Se você ainda não fez o download e instalou a mesma, eu recomendo que você faça isso. Você pode executar o instalador da ASP.NET MVC 3 no site http://asp.net/mvc para se certificar que você tem a versão mais recente.

As melhorias para marcação semântica da HTML5 com a ASP.NET MVC 3 permitem que você comece a projetar sites que tirem proveito da HTML5 e de navegadores modernos. Usando a Modernizr.js você também pode fazer com que esses sites continuem funcionando em navegadores mais antigos, e, opcionalmente, executar determinado código apenas quando os novos recursos estiverem habilitados/presentes.

Espero que ajude,

Scott

PS: Eu também estou agora utilizando o Twitter para atualizações rápidas e para compartilhar links. Siga-me em: twitter.com/ScottGu

 

Texto traduzido do post original por Leniel Macaferi.

Published Monday, May 09, 2011 9:54 PM by Leniel Macaferi
Filed under: , , ,

Comments

No Comments

Leave a Comment

(required) 
(required) 
(optional)
(required)