Artigo CS2-01: Introdução à linguagem de programação C# 2.0

Série Novidades da linguagem de programação C# 2.0

Descrição da série de artigos

A série "Novidades da linguagem de programação C# 2.0" foi projetada para ser apresentada em 10 artigos e tem como objetivo mostrar as principais extensões introduzidas na linguagem de programação C# 2.0.

Os artigos têm como objetivo focar nas novidades da linguagem de programação C# 2.0, portanto não serão abordadas novidades em outras áreas do Microsoft .NET Framework 2.0, como: ASP.NET 2.0, ADO.NET 2.0, Windows Forms 2.0, dentre outras tecnologias.

No decorrer da série de artigos serão desenvolvidos exemplos para ilustrar a aplicação dos conceitos apresentados na parte teórica. Os exemplos têm como principais objetivos fornecer uma visão prática do uso das novidades da linguagem C# 2.0 e apresentar boas práticas de codificação conforme descrito no tópico "Design Guidelines for Developing Class Libraries" da documentação do Microsoft .NET Framework 2.0.

Início da páginaInício da página

Preparando o ambiente de desenvolvimento

Microsoft .NET Framework 2.0 Software Development Kit

Este kit de desenvolvimento de software inclui todas as ferramentas necessárias para escrever, compilar e implantar aplicações para o Microsoft .NET Framework 2.0, como: compiladores e outras ferramentas de comando de linha, algumas ferramentas com interface gráfica com o usuário, uma extensa documentação e diversos exemplos. Todos os códigos desenvolvidos nesta série de artigos podem ser editados num editor de textos simples, como o acessório bloco de notas do Windows, e compilados com o compilador de linha de comando csc.exe (Visual C# 2005 Compiler), disponível no Microsoft .NET Framework 2.0 SDK.

O Microsoft .NET Framework 2.0 Redistributable Package deve ser instalado antes do SDK. Este pacote instala o ambiente de execução do .NET Framework e os arquivos associados necessários para executar aplicações desenvolvidas para o Microsoft .NET Framework 2.0.

Existem versões do pacote para redistribuição e do SDK para plataformas x86 (32-bit), x64 (64-bit) e IA64 (Itanium 64-bit).

Os usuários que já instalaram o Visual Studio 2005, exceto as edições Express, não precisam instalar o Microsoft .NET Framework 2.0 SDK separadamente. O Visual Studio 2005 inclui o pacote para redistribuição e o SDK como componentes durante a instalação.

Para obter maiores informações sobre o Microsoft .NET Framework 2.0 e baixar a versão apropriada para a sua plataforma de hardware e software, acesse o seguinte endereço: http://msdn.microsoft.com/netframework/downloads/updates.

Microsoft Visual C# 2005 Express Edition

Somente com o Microsoft .NET Framework 2.0 Software Development Kit é possível desenvolver uma grande variedade de aplicações voltadas para a plataforma .NET, como: aplicações console, Windows Forms, ASP.NET, XML Web Services, dentre outras. Porém, um ambiente integrado de desenvolvimento aumenta bastante a produtividade na codificação destas aplicações.

O Visual C# 2005 Express Edition fornece um ambiente integrado de desenvolvimento bastante interativo para a codificação com a linguagem de programação C# 2.0. O IDE (Integrated Development Environment) fornece suporte para construção de aplicações Windows Forms, componentes de biblioteca de classes (Class Library) e aplicações com interface de linha de comando (Console Application).

A Microsoft anunciou que os produtos Visual Studio Express Editions serão oferecidos gratuitamente até o dia 6 de novembro de 2006 (um ano após o lançamento oficial). Após esta data, os produtos serão oferecidos por USS$ 49.00. Para maiores informações, acesse o endereço: http://msdn.microsoft.com/vstudio/express/support/faq/default.aspx#pricing.

A seguir são apresentados alguns dos recursos disponíveis no Visual C# 2005 Express Edition que aumentam significantemente a produtividade do desenvolvedor.

Solution Explorer - Lista todos os arquivos de todos os projetos de uma solução.

Quadro de ferramentas (Toolbox) - Contém controles e componentes para arrastar e soltar em aplicações Windows Forms. Os controles são agrupados por categorias: Dados (Data), Impressão (Printing), quadros de diálogo (Dialogs), Menus e barras de ferramentas (Menus & Toolbars), dentre outras.

   

Janela de propriedades - Permite selecionar um objeto na lista de seleção para modificar propriedade de tempo de projeto e manipular eventos. A parte inferior desta janela apresenta uma descrição da propriedade selecionada.

Superfície de desenho - Torna simples controlar visualmente a aparência e o comportamento da interface de uma aplicação Windows. Observe que os componentes não visuais são apresentados numa região separada na parte inferior (component tray).

Linhas guias (Snap Lines) - As linhas guias são apresentadas enquanto um controle está sendo arrastado num formulário, auxiliando o alinhamento com outros controles que já estão posicionados e nos limites do formulário.

Lista de erros - Apresenta uma lista com informações de erros e/ou advertências em tempo de projeto e em tempo de compilação. As seguintes informações podem ser apresentadas: categoria, ordem, descrição, arquivo, linha, coluna e projeto.

Abas - Facilitam o trabalho com múltiplos arquivos abertos.

Barra de estado - Apresenta informações sensíveis ao contexto. Na janela de edição de código, a barra de estado apresenta informações como a linha e a coluna de posicionamento do cursor no código.

Smart Tasks - Fornecem acesso simples a tarefas comuns de controles.

Database Explorer - Apresenta conexões com bancos de dados. Após o estabelecimento de uma conexão, é possível manipular objetos do banco de dados no IDE.

Observador de classes (Class View) - Apresenta uma janela de visualização dos tipos definidos no seu projeto de forma hierárquica (namespaces, classes, heranças, etc.). Um quadro de combinação (combo box) permite a busca por tipos de modo rápido e simples. A parte inferior apresenta os membros do tipo selecionado na parte superior, permitindo uma navegação simples até a definição do membro no código.

Refactoring - É o processo de reestruturar o seu código fonte. O Visual C# 2005 Express Edition fornece dois recursos de refactoring: "Rename" e "Extract Method".

IntelliSense - Fornece um quadro de listagem com opções sensíveis ao contexto para completar o código. Além disto, durante a navegação da lista, dicas são apresentadas com descrições de cada item.

Regiões de ocultação - Permitem a visualização somente da parte do código que está sendo manipulada num determinando contexto.

Comentários XML - Permitem a documentação do código com um conjunto de marcadores (tags) que podem ser utilizados dependendo do contexto. Estes comentários de documentação devem preceder imediatamente um tipo definido pelo usuário (como uma classe, uma estrutura, uma interface ou um delegate) ou um membro (como um campo, uma propriedade, um método ou um evento). O IDE auxilia na documentação preenchendo automaticamente com marcadores XML comuns de acordo com o contexto do código abaixo do local de inclusão dos comentários de documentação (///).

Pontos de detenção (Breakpoints) - Definem linhas de parada para execução passo a passo em modo de depuração para análise de código.

Marcas de revisão de linha - Permitem visualizar as modificações feitas durante uma sessão de codificação. Linhas amarelas e verdes aparecem do lado esquerdo da janela de edição de código para indicar que o fragmento de código adjacente foi incluído ou modificado após a abertura do arquivo fonte. Sendo que, a linha fica verde quando o código já foi salvo naquela sessão e amarela em caso contrário.

Lista de membros - Torna simples a navegação pelo código dos membros de um tipo, uma vez que eles são organizados em ordem alfabética e permitem o posicionamento do cursor no início da definição do membro quando são selecionados.

Fragmentos de código (IntelliSense Code Snippets) - Fragmentos de código que permitem o preenchimento de regiões e são extensíveis.

Cercar com (Surround With) - Característica que permite cercar um código selecionado com fragmentos de código pré-definidos.

Uso automático da diretiva using - O IDE tenta detectar omissões da diretiva using e apresentar um smart tag para adicionar a diretiva using apropriada ou fornecer o nome completamente qualificado do tipo.

Lista de tarefas (Task List) - Permite manter informações de tarefas que devem ser completadas na codificação de um projeto.

Para obter maiores informações destes e de outros recursos do ambiente integrado de desenvolvimento Visual C# 2005 Express Edition, leia o Feature Tour no seguinte endereço: http://msdn.microsoft.com/vstudio/express/visualcsharp/features/default.aspx.

Para baixar o Visual C# 2005 Express Edition, acesse o seguinte endereço: http://msdn.microsoft.com/vstudio/express/visualcsharp/download.

Início da páginaInício da página

Principais novidades da linguagem de programação C# 2.0

A linguagem de programação C# 2.0 introduziu diversas extensões em relação à versão anterior. Abaixo, segue uma descrição resumida dos principais novos recursos que serão abordados nos artigos desta série.

Generics

Os generics permitem que classes, estruturas, interfaces, delegates e métodos sejam parametrizados pelos tipos de dados que eles armazenam e manipulam. Os generics fornecem uma forte verificação de tipos em tempo de compilação, requerendo menos conversões explícitas entre tipos de dados e reduzindo a necessidade de operações de boxing e verificações de tipo em tempo de compilação. Um exemplo clássico dos benefícios fornecidos pelos generics está no uso de coleções.

Métodos anônimos

Os métodos anônimos permitem que blocos de códigos sejam escritos "in-line" em contextos em que instâncias de delegates são esperadas. Um exemplo clássico do uso de métodos anônimos ocorre na codificação de um método para manipulação de um evento de um objeto.

Iterators

Os iterators são métodos que calculam e produzem uma seqüência de valores. Os iterators simplificam substancialmente o código para especificar como uma instrução foreach interagirá com os elementos de um tipo de dado.

Tipos parciais

Os tipos parciais permitem que as declarações de classes, estruturas e interfaces sejam divididas em múltiplas partes em diferentes arquivos fontes. Os tipos parciais permitem a separação das partes de um tipo que são geradas automaticamente por uma ferramenta das partes escritas pelo usuário. Deste modo, os códigos personalizados pelo usuário podem ser mantidos sempre que a ferramenta necessitar gerar novamente códigos para o tipo.

Tipos anuláveis

Os tipos anuláveis fornecem suporte à anulabilidade de tipos por valor. Este suporte é essencial na interação com campos anuláveis de bancos de dados ou com atributos opcionais de arquivos de linguagens de marcação, como documentos XML (eXtensible Markup Language).

Início da páginaInício da página

Conclusão

O objetivo desta série de artigos é apresentar, de forma teórica e prática, as mais importantes extensões incluídas na versão 2.0 da linguagem C#. Este primeiro artigo apresentou as descrições de todos os artigos da série, do público alvo da série de artigos, da preparação do ambiente de desenvolvimento com informações do .NET Framework 2.0 SDK e do Visual C# 2005 Express Edition e um resumo das principais novidades da linguagem de programação C# 2.0 (Generics, métodos anônimos, Iterators, tipos parciais e tipos anuláveis).

O próximo artigo apresentará uma motivação para o uso de Generics.

Início da páginaInício da página

Currículo resumido do autor

Rogério Moraes de Carvalho (rogeriom@gmx.net) é consultor e instrutor de Tecnologias da Informação. Ele trabalha com consultorias e treinamentos na plataforma .NET desde 2001, quando foi lançada a versão beta 1 do Visual Studio .NET 2002. Atualmente, ele está prestando consultoria no desenvolvimento de sistemas para correção de concursos no Centro de Seleção e de Promoção de Eventos da Universidade de Brasília (CESPE/UnB), em Brasília-DF, com uso de tecnologias da plataforma .NET e banco de dados SQL Server. Ele atuou como instrutor em diversos treinamentos, oficiais e personalizados, sobre desenvolvimento Web, XML e tecnologias relacionadas, bancos de dados, tecnologias das plataformas .NET e Java, dentre outros. Seguem algumas das empresas públicas e privadas que já tiveram turmas treinadas por ele: ASBACE/ATP S.A., Banco Central, Banco do Brasil, Cast Informática (antiga CASTMETA), CESPE/UnB, Exército Brasileiro, FENAE Corretora de Seguros (que presta serviços para a Caixa Econômica Federal), Ministério do Trabalho e Emprego, Prodasen, SERPRO, etc. Ele participa ativamente de eventos TTT (Traning the Trainers), promovidos freqüentemente pela Microsoft para técnicos selecionados. Ele foi o idealizador e é o principal organizador do evento Plataforma Java x Plataforma .NET que ocorreu nos anos de 2003, 2004 e 2005. Ele foi palestrante no evento Microsoft TechEd Brasil 2005, além de ter participado como palestrante em diversos outros eventos importantes.


Início da páginaInício da página