Baixei nesses últimos dias o recém-lançado Visual Studio SDK de setembro (v3.0). A novidade que eu mais esperava era o DSL Tools, que finalmente deixou de ser beta para estrear em seu primeiro release oficial. Como já vinha usando a ferramenta desde seu primeiro beta, só posso dizer que estou muito satisfeito com o trabalho final a que o pessoal da MS chegou.
Para quem não conhece, o DSL Tools é, em linhas gerais, um plugin do VS.NET que permite a modelagem de linguagens de domínio específico (DSL ou domain-specific languages) visuais. A figura abaixo mostra um exemplo que eu desenvolvi considerando, como domínio-alvo, jogos do tipo quiz (quiz games).

Do lado esquerdo, você especifica os conceito do domínio (jogo, quiz, alternativa, dica, etc.) e o relacionamento entre eles. No lado direito, você define como esses conceitos e relacionamentos serão apresentados visualmente (na forma de imagens, figuras geométricas, compartimentos, etc.) para quem estiver consumindo a DSL. A próxima imagem mostra agora alguém consumindo a DSL, já embutida no VS.NET, especificada no passo anterior.

E pra que serve isso? Uma das partes mais interessantes do DSL Tools é que você pode estar associando geradores de código a sua DSL. Dessa forma, o diagrama acima modelado pode ser usado como input para um gerador que fará todo o trabalho braçal de convertê-lo em uma aplicação de verdade, seja Windows Forms, Web ou mobile.
Uma vez que você implemente o gerador de código, você terá uma automação bastante bem-vinda para a criação de infinitas aplicações do domínio (no caso, quiz games). Isso está super-alinhado com o conceito de Software Factories, mas isso é história para outro post.
PS1: Estarei me articulando para publicar artigos e realizar eventos sobre o DSL Tools nas próximas semanas; fiquem sintonizados!
PS2: quem quiser conferir um exemplo interessante de utilização do DSL Tools (ainda beta) pode conferir o SharpLudus em www.cin.ufpe.br/~sharpludus.
[]s
-- AFurtado