BT
x A sua opinião é importante! Por favor preencha a pesquisa do InfoQ sobre os seus hábitos de leitura!

As quatro View Engines para o ASP.NET MVC

por Jonathan Allen , traduzido por Lucas Souza em 08 Jul 2010 |

Com a introdução do Razor na última semana, existem agora quatro view engines para o ASP.NET MVC. Os outros são o Spark, NHaml e o tradicional arquivo ASPX template. Este artigo introduz as quatro engines com um foco especial na nova engine, a Razor.

O estilo da view engine ASPX nos leva de volta ao clássico ASP. Códigos usando a síntaxe <%= %> ou a mais nova <%: %> predominam este estilo. Ao longo do tempo os controles ASPC foram adicionados e logo após foram adicionados as páginas masters, mas isto também resulta em um ciclo de vida das páginas muito caro.

Spark, que é também usado no projeto MonoRail Castle, tem uma abordagem um pouco diferente. Enquanto ele suporta placeholders, ele também livremente mistura HTML e código usando atributos e tags especiais. Enquanto isto pode ser um pouco mais verboso, ele tem a vantagem de ser completamente compatível com o XML.

NHaml é uma implementação para o .NET da linguagem de markup Haml. Esta linguagem não usa toda a síntaxe parecendo XML.

A mais nova engine é a Razor da Microsoft. Embora todos os sistemas de templating compartilhem características, este se distingue dos outros três como será mostrado. Diferente do NHaml, ele usa apenas XML para como markup, e ao contrário do Spark ele não vai tão longe com a utilização de código XML. Ele não é exatamente como o ASPX e substitui alguns place holders com o @ symbol seguido por uma expressão ou um bloco de controle. Nenhum marcador final especial é necessário, então o código resultante é bastante conciso.

Por padrão todos os textos de um @ expression é HTML-encoded. Texto dentro de um @ block pode ter "blocos de conteúdos". Identificado por qualquer tag XML, que traz você de volta ao modo HTML da mesma maneira clássica que os desenvolvedores ASP usando o %> html <%=. Se você nao quer que uma tag seja emitida você pode usar a tag <text>.

Como ele usa a síntaxe existentes do VB ou do C#, a Microsoft espera que o Razor seja fácil de aprender. E enquanto qualquer editor de texto pode ser usado, o Visual Studio 2010 será atualizado para oferecer suporte completo para arquivos Razor.

Outra imporante feature presente no Razor é que ele é compatível com frameworks de testes de unidade. Razor templates não exigem um controlador ou host web-server, por isso as views escritas com ele devem ser totalmente testáveis. Enquanto na teoria qualquer coisa pode ser testada, o ASPX torna bastante difícil a codificação de testes e as outras duas engines na realidade não falam sobre a testabilidade em seus respectivos sites.

Todas as quatro engines suportam o conceito de páginas masters, então não há muito o que ser dito sobre este assunto. Views pré compiladas dentro de assembles são suportadas parcialmente pelo ASPX e completamente pelo Razor e pelo Spark. O NHaml atualmente tem isto na lista de features previstas. O que é particularmente interessante sobre o Razor e sobre o Spark é que suas views pré compiladas podem ser usadas em cenários non-hosted como engines de mail-merge.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT