Introdução ao C# Microsoft.NET (comumente conhecido por.net Framework - em inglês: dotnet) é uma iniciativa da empresa Microsoft, que visa uma plataforma única para desenvolvimento e execução de sistemas e aplicações. Todo e qualquer código gerado para.net, pode ser executado em qualquer dispositivo que possua um framework de tal plataforma.. Visão geral do.net Framework O.Net Framework é um ambiente fortemente tipado para desenvolvimento e execução de aplicações. O.NET Framework gerencia todos os aspectos de execução de um programa. Ele aloca memória para armazenar dados e instruções, gerencia permissões para execução dos programas. O.NET Framework consistem em dois componentes mestres: A Common Language Runtime e a.net Framework Class Library. O CLR (Common Language Runtime) pode ser ainda o ambiente que gerencia a execução do código. Ele fornece os serviços core como compilação de código, alocação de memória, gerenciamento de thread e coleta de lixo. O CTS (Common Type System) força a tipagem de variáveis e garante que o código é executado em um ambiente seguro e também com segurança ao acesso ao código. A biblioteca de classes do.net Framework fornece uma coleção de tipos úteis e reutilizáveis que foram desenvolvidos para interagir com a Common Language Runtime.
Características do C# A Microsoft desenvolveu a linguagem C# em conjunto com a arquitetura.net, sendo assim uma linguagem de programação especialmente desenvolvida para esta plataforma. Todos sabemos que a plataforma.net suporta uma gama de linguagens de programação como C# (claro), VB.NET, J#, C++, Delphi for.net entre outras, o que torna essa arquitetura produtiva e independente de linguagem, ou seja, o desenvolvedor pode escolher, dentre as linguagens disponíveis, a que mais o agrada. Essa liberdade de escolha da linguagem de programação também aumenta a produtividade de um time de desenvolvimento, pois enquanto parte dos desenvolvedores estão construindo a interface gráfica em VB.NET um outro grupo pode estar desenvolvendo as classes de negócio com C#, por exemplo. Depois é só integrar as duas partes do projeto. Você deve estar se perguntando então, se posso usar qualquer uma dessas linguagens citadas acima porque vou escolher logo C#? Bem a resposta não é nenhuma máxima absoluta, pois acredito que linguagem é como um sapato, devemos usar um que nos deixa confortáveis e mais é adequado para ocasião, ou seja, não basta apenas gostarmos da linguagem, precisamos perceber qual a linguagem ou tecnologia mais se encaixa ao nosso projeto ou cliente. Acredito que não há uma linguagem que seja melhor para todo tipo de projeto, até porque, toda linguagem ou tecnologia é criada para um determinado segmento, mesmo que seja um segmento bem amplo, como é o caso da plataforma.net. C# sofre influência de várias linguagens, mais notadamente do Delphi, C++ e Java. A linguagem C# na verdade é a reunião das principais vantagens dessas linguagens, corrigindo seus defeitos e/ou limitações e acrescentando alguns outros recursos, o que faz do C# uma linguagem muito poderosa e atrativa aos desenvolvedores que desejam migrar para a plataforma Microsoft.NET, pois é fácil de assimilar pelos novatos no mundo do desenvolvimento de softwares e proporciona uma baixa curva de aprendizagem para os mais experientes. É comum escutarmos falar que o C# é tão poderosa quanto C++ e tão organizada, flexível e fácil de programar quanto o Delphi. Vejamos então algumas das características do C#, que é nossa linguagem foco nessa coluna: Como já citei antes, C# foi feita a partir do zero para funcionar especialmente na plataforma.net, sem a necessidade de compatibilidade com código já existente; A maior parte das classes do.net Framework foram desenvolvidos em C#; Primeira linguagem "orientada à componentes" da família C/C++; Segue os padrões de POO, onde tudo deriva de um ancestral comum, no caso System.Object, não existem atributos e métodos stand-alone, tudo é declarado dentro do escopo da classe, contudo é possível declarar tipos struct e enum fora do escopo de classes; Fortemente tipada, o que ajuda a evitar erros oriundos de uma manipulação imprópria de tipo e/ou atribuições;
Suporte à COM, COM+ ou outras DLLs escritas por linguagens que geram código não gerenciado; É case-sensitive, ou seja, faz diferenciação entre maiúsculas e minúsculas, por exemplo, rnet é completamente diferente de RNET; Os programas escritos em C# rodam sob um ambiente gerenciável, o que significa que todo o controle de memória é feito pelo.net Framework e não diretamente pelo programador, reduzindo assim falhas na programação enquanto a alocação e liberação de um objeto na memória. IDE's para desenvolver softwares em C# Por ser uma linguagem padronizada, a linguagem C# não se limita a ter apenas um fornecedor de IDE's. Várias empresas já estão distribuindo suas IDE's para C#, algumas de forma comercial, outras como OpenSouce ou simplesmente gratuitas. É possível inclusive desenvolver aplicações em C# apenas usando o bloco de notas e as ferramentas de linha de comando do Microsoft.NET Framework SDK v1.1. Algumas das mais conhecidas são: Microsoft Visual Studio.NET 2003; Borland Delphi 2005; ASP.NET WebMatrix; #develop (SharpDevelop); Eclipse for C#. Nosso primeiro programa em C# Agora que já sabemos um pouco sobre a linguagem Vamos então fazer nosso primeiro programa em C#, o famoso "Hello World". Logo após comentaremos seu código. using System; class HelloWorld{ public static void Main(string[] args){ Console.WriteLine("Hello World! Bem vindo ao RNET"); Console.ReadLine(); } } Comentando o código do nosso primeiro programa em C#. Na primeira linha temos o carregamento do namespace System que contém a classe Console que estamos utilizando no nosso programa. Em C# usamos a diretiva using seguida do nome do pacote que queremos utilizar. NameSpace no.net tem a função de organizar as classes, para que não se misturem com outras classes de mesmo nome. São equivalentes aos pacotes do Java. Logo a seguir temos a declaração da nossa classe, neste caso HelloWorld. Se você ainda não está familiarizado com o conceito de classes não se preocupe, falaremos sobre esse assunto nas próximas colunas, onde discutiremos POO, UML e Engenharia
de Software. Por enquanto vamos nos limitar a entender a estrutura do código e que, de forma sucinta, classes são tipos de dados abstratos usados para modelar e representar objetos do mundo real em nossas aplicações. Neste nosso exemplo só temos um método, o Main(). Todo programa C# deve ter uma classe que implemente o método Main(), que deve ser declarado com o modificador estático (static), que sinaliza que este é um método que opera sobre a classe e não sobre uma instância dessa classe (objeto). Sendo então, o método Main() o ponto de entrada de execução do programa. O método Main() pode ter algumas variantes com a seguir: Ex. 01: Retornando um vazio Ex. 02: Retornando um inteiro Ex. 03: Recebe argumentos por meio de um array de string e retornando um vazio public static void Main(string[] args) Ex. 04: Recebe argumentos por meio de um array de string e retornando um inteiro public static int Main(string[] args) Conclusão Neste nosso primeiro contato com C# percebemos que é uma linguagem promissora e que oferece uma séria de benefícios para o desenvolvimento na Plataforma.NET, seja para aplicações Windows Forms, Class Library, ASP.NET Web Application, Web Services, Smart Application entra outras. Não percam as próximas colunas, onde estaremos falando um pouco mais sobre essa linguagem do.net. Bibliografia e referências Livro C# E.NET - Guia do Desenvolvedor - 2001 - Editora Campus Edwin Lima, Eugênio Reis Artigo C#: A nova linguagem da arquitetura.net - Por Mauro Sant'Anna http://www.mas.com.br/artigos/csharp_nova%20ling.htm
Outras referências MSDN Brasil http://www.microsoft.com/brasil/msdn/ http://www.microsoft.com/brasil/msdn/tecnologias/visualc/default.mspx