1. Introdução
O PDF deste documento está disponível |AQUI|.
Os exemplos deste documento estão disponíveis |AQUI|.
O C# é uma linguagem recente. Esteve disponível em versões beta sucessivas desde o ano 2000, antes de ser oficialmente lançado em fevereiro de 2002, em simultâneo com a plataforma .NET 1.0 da Microsoft, à qual está associado. O C# só pode funcionar com este ambiente de execução. Este disponibiliza aos programas que nele são executados um conjunto muito vasto de classes. Numa primeira aproximação, pode dizer-se que a plataforma .NET é um ambiente de execução análogo a uma máquina virtual Java. No entanto, é possível destacar duas diferenças:
- O Java executa-se em diferentes OS (Windows, Unix, Macintosh) desde o seu início. Em 2002, a plataforma .NET só se executava em máquinas Windows. Há alguns anos que o projeto Mono [http://www.mono-project.com] permite utilizar a plataforma .NET em sistemas operativos como o Unix e o Linux. A versão atual do Mono (fevereiro de 2008) suporta o .NET 1.1 e elementos do .NET 2.0.
- A plataforma .NET permite a execução de programas escritos em diferentes linguagens. Basta que o compilador desses programas saiba produzir código IL (Intermediate Language), código executado pela máquina virtual .NET. Todas as classes de .NET estão disponíveis para as linguagens compatíveis com .NET, o que tende a atenuar as diferenças entre as linguagens, na medida em que os programas utilizam amplamente essas classes. A escolha de uma linguagem .NET torna-se mais uma questão de preferência do que de desempenho.
Em 2002, o C# utilizava a plataforma .NET 1.0. Na altura, o C# era, em grande parte, uma «cópia» do Java e o .NET uma biblioteca de classes muito semelhante à da plataforma de desenvolvimento Java. No âmbito da aprendizagem da linguagem, passava-se de um ambiente C# para um ambiente Java sem se sentir realmente desorientado. Havia até ferramentas de conversão de 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 as suas especificidades. Já não é tão fácil transferir as 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 forma uniforme, semelhante à da linguagem SQL, sequências de objetos provenientes de estruturas em memória, tais como tabelas e listas, de bases de dados (SQL Server, apenas por enquanto — fevereiro de 2008) ou de ficheiros XML.
Este documento não é um curso exaustivo. Por exemplo, o LINQ não é aqui abordado. Destina-se a pessoas que já têm conhecimentos de programação e que pretendem descobrir os fundamentos do C#. Trata-se de uma revisão do documento original publicado em 2002.
Vários livros ajudaram-me a escrever este curso:
Para a versão de 2002:
- Professional C# programming, Edições Wrox
- C# e .NET, Gérard Leblanc, Edições Eyrolles
Na altura, considerei estas 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, Edições Eyrolles
Para a revisão de 2008, utilizei as seguintes fontes:
- o documento inicial de 2002. Este documento, resultante de um «copiar/colar» do meu curso de Java, continha tanto erros tipográficos como erros mais graves, tais como afirmar que os 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 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# evoluiu, naturalmente. No entanto, este documento continua a ser relevante para a aprendizagem desta linguagem. Como complemento a este curso, encontrará 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 ao Entity Framework 5 Code First através de exemplos (2012)].
Serge Tahé, outubro de 2013