Olá Pessoal, desculpem ter passado janeiro em branco, mas os trabalhos aqui tem ficado cada vez mais pesados. :-)
Semana passada saíu no blog do scott'gu o seu tão esperado
post sobre o release candidate do MVC. Como eu esperava, houveram alguns breaking changes, mas a estrutura quase não foi alterada. Essa versão trouxe integrado com o visual studio uma maneira muito legal de basear a construção de views em templates que são usadas com certa frequência. Pra ficar melhor, ainda podemos criar nossas próprias views.
É lógico que algumas ferramentas como o
codesmith há tempos faziam o mesmo trabalho. Mas a integração dessas ferramentas com o visual studio nunca foi lá grande coisa.
Mas com base nessa tecnologia, fiz um comentário no blog do scott'gu sobre a possibilidade de fazer visual studio snippets atenderem a esse mesmo padrão. Pois isso é uma porta se abrindo para termos snippets que suportam parâmetros de entrada e até snippets genéricas integradas com o visual studio.
Exemplo:
Imaginem a classe produto:
class Produto{
[IdKey] //estou chutando aqui um atributo relevante para o snippet
public int Id { get; set; }
public string Nome { get; set; }
public decimal Preco { get; set; }
}
e você está escrevendo um model no MVC e decide elaborar as rotinas de validação.
Então você digita dentro da classe:
ModelValidation
(e bate duas vezes no tab. Than!)
Poderia resultar numa validação padrão baseada num template, como a classe abaixo:
public class ProdutoModelValidation{
public class ValidateInput(Produto p){
//em funcao do key ID, a validacao aqui é desse jeito
if ( p.Id > 0 && p.Id != null ) ...
//o snippet sabe o que fazer quando trata tipos padrão string, como num template
if ( p.Nome != null) ...
//o snippet tem ciência dos tipos que ele está tratando, pois ele está acessando a
// classe produto através de reflection
if ( p.Preco != 0 ) ...
}
}
Bom, fica registrada aqui a idéia :-) vou encaminhar alguma coisa pro time do VS2010