dynamics2
TRANSCRIPT
DYNAMICS.NET 4.0SÉRGIO RODRIGUES GIRALDO
CARACTERÍSTICAS .NET• Strongly typed – type safe
• Resolução de tipos é feita em compile time
• Plataforma auto-descrita(metadados)
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
CODEDOM
LGC
EXPRESSION TREE
.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);
C:\Users\Public\sample1.txt
DUCK TYPE ?
Se caminha como um pato e faz quack como um pato
então ... é um pato !
DUCK TYPE? HUMM
NEM TANTO ;D
COMO PARECE NO CÓDIGO?
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
ENTENDENDO ...
DECOMPILER ...
sample2.txt
IL
sample3.txt
IL
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
NA REAL
DECOMPILED
DECOMPILED
DECOMPILED
BINDER ?
BINDER !