Oct 15 2007

Novidades no C# 3.0: Métodos de Extensão (Extension Methods)

Autor: Marcos Dell Antonio - Categorias: .NET

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:

Método estático para validar um e-mail

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

Validação de e-mail utilizando método estático

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:

Validação de e-mail utilizando método de extensão

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:

Declaração de um método de extensão (extension method)

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

Utilização de um método de extensão (extension method)

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.

Comentários Faça o seu comentário

Oct 03 2007

ScottGu anuncia a liberação do código fonte das bibliotecas do .NET 3.5

Autor: Marcos Dell Antonio - Categorias: .NET

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.

Comentários 1 comentário

Oct 02 2007

O que você faria se…

Autor: Marcos Dell Antonio - Categorias: Cotidiano

…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?

Comentários 3 comentários