A programação com a plataforma Microsoft .NET Framework se baseia na programação com tipos de dados estáticos, ou seja, toda expressão é de um tipo conhecido no momento da compilação e possíveis erros são conhecidos com antecedência.
Ao usar reflexão você pode resolver dependências de tipo em tempo de execução e habilitar seu código para funcionar baseado em uma interface sem ter que saber o tipo concreto, e essa técnica, usada desde a versão 1.0 do .NET Framework, foi amplamente utilizada para criar estruturas IoC (Inverse of Control – Insersão de Controle). Porém, apesar da flexibilidade, a interface do objeto de destino é fixa e imutável, ou seja, sempre existe uma interface conhecida por trás de qualquer chamada realizada através da reflexão.
O .NET Framework 4.0 tráz novos recursos que lhe permitirão ir além dos tipos estáticos. A tipificação dinâmica atrasa qualquer verificação de tipo até o momento da execução, ou seja, ignora a estrutura estática dos tipos no momento da compilação.
Com objetos dynamic, é possível definir a interface do objeto de maneira programática e ter a clareza formal de objetos estáticos e a flexibilidade dos tipos dinâmicos.
Com essa técnica é possível implementar um CRUD a partir do schema do banco de dados, criar um ponto de acesso centralizado para atender solicitações de requisições de interfaces com o usuário e fazer o tratamento necessário (navegação, integrar com serviços de negócios, etc) através de uma string (ASP.NET MVC? AJAX?), estruturar em objetos um XML, enfim, as possibilidades são muitas e a criatividade é o limite.
No próximo artigo apresentarei falaremos de objetos Expando e mostrei a idéia do CRUD a partir do schema do banco.
Até mais!