2. CARACTERÍSTICAS .NET
• Strongly typed – type safe
• Resolução de tipos é feita em compile time
• Plataforma auto-descrita(metadados)
3. WEAKLY TYPED CENARIOS
• CODEDOM
• Ótima para geração de código-fonte
• Abordagem independente de linguagem
• LCG (Lightweight Code Generator)
• Requer conhecimento da semântica do código em IL
• Expression trees
• Object model em tempo de execução
7. .NET 4.0: DYNAMIC KEYWORD
• Se um tipo é dynamic, significa que o binding e o dispatch
sejam postergados (deferred) para o tempo de execução.
int intFoo = 2;
int intBar = 3;
Console.WriteLine(intFoo + intBar);
dynamic dynFoo = 2;
dynamic dynBar = 3;
Console.WriteLine(dynFoo + dynBar);
8. DUCK TYPE ?
Se caminha como um pato e faz quack como um pato
então ... é um pato !
12. DYNAMIC, VAR, OBJECT
var: type é inferido do contexto
Object: type básico do CTS
dynamic: para o compilador é um object porém seu type
apenas será conhecido em runtime
17. MAS COMO ELE
EXECUTA?
1. DLR
1. Determinar variáveis e declarações dinâmicas
2. Usar CallSite para determinar as expression trees
3. Executa as trees
http://dlr.codeplex.com