1. Introdução
O PDF deste documento está disponível em inglês |ICI|.
Os exemplos deste documento estão disponíveis em |ICI|.
O C# é uma linguagem recente. Tem estado disponível em sucessivas versões beta desde 2000, antes de ser lançado oficialmente em fevereiro de 2002, em simultâneo com a plataforma .NET 1.0 da Microsoft, à qual está ligado. O C# só pode ser executado neste ambiente de execução. Proporciona aos programas que nele são executados uma vasta gama 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, existem duas diferenças:
- O Java tem vindo a ser executado em vários sistemas operativos (Windows, Unix, Macintosh) desde a sua criação. Em 2002, a plataforma .NET só funcionava em máquinas Windows. Nos últimos anos, o projeto Mono [http://www.mono-project.com] tornou possível executar a plataforma .NET em máquinas com 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 pode executar programas escritos em diferentes linguagens. Tudo o que é necessário é que o compilador seja capaz de produzir código IL (Intermediate Language), que é então executado pela máquina virtual .NET. Todas as classes .NET estão disponíveis para linguagens .NET compatíveis, o que tende a apagar as diferenças entre linguagens, uma vez que os programas fazem uso extensivo dessas classes. A escolha de uma linguagem .NET torna-se uma questão de gosto, em vez 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. Ao aprender a linguagem, era possível passar de um ambiente C# para um ambiente Java sem se sentir deslocado. Havia até ferramentas para converter código- e de uma linguagem para a outra. Desde então, as coisas evoluíram. Cada linguagem e plataforma de desenvolvimento tem agora as suas especificidades. Já não é tão fácil transferir competências de um domínio para outro.
O C# 3.0 e o framework .NET 3.5 trazem muitas novas funcionalidades. Provavelmente a mais importante é o LINQ (Language INtegrated Query), que permite que sequências de objetos sejam consultadas de forma uniforme, semelhante à linguagem SQL, a partir de estruturas na memória, como matrizes e listas, bases de dados (apenas SQL Server por enquanto – fevereiro de 2008) ou ficheiros XML.
Este documento não é um curso exaustivo. Por exemplo, o LINQ não é abordado. Destina-se a pessoas que já conhecem programação e querem descobrir os conceitos básicos 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:
- Programação Profissional em C#, Edições Wrox
- C# e .NET, Gérard Leblanc, Edições Eyrolles
Na altura, achei que ambos os livros eram excelentes. Desde então, Gérard Leblanc publicou versões atualizadas, incluindo as seguintes:
- C# e .NET 2005, Gérard Leblanc, Edições Eyrolles
Para a revisão de 2008, utilizei as seguintes fontes:
- o documento original de 2002. Este documento, uma cópia/colagem do meu curso de Java, continha tanto erros tipográficos como erros mais graves, tais como afirmar que tipos primitivos como System.Int32 eram classes, quando na verdade são estruturas. Mea culpa...
- documentação do Visual Studio Express 2008 MSDN
- 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á li.
Os códigos-fonte dos exemplos deste documento estão disponíveis em [http://tahe.developpez.com/dotnet/csharp/].
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. Para além deste curso, encontrará uma apresentação do ORM (Object Relational Mapper) Entity Framework no artigo «Introdução ao ORM Entity Framework 5 Code First» na URL [https://stahe.github.io/en-ef5cf-oct-2012/].
Serge Tahé, outubro de 2013