March 2010 Entradas
Você sabe o que é Duck Typing? Duke Typing é um processo para definir tipos, métodos e operadores em tempo de execução. Se você tem um objeto que anda como um pato, faz quack como um pato logo é um pato.
O C# 4.0 trouxe esse recurso na forma de Dynamic Binding. Esse recurso é útil quando sabemos que um método ou operador existem no tipo mas estaticamente o compilador não tem condições de saber. Basicamente a palavra reservada dynamic diz ao compilador para ficar sossegado que em tempo de execução ele saberá o que fazer.
Vamos entender um pouco sobre as diferenças entre Static Binding e Dynamic Binding.
Conheceremos melhor o que é um e o que é outro brincando com a seguinte classe:
class ClassXYZ
{
public void Foo(int id)
{
Console.WriteLine("Persist.Foo");
}
}
Vamos supor que queremos instanciar um objeto do tipo ClassXYZ e chamar o método Foo(int). No C# atual nós temos algumas opções, vejamos:
ClassXYZ staticObj = new ClassXYZ();
staticObj.Foo(42);
O código acima instância um objeto ClassXYZ e chama o método Foo, em tempo de compilação o conhecemos exatamente de que tipos estamos falando.
Nós também podemos chamar o método Foo de uma outra forma. Podemos usar reflection para criar um objeto ClassXYZ depois pegamos o método Foo e invocamos o método passando o argumento 42.
Vejam só como ficaria o método.
object reflectionObj = Activator.CreateInstance(Type.GetType("ConsoleApplication1.ClassXYZ"));
MethodInfo method = reflectionObj.GetType().GetMethod("Foo");
method.Invoke(reflectionObj, new object[] { 42 });
Poxa vida! Agora você complicou hein! Reflection é uma técnica avançada e é bastante utilizada em frameworks de persistência (conheça o Paulovich.Data no Codeplex).
Isso é Static Binding, você precisa explicitar para o compilador exatamente quais são os tipos sendo usados.
Já com o C# 4.0 nós temos um recurso bastante valioso chamado Dynamic Binding. Com ele nós podemos ter um código semelhante a isso:
dynamic obj = GetObject();
obj.Foo(42);
Onde GetObject fica encarregado de em tempo de execução definir qual o tipo sendo usado. Com a palavra reservada dynamic nós limpanos o nosso código de Reflections mirabolantes e passamos a ter um código mais legível.
É importantíssimo ressaltar que esse recurso não veio para substituir a forma convencional como declaramos os tipos e chamamos os métodos. Essa nova característica da linguagem veio para atender aos programadores que precisavam fazer malabarismo para realizar determinadas operações.
Inauguro agora uma série de posts sobre o conteúdo que irei tratar nas palestras do Community Launch. Primeiramente, preciso ter um ambiente configurado. Talvez você já tenha tido a experiência de instalar o Team Foundation Server 2008, e tenha visto a quantidade enorme de passos para ter o ambiente rodando.
Já no Team Foundation Server 2010. Em no máximo 20min você tem o TFS pronto para ser usado e sem dor de cabeça alguma.
Passo 0 – Aceitar os termos de uso e Passo 1 – Definir o local da instalação
Passo 2 – Esperar a cópia dos arquivos e Passo 3 – Abrir a caixa de configurações

Passo 4 – Selecionar um Wizard de de configuração, no meu caso eu escolhi Basic pois tenho todos os serviços locais e estamos falando de um TFS a ser usado num curto período de tempo.
Passo 5 – Apenas revisar os prerequisitos e Passo 6 – Definir o banco de dados

Passo 7 – Selecionar a instância do Banco de Dados e Passo 8 – Revisar tudo

Passo 9 – Verificação de pre-requisitos e Passo 10 – Ver que está tudo OK


Se você teve interesse em começar a se divertir com o TFS 2010, eu recomendo que você baixe o ISO do RC diretamente do site da Microsoft. Certamente você se supreendeu com a diferença no processo de instalação entre duas versões com 2 anos de diferença mas como diria Ramon Duraes: “Não tem que ser difícil”.
PS. Você contou direito, são 11 passos. Mas quem se importa?
A Copa de Talentos Microsoft começou hoje, é uma competição onde a Microsoft irá levar até você muito conhecimento sobre os novos produtos através de eventos por todo o Brasil. Os eventos estão sendo promovidos por grupos de desenvolvedores locais e também pela Microsoft em pelo menos 16 cidades. O DotNetRaptors também está na competição más é justamente para te ajudar a vencer! Temos dois times na competição um em Belo Horizonte e outro em São José dos Campos, esses times contam com um técnico que está ali apenas para te ajudar a ir bem, ou seja, se você entrar no nosso time nós jogaremos do seu lado para fazer você vencer! Cadastre-se já no site da competição e escolha entre os times: DotNetRaptorsBH ou Raptors André Raptors SJC.
+
O Community Launch é um conjunto de eventos organizados pela comundade de profissionais e entusiastas ligados a MSDN e TechNet. E Belo Horizonte não irá ficar fora dessa, teremos o lançamento dos produtos ocorrendo na PUC São Gabriel. Essa é mais uma iniciativa do grupo de usuários DotNetRaptors, como vocês podem ver a turma está voltando pra valer! As palestras serão focadas nos novos recursos do Visual Studio 2010 e das novas tecnologias oferecidas pelo .NET Framework 4. O primeiro evento dá série irá ocorrer no dia 03/05/2010 (3 de Março Maio, segunda-feira!) e contará com palestras sobre Visual Studio, Copa de Talentos Microsoft e ASP.NET MVC. Nesse evento vocês podem contar com a palestra do André Paulovich e no segundo tempo teremos o Ivan Paulovich compartilhando com vocês todas as informações obtidas dos produtos. Mas atenção, as vagas são limitadíssimas. Não perca a chance de participar desse evento. Você pode fazer sua inscrição pelo site da Microsoft no seguinte endereço: Community Launch Belo Horizonte.