dynamics2

Post on 05-Aug-2015

58 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

DYNAMICS.NET 4.0SÉRGIO RODRIGUES GIRALDO

SERGIO.GIRALDO@ITAU-UNIBANCO.COM.BR

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 !

top related