domingo, 31 de agosto de 2008

C# 3.0 : Extension Methods

A versão 3.0 da linguagem C# nos trouxe muitas melhorias, que se deram principalmente pela viabilização do LINQ (Language Integrated Query). Muitas destas novidades podem ser aproveitadas no nosso dia a dia, e neste Post eu vou falar um pouco sobre uma delas: os Extension Methods.

Os Extension Methods ou métodos de extensão são muito parecidos com os métodos estáticos, que podem ser chamados sem a necessidade de instanciarmos um objeto da classe.

Porém o objetivo de um extension method, é “adicionar” métodos a um uma classe já existente, sem a necessidade de modificarmos esta classe. Legal né?


Um exemplo: Que tal seria se tivéssemos um método ToZeroLeft em objetos da classe int? Ajudaria bastante quando precisamos colocar zeros à esquerda de um valor, e gravá-lo em uma string.


Este é apenas um exemplo, com certeza você vai achar diversas outras aplicações para os extensions methods. Chega de conversa e vamos logo ver como isso funciona.


Os seus Extension Methods devem ser criados como métodos estáticos, de preferência em uma classe destinada apenas para estes tipos de métodos. O primeiro parâmetro do método deve ser precedido do modificador this. E o seu tipo define o tipo que será “modificado”, ganhando este novo método. Veja o exemplo abaixo:


Toda vez que importarmos este namespace ExtensionMethods em qualquer outra classe, as variáveis do tipo int “ganharão” o método ToLeftZeros, veja o exemplo abaixo:


Note que a variável numero do tipo int possuí agora o extension method ToLeftZeros. Veja que no intelisense este método aparece com uma pequena seta apontando para baixo, indicando que este é um método de extensão.

Para nós, “usuários finais do C#”, a impressão é que modificamos a classe int, adicionando a ela um novo método. Porém por de trás dos panos, o compilador irá transformar isso em uma chamada ao método estático que criamos.

Como disse no começo, esta é uma funcionalidade que veio no C# 3.0 para viabilizar algumas features do LINQ. Para comprovar isso é simples, adicione uma referencia ao namespace System.Linq e veja o que acontece à suas Arrays:


Note que elas vão “ganhar” uma série de métodos relacionados à linguagem LINQ, como por exemplo o OrderBy.

Espero que faça um ótimo uso dos Extension Methods. Abaixo coloco algumas ótimas referencias sobre este tema:

Grande Abraço e até a próxima!

domingo, 24 de agosto de 2008

SQL Server 2008 Express

Neste mês de Agosto tivemos o lançamento e disponibilização do download da edição Express do SQL Server 2008.

Uma característica interessante neste release é que temos três “versões” do SQL Server 2008 Express para download.

Você pode baixar apenas o Database Engine, chamado simplesmente de Microsoft SQL Server 2008 Express, através do seguinte download:
http://www.microsoft.com/downloads/details.aspx?FamilyID=58ce885d-508b-45c8-9fd3-118edd8e6fff&DisplayLang=en

Pode baixar a versão “with Tools” através do seguinte link:
http://www.microsoft.com/downloads/details.aspx?FamilyId=7522A683-4CB2-454E-B908-E805E9BD4E28&displaylang=en. Esta edição vem com uma ferramenta chamada SQL Server Management Studio Basic, que é a ferramenta de gerenciamento dos bancos de dados, assim como tínhamos em um pacote separado no SQL Server 2005 Express.

E por fim temos a versão “with Advanced Services”, que além do Management Studio Basic, possuí o Full Text Search e o Reporting Services. Você pode realizar o download dessa versão através do seguinte link:
http://www.microsoft.com/downloads/details.aspx?FamilyId=B5D1B8C3-FDA5-4508-B0D0-1311D670E336&displaylang=en

Esta última versão é a grande novidade da edição Express do SQL Server 2008, e é o download que estou fazendo neste exato momento. Como devem imaginar ainda não tive tempo de instalar e avaliar as funcionalidades desta nova versão, já que este download foi disponibilizado no último dia 22 de agosto. Mas em breve, assim que tiver a oportunidade, estarei colocando aqui as novidades que encontrar sobre o SQL Server 2008, principalmente a respeito do seu uso com o Visual Studio.

Grande Abraço e até a próxima!

sexta-feira, 15 de agosto de 2008

VS2008 e .NET 3.5 Service Pack 1

No último dia 11 deste mês de Agosto (2008) foi lançada a versão final do Service Pack 1, do Visual Studio 2008 e do .NET Framework 3.5.

O link para o VS2008 SP1 é este aqui:

E para o .NET 3.5 SP 1 o link é este:

Este SP1 já estava disponível por algum tempo em Beta, o que não é muito recomendado para máquinas de desenvolvimento. Mas agora com a versão final podemos instalar o SP1 sem problemas. Alias, devemos instalá-lo.

Além de diversas correções, temos novidades interessantes, como o release do ASP.NET Dynamic Data, e o aumento de performance do WPF (Windows Presentation Foundation). Os três links abaixo dão uma descrição detalhada do que contempla esse Service Pack 1.

Visual Studio 2008 Service Pack 1 Readme:

Microsoft .NET Framework 3.5 Service Pack 1 Readme:

Lista de Mudanças e correções do .NET Framework 3.5 Service Pack 1

terça-feira, 12 de agosto de 2008

WPF ou Silverlight?

Já estamos as vésperas do Silverlight 2! E você já pode baixar a versão beta 2 desta segunda edição do Silverlight.

Através desse link:
http://silverlight.net/GetStarted/ você encontra o download da versão beta 2, os downloads das ferramentas e pacotes de desenvolvimento para o Silverlight 2, além de uma série de materiais que vão lhe ensinar a desenvolver aplicações com o Silverlight!

Breve eu também vou publicar na .net Magazine um artigo só sobre o Silverlight. Aguardem!

Mas você sabe qual é a diferença entre WPF e Silverlight? Muita gente me pergunta se existe diferença entre essas duas tecnologias.

A respostas é sim.

O WPF (Windows Presentation Foundation), é a sigla original da iniciativa da Microsoft para a criação de uma plataforma (daí o Foundation) para o desenvolvimento de interfaces ricas, com a utilização do padrão XML, surgindo então a sigla XAML (eXtensible Application Markup Language).

Inicialmente com o WPF é possível criar aplicações Standalone, que funcionam apenas no Windows, assim como é o velho e bom Windows Forms.

No Visual Studio 2008 podemos criar aplicações WPF Standalone (File / New / Project), basta escolher o template WPF Application Ao executarmos um projeto feito com esse template, nossa aplicação WPF será executada em uma janela do Windows.

Também é possível criar aplicações WPF que rodam no browser, conhecidas como XBAPs (XAML Browser Applications). No Visual Studio 2008, para criar uma aplicação WPF que roda no browser basta escolher o template WPF Browser Application.

Existem algumas diferenças entre aplicações WPF Standalone e as XBAPs, no que tange principalmente as questões de segurança. Porém uma aplicação feita inicialmente para rodar em Windows, pode ser facilmente adaptada para rodar no browser.

O problema é que as aplicações WPF XBAPs, apesar de rodarem no browser, funcionam apenas dentro da plataforma Microsoft. O que quer dizer que o usuário final só vai conseguir acessar a aplicação se estiver rodando em seu computador um Windows, com o .NET Framework 3.5 instalado.

É aí que surge o WPF/Everywhere, ou WPF/E, ou mais popularmente conhecido Silverlight. Com ele, nossas aplicações XAML passam a ser multiplataforma, e podem rodar em um número maior de browsers. Para o usuário final basta fazer o download do plugin, chamado convenientemente de Silverlight.

quarta-feira, 6 de agosto de 2008

Onde encontrar bom material sobre .NET

Olá Amigos!

Primeiramente gostaria de anunciar que retomo os Posts deste blog! Acabei ficando um bom tempo sem atualizá-lo, mas agora volto com força total!

Aproveito esse retorno para registrar aqui algumas referências para quem procura material instrutivo sobre a plataforma .NET Framework.

Recebo dezenas de e-mails por mês, e uma das perguntas mais freqüentes é: “Tem algum material para indicar?” A resposta é sempre SIM! Abaixo segue um resumo das minhas principais fontes de pesquisa:

O MSDN Experience é um canal da Microsoft que oferece uma enorme quantidade de vídeos voltados para a plataforma .NET. São vídeos de ótima qualidade, e estão divididos em duas áreas:

O próprio portal do MSDN é um excelente ponto de partida para quando você busca por material sobre .NET: http://msdn.microsoft.com/pt-br/default.aspx

O Portal Devmedia (http://www.devmedia.com.br) é o site da Editora DevMedia, responsável pela revista .NET Magazine, ClubeDelphi, WebMobile, Java Magazine, etc. Neste site você vai encontrar muito material escrito por autores brasileiros. Um diferencial importante deste site são as vídeo-aulas e a ótima qualidade do material. Você também confere ótimas matérias nas versões impressas (revistas citadas acima) . A Devmedia ainda conta com uma versão internacional do seu portal, o Mr. Bool: http://www.mrbool.com


O Portal da Linha de Código (http://www.linhadecodigo.com.br), Codificando.NET (http://www.codificando.net/), .NET Raptors (http://www.dotnetraptors.com.br), são mais alguns exemplos de sites que contém um ótimo material produzido por brasileiros.


O Site do meu amigo Luciano Pimenta (http://www.lucianopimenta.net/), que está começando agora, mas já tem um ótimo material. Vamos dar uma força pra ele lá!

De sites gringos os meus destaques são:

Não tem material de .NET, mas o blog do meu amigo Rob Ranches (http://vidadigitao.blogspot.com/) trata de tecnologia sob um ponto de vista excepcional, e eu não poderia deixar de citar aqui!


Estes são só alguns que eu lembrei agora. Com certeza devo ter esquecido de vários, mas prometo que vou atualizando essa lista com freqüência. E se você tiver algum link de sites com bons materiais sobre .NET me avise!

Grande Abraço e até a Próxima!