dynamics2

23
DYNAMICS .NET 4.0 SÉRGIO RODRIGUES GIRALDO [email protected]

Upload: sergio-giraldo-pmi-acp-psm

Post on 05-Aug-2015

58 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Dynamics2

DYNAMICS.NET 4.0SÉRGIO RODRIGUES GIRALDO

[email protected]

Page 2: Dynamics2

CARACTERÍSTICAS .NET• Strongly typed – type safe

• Resolução de tipos é feita em compile time

• Plataforma auto-descrita(metadados)

Page 3: Dynamics2

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

Page 4: Dynamics2

CODEDOM

Page 5: Dynamics2

LGC

Page 6: Dynamics2

EXPRESSION TREE

Page 7: Dynamics2

.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

Page 8: Dynamics2

DUCK TYPE ?

Se caminha como um pato e faz quack como um pato

então ... é um pato !

Page 9: Dynamics2

DUCK TYPE? HUMM

Page 10: Dynamics2

NEM TANTO ;D

Page 11: Dynamics2

COMO PARECE NO CÓDIGO?

Page 12: Dynamics2

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

Page 13: Dynamics2

ENTENDENDO ...

Page 14: Dynamics2

DECOMPILER ...

sample2.txt

Page 15: Dynamics2

IL

sample3.txt

Page 16: Dynamics2

IL

Page 17: Dynamics2

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

Page 18: Dynamics2

NA REAL

Page 19: Dynamics2

DECOMPILED

Page 20: Dynamics2

DECOMPILED

Page 21: Dynamics2

DECOMPILED

Page 22: Dynamics2

BINDER ?

Page 23: Dynamics2

BINDER !