Como eu havia postado anteriormente, hoje ao meio dia a Microsoft abriu as inscrições para a conferência BUILD 2012 e, como não poderia deixar de ser, a internet no meu trabalho caiu faltando apenas 2 minutos para começarem as inscrições :S
[continuar lendo]Windows 8 atinge RTM
Hoje a Microsoft anunciou que atingiu o milestone RTM do Windows 8 e Windows Server 2012. Isso significa que a versão final está pronta e foi disponibilizada para fabricantes de PC.
Para o público geral o Windows só estará disponível para compra a partir do dia 26 de outubro, mas quem tem assinatura MSDN ou TechNet já poderá fazer download da versão final no próximo dia 15 de agosto (em exatamente 2 semanas), junto com as versões finais das ferramentas de desenvolvimento.
[continuar lendo]Usando LINQ com listas não genéricas
Hoje, mais uma vez eu me deparei com um “problema” relativamente comum: Usar LINQ em uma lista, coleção ou enumerável não generic (ocorre bastante quando se lida com código legado ou de aplicações mais antigas). Isso não é possível nativamente pois o LINQ trabalha apenas com generics por causa de inferencia de tipos.
Para não ter que colocar loopings no código apenas para migrar de não generico para genérico há 2 Extension methods bem simples que podemos usar:
Cast<type>()
– converte a coleção inteira para um IEnumerabledo tipo informado. Praticamente não há impacto de performance pois internamente ele simplesmente faz um cast explicito para o tipo solicitado e devolve o objeto. O único problema deste método é que se houver algum objeto na coleção sendo convertida que não seja do tipo solicitado, ocorrerá uma exceção quando seu código chegar neste ítem. OfType<type>()
– converte a coleção para um IEnumerabledo tipo informado, mas contendo apenas com os ítens que são do tipo solicitado. Este é mais seguro para quando você estiver usando uma coleção que pode conter objetos de tipos diferentes mas apenas um tipo lhe interessa. Há um pequeno impacto de performance pois antes de retornar cada ítem este é testado para ver se é do tipo correto e se não for, os seguintes são testados até encontrar um que seja ou acabarem os ítens.
Ou seja, para listas de objetos em código legado não generic mas onde o tipo é conhecido e garantido, a primeria opção é melhor. Para outros casos, use a segunda. Abaixo tem um pequeno exemplo de uso desse código:
var col = new Collection();
col.Add("text");
col.Add("text2");
col.Add(1);
col.Add("text4");
var keysCast = col.Cast<string>();
var keysOfType = col.OfType<string>();
var resultadoT = (from k in keysOfType
select k).ToArray();
var resultadoC = (from k in keysCast
select k).ToArray();
Neste exemplo, o LINQ que popula resultadoT funcionará corretamente e resultadoT conterá 3 ítens, mas o LINQ de resultadoC vai gerar uma exceção ao tentar fazer cast explicito do inteiro 1 para string. Se a linha que acrescenta 1 na collection col for comentada, as duas queries LINQ funcionarão.
\\BUILD\ Windows 2012
Hoje a Microsoft finalmente anunciou a data da segunda versão do \\BUILD\, sua nova conferencia de desenvolvimento e design (substituta do PDC e MIX). A edição deste ano será no campus da Microsoft em Redmond, Washington de 30 de Outubro até 2 de Novembro.
As inscrições abrem no dia 8 de Agosto a partir das 12:00 (meio-dia) no horário de Brasília, no site http://www.buildwindows.com/. Nesse dia começarão a ser divulgadas neste mesmo site mais informações sobre as sessões e assuntos que serão apresentados no evento.
Se você (assim como eu) pretende ir, eu sugiro que faça sua inscrição no dia 8 de agosto, assim que for possível pois devido às novidades e lançamentos da Microsoft este ano e ao fato de ser em Redmond eu acredito que as vagas vão esgotar bem rápido.
Assita ao Windows Phone Summit ao vivo
Hoje, às 13:00 (horário de Brasília) será transmitido ao vivo pelo Channel 9 via Live Streaming o Windows Phone Summit.
[continuar lendo]