Criando, personalizando e utilizando “Scaffold Templates” no ASP.net MVC usando T4

Posted on fevereiro 24, 2011 by elemarjr

1


Olá pessoal, tudo certo?

Pensando em como justificar toda a “praticidade” de desenvolver aplicativos utilizando ASP.net MVC cheguei a dois argumentos principais:

  1. Framework extremamente inteligente;
  2. Suporte ao desenvolvimento, bem implementado, no Visual Studio.

Uma das funcionalidades mais bacanas, oferecida pelo Visual Studio, para quem está desenvolvendo aplicativos ASP.net MVC é a geração de Views partindo dos “Scaffold Templates”. Nesse post, mostro como Criar/Personalizar esses “templates”.

Vamos aos fatos…

O que é um “Scaffold Template”?!

Scaffold template é um T4 que, selecionado pelo desenvolvedor, é processado pelo Visual Studio na criação de uma View fortemente tipada. Se você não está “associando o nome a pessoa”, eis a tela onde você faz essa selação:

image

Visual Studio não deixa claro que essas “opções” são, na verdade, arquivos T4. Mas são!

Estamos alinhados?!

Localizando os T4 utilizados pelo Visual Studio para Scaffolding em seu computador

Sabendo que as opções de Scaffolding são, na verdade, arquivos T4, podemos localizar esses arquivos no disco. Abra o “Localizar do Windows” e procure por “CodeTemplates”. O resultado deve ser semelhante ao que segue:

image

Como você pode perceber, há pastas com opções de template para C# e VB.net.

Os arquivos contidos nessas pastas não devem ser alterados diretamente por duas razões:

  1. São parte da distribuição do Visual Studio;
  2. As novas versões ficariam restritas ao computador onde as alterações foram feitas.

Para personalizar Scaffolding Templates, adicione-os ao seu projeto.

Adicionando os Scaffold Templates a um Projeto ASP.net MVC

Para poder ajustar os scaffold templates, você precisa, antes, adiciona-los a seu projeto. Para isso, arraste a pasta CodeTemplates para cima do nodo correspondente ao seu projeto no Solution Explorer do Visual Studio. Ao fazer isso, toda a estrutura de pastas/arquivos será “copiada” (os arquivos originais serão preservados). Observe:

image

 

Além de fazer isso, você precisará “avisar” o Visual Studio que os T4 não devem ser processados. Para isso:

  • Selecione todos os arquivos .TT (que foram arrastados);

image

  • Abra a janela de propriedades;
  • Apague o valor da propriedade “Custom Tool”

Pronto!

Modificando um “Scaffold Template”

Como você pode perceber, o nome de cada arquivo .TT, corresponde ao nome da opção disponível na janela de criação de Views. Abra o arquivo .TT correspondente a opção que você deseja alterar (repare que há uma pasta para templates Razor e outra para Aspx).

image

O conteúdo do arquivo é um T4. Se você não sabe o que é isso, boa hora de aprender (Google/Bing ajuda).

Alterando esses arquivos, você estará alterando o template de geração das Views. Certo!?

Criando um “Scaffold Template”

Já sabemos como alterar os templates utilizados pela ferramenta de geração de Views. Mas, e para criar uma opçao inteiramente nova?! A resposta é muito simples Alegre

Para criar uma nova opção para a combo “Scaffold Template”, basta criar um novo arquivo T4 na pasta correspondente.

Por exercício, duplique o arquivo “Create.TT” (Copy, Paste) e modifique seu nome para “NewScaffoldTemplate”

image

 

Agora, inicie o assistente para criação de uma View:

image

 

BÔNUS: Adicionado Color-Coding e (algum) Code-Completion para arquivos T4

Para mim, chega a ser surpreendente que o Visual Studio não ofereça melhor suporte nativo para edição de arquivos T4.

A menos que você seja “ninja” em T4, recomendo a instação da extensão “tangile T4 Editor plus …”.

image

Com essa externsão instalada, você ganha color-coding e algum code-completion.

image

Melhor assim.

Agora sim…

Por hoje, é isso.

Smiley piscando

Posted in: AspNetMvc, T4