DYNAMICS.NET 4.0SÉRGIO RODRIGUES GIRALDOSERGIO.GIRALDO@ITAU-UNIBANCO.COM.BR
CARACTERÍSTICAS .NET• Strongly typed – type safe• Resolução de tipos é feita em compile time• Plataforma auto-descrita(met...
WEAKLY TYPED CENARIOS• CODEDOM   • Ótima para geração de código-fonte   • Abordagem independente de linguagem• LCG (Lightw...
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...
DUCK TYPE ?Se caminha como um pato e faz quack como um patoentão ... é um pato !
DUCK TYPE? HUMM
NEM TANTO ;D
COMO PARECE NO CÓDIGO?
DYNAMIC, VAR, OBJECTvar: type é inferido do contextoObject: type básico do CTSdynamic: para o compilador é um object porém...
ENTENDENDO ...
DECOMPILER ...
IL
IL
MAS COMO ELEEXECUTA?1. DLR  1. Determinar variáveis e declarações dinâmicas  2. Usar CallSite para determinar as expressio...
NA REAL
DECOMPILED
DECOMPILED
DECOMPILED
BINDER ?
BINDER !
Upcoming SlideShare
Loading in...5
×

Dynamics2

66

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
66
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Dynamics2

  1. 1. DYNAMICS.NET 4.0SÉRGIO RODRIGUES GIRALDOSERGIO.GIRALDO@ITAU-UNIBANCO.COM.BR
  2. 2. CARACTERÍSTICAS .NET• Strongly typed – type safe• Resolução de tipos é feita em compile time• Plataforma auto-descrita(metadados)
  3. 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
  4. 4. CODEDOM
  5. 5. LGC
  6. 6. EXPRESSION TREE
  7. 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. 8. DUCK TYPE ?Se caminha como um pato e faz quack como um patoentão ... é um pato !
  9. 9. DUCK TYPE? HUMM
  10. 10. NEM TANTO ;D
  11. 11. COMO PARECE NO CÓDIGO?
  12. 12. DYNAMIC, VAR, OBJECTvar: type é inferido do contextoObject: type básico do CTSdynamic: para o compilador é um object porém seu typeapenas será conhecido em runtime
  13. 13. ENTENDENDO ...
  14. 14. DECOMPILER ...
  15. 15. IL
  16. 16. IL
  17. 17. MAS COMO ELEEXECUTA?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
  18. 18. NA REAL
  19. 19. DECOMPILED
  20. 20. DECOMPILED
  21. 21. DECOMPILED
  22. 22. BINDER ?
  23. 23. BINDER !
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×