Skip to content

1. Introdução

O PDF deste documento está disponível |AQUI|.

Os exemplos deste documento estão disponíveis |AQUI|.

C# é uma linguagem recente. Ela esteve disponível em versões beta sucessivas desde o ano 2000, antes de ser lançada oficialmente em fevereiro de 2002, juntamente com a plataforma .NET 1.0 da Microsoft, à qual está vinculada. O C# só pode funcionar com esse ambiente de execução. Este disponibiliza aos programas executados nele um conjunto muito extenso de classes. Em uma primeira aproximação, pode-se dizer que a plataforma .NET é um ambiente de execução análogo a uma máquina virtual Java. No entanto, é possível observar duas diferenças:

  • O Java é executado em diferentes sistemas operacionais (Windows, Unix, Macintosh) desde o início. Em 2002, a plataforma .NET só era executada em máquinas Windows. Há alguns anos, o projeto Mono [http://www.mono-project.com] permite utilizar a plataforma .NET em sistemas operacionais como Unix e Linux. A versão atual do Mono (fevereiro de 2008) oferece suporte ao .NET 1.1 e a elementos do .NET 2.0.
  • A plataforma .NET permite a execução de programas escritos em diferentes linguagens. Basta que o compilador desses programas seja capaz de gerar código IL (Intermediate Language), código executado pela máquina virtual .NET. Todas as classes do .NET estão disponíveis para as linguagens compatíveis com .NET, o que tende a eliminar as diferenças entre as linguagens, na medida em que os programas utilizam amplamente essas classes. A escolha de uma linguagem .NET passa a ser mais uma questão de preferência do que de desempenho.

Em 2002, o C# utilizava a plataforma .NET 1.0. Na época, o C# era basicamente uma “cópia” do Java, e o .NET era uma biblioteca de classes muito semelhante à da plataforma de desenvolvimento Java. No contexto do aprendizado da linguagem, era possível passar de um ambiente C# para um ambiente Java sem se sentir realmente desorientado. Havia até ferramentas para converter o código-fonte de uma linguagem para a outra. Desde então, as coisas evoluíram. Cada linguagem e cada plataforma de desenvolvimento tem agora suas especificidades. Não é mais tão fácil transferir suas competências de um domínio para outro.

O C# 3.0 e o framework .NET 3.5 trazem muitas novidades. A mais importante é provavelmente a LINQ (Language INtegrated Query), que permite realizar consultas de maneira uniforme, semelhante à da linguagem SQL, sequências de objetos provenientes de estruturas em memória, como tabelas e listas, de bancos de dados (SQL Server, apenas por enquanto — fevereiro de 2008) ou de arquivos XML.

Este documento não é um curso exaustivo. Por exemplo, o LINQ não é abordado aqui. Ele se destina a pessoas que já possuem conhecimentos de programação e desejam descobrir os fundamentos do C#. Trata-se de uma revisão do documento original publicado em 2002.

Vários livros me ajudaram a escrever este curso:

Para a versão de 2002:

  • Professional C# programming, Edições Wrox
  • C# e .NET, Gérard Leblanc, Editora Eyrolles

Na época, achei essas duas obras excelentes. Desde então, Gérard Leblanc publicou versões atualizadas, entre as quais a seguinte:

  • C# e .NET 2005, Gérard Leblanc, Editora Eyrolles

Para a revisão de 2008, utilizei as seguintes fontes:

  • o documento original de 2002. Esse documento, resultante de um copiar/colar do meu curso de Java, continha tanto erros tipográficos quanto erros mais graves, como afirmar que tipos primitivos como System.Int32 eram classes, quando na verdade são estruturas. Mea culpa...
  • a documentação MSDN do Visual Studio Express 2008
  • o livro “C# 3.0 in a Nutshell”, de Joseph e Ben Albahari, publicado pela editora O’Reilly, um dos melhores livros de programação que já tive a oportunidade de ler.

Serge Tahé, maio de 2008

Desde maio de 2008, o C#, naturalmente, evoluiu. No entanto, este documento continua atual para o aprendizado dessa linguagem. Como complemento a este curso, há uma apresentação do ORM (Mapeador Objeto-Relacional) Entity Framework no artigo “Introdução ao ORM Entity Framework 5 Code First” no URL [Introdução prática ao Entity Framework 5 Code First (2012)].

Serge Tahé, outubro de 2013