MSN na sua Sidebar feito em WPF!

Boa dica do Rene de Paula é o Continuum, um MSN feito em WPF pela empresa Thirteen23. Nos meus testes achei muito legal, interativo e interessante. Porém acho que a aplicação deve receber algumas melhorias com o tempo.

O legal: você tem o seu MSN com a sua lista de contatos e na sidebar têm-se um gadget onde você adiciona (arrastando) os contatos que mais lhe interessam.

Teste você mesmo!

Rodrigo Kono
MCP – MCTS (WEB – SQL) – MSP
DevGoiás.NET Lead
INETA Brasil Board

Certificação em WPF: 071-502

Realizei a inscrição da prova de WPF através do voucher beta. Porém no último dia 08 de fevereiro ao chegar para fazer a prova o servidor da Prometric estava fora do ar e todas as provas do dia foram canceladas.

Eis a resposta da Prometric:

"Unfortunately the Beta exam 071-502 expired on 2/8/2008 11:59:00 PM on this case you need to wait until the life exam will be able to schedule."

Ou seja, vou ter que esperar a prova se oficializar para fazê-la. O ruim é que não vou ter mais as 60 questões e é bem provável que eu perca o voucher.

Ps.: Quem planeja a estudar para essa prova, estude pelo livro do Adam Nathan: WPF Unleashead. O livro é muito bom e aborda legal a parte de bind que é o que você vai precisar muito tanto na prova quanto no desenvolvimento diário.

Francamente…

Rodrigo Kono
MCP – MCTS (WEB – SQL) – MSP
DevGoiás.NET Lead
INETA Brasil Board

DICA: Trabalhando com CACHE no ASP.NET

Quando trabalhamos com cache de dados no ASP.NET grande parte dos programadores utilizam o código bem parecido com o descrito abaixo:

 protected void Page_Load(object sender, EventArgs e)
    {
        if (Cache["SomeData"] != null)
        {
            string name = ((SomeClass)Cache["SomeData"]).Name;
        }

        //...
    }

Este código não é suficientemente seguro e segundo a documentação da Microsoft, essa declaração pode gerar uma NullReferenceException. Dessa forma não existe nenhuma garantia de que um objeto em cache irá ficar na memória e após a primeira chamada o objeto pode ser suprimido pelo garbage colector ou por outra thread com dados em cache.

Para não termos problemas com isso, podemos reescrever o código acima da seguinte forma:

protected void Page_Load(object sender, EventArgs e)
    {
        SomeClass someClass = Cache["SomeData"] as SomeClass;
        if (someClass != null)
        {
            string name = someClass.Name;
        }
        //...
    }

Leia mais sobre como adicionar itens em cache no ASP.NET.
É isso ai.

Rodrigo Kono
MCP.NET 2.0 – MCTS (WEB – SQL) – MSP
DevGoiás.NET Lead
INETA Brasil Board