domingo, 20 de setembro de 2009

Novidades!

Mais um postzinho rapidinho só pra manter todos informados. Aqui na edição de Setembro da MSDN Magazine podemos conferir algumas das novidades do Framework 4.0, destaque para o namespace System.IO que ganha várias melhorias com ajuda de novos métodos que retornam IEnumerables. Pra quem ainda não viu, aqui tem um vídeo que mostra como está ficando o Office 2010 Live Application.

terça-feira, 1 de setembro de 2009

Cadê as sobrecargas no Silverlight?

Mais de um mês inteiro sem nenhuma postagem, estou com um pouco de falta de criatividade. Aliado a isto tive um problema de saúde que me deixou durante uma semana bastante preocupado, mas já me sinto melhor. Andei estudando Silverlight e WPF, inclusive estou participando de um projeto com ambas as tecnologias e posso dizer com certeza que a curva de aprendizado não é tão grande entre as duas. Uma das dificuldades que estou sentindo na programação em Silverlight é a falta de algumas (várias) sobrecargas de métodos. Isso não chega a ser um problema, mas incomoda quando se tenta utilizar um código antigo numa aplicação Silverlight. Vou colocar dois códigos bem simples, que provavelmente você já deva ter usado:
public bool IsConvertible(Type type)
{
    return type.GetInterface("IConvertible") != null;
}
public T ConvertEnum<T>(object src)
{
    Type type = typeof(T);
    return (T)Enum.Parse(type, src.ToString());
}
Pois bem, apesar de bem simples os dois métodos acima não funcionam exatamente como estão. Isso porque exatamente a sobrecarga utilizada não existe em Silverlght. Obviamente que se passarmos outro parâmetro a acessarmos a outra sobrecarga podemos ver que o Silverlight possui apenas uma forma de acesso, conforme abaixo.
public bool IsConvertible(Type type)
{
    return type.GetInterface("IConvertible", false) != null;
}
public T ConvertEnum<T>(object src)
{
    Type type = typeof(T);
    return (T)Enum.Parse(type, src.ToString(), false);
}
A lista de diferenças e bastante grande, inclui também coisas que se costuma usar com muita frequência até em WPF como é o caso do DependencyProperty.Register que também não tem nenhuma sobrecarga no Silverlight. É só com o dia a dia é que notaremos todas essas diferenças. Não pode-se culpar a equipe de deselvolvimento do Silverlight pois afinal de contas a diferença no tamanho do plugin para o framework .NET completo teria que estar em algum lugar. Mágica não existe. Enjoy