Novidades no C# 3.0: Métodos de Extensão (Extension Methods)
Um dos novos recursos com maior expressão no C# 3.0 e .NET 3.5 é a possibilidade de criar métodos de extensão (extension methods) para um tipo já existente.
Para validar um endereço de e-mail, por exemplo, a forma mais comum hoje em dia é através de uma nova classe com um método estático, como demonstrado abaixo:

E a validação é feita da seguinte forma:

Através de um método de extensão a classe String pode ser estendida para suportar a validação de e-mail, como demonstrado na figura abaixo:

Para que o método ValidarEmail fique disponível na classe String, ele deve ser definido como estático e a palavra reservada this deve ser adicionada à frente do primeiro parâmetro, fazendo com que o seu tipo seja estendido e passe a suportar o método em questão. Veja:

Feito isto, basta dar um using no namespace da classe onde o método foi implementado e ele já estará disponível no intellisense:

Uma característica muito importante dos métodos de extensão é que eles podem ser adicionados a tipos base. A classe object, por exemplo, pode ser estendida para ter um método qualquer e consequentemente ele estará disponível para todas as outras classes do framework e da aplicação.
Para quem já conhece o LINQ, vale a pena salientar que grande parte das operações disponíveis por ele (Max, Where, Average, etc) foram feitas através dos extension methods.
ScottGu anuncia a liberação do código fonte das bibliotecas do .NET 3.5
Não, você não leu errado e eu também não estou brincando!
Acabei de ler no blog do ScottGu um post falando sobre a liberação do código fonte das bibliotecas do .NET 3.5 quando for lançada a versão final do Visual Studio 2008 (Orcas), que está prevista para o final deste ano.
A liberação inclui as seguintes bibliotecas:
- .NET Base Class (System.IO, System.Collections, System.Configuration, etc);
- ASP.NET (System.Web);
- Windows Forms (System.Windows.Forms);
- ADO.NET (System.Data);
- XML (System.XML);
- WPF (System.Windows).
E não para por aí! A promessa é de que logo nos próximos meses após a liberação do VS, as bibliotecas do WCF, Workflow e LINQ também estarão liberadas.
Acha que acabou?
Além de ter todo o código fonte disponibilizado para estudo, debug ou qualquer outra idéia que você tiver, a IDE terá um recurso para download de classes sob demanda. Em outras palavras, você não precisa baixar todo o código fonte de uma vez, basta executar um trecho de código, apertar F11 (Step Into) sobre algum método e/ou propriedade e o Visual Studio fará o download dos arquivos necessários para a depuração.
Simplesmente excelente!
Frase de fanboy: thanks Microsoft.
O que você faria se…
…a equipe de ITIL da sua empresa dissesse com todas as letras:
Nós não recomendamos softwares open source!
Alguma sugestão? Trocar os softwares ou a equipe?