Marcelo Fey - CSharp
Warning: include(..//includes/menu.php): failed to open stream: No such file or directory in /home/marcelo/public_html/site_bootstrap/Programando/CSharp/index.php on line 20

Warning: include(..//includes/menu.php): failed to open stream: No such file or directory in /home/marcelo/public_html/site_bootstrap/Programando/CSharp/index.php on line 20

Warning: include(): Failed opening '..//includes/menu.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/marcelo/public_html/site_bootstrap/Programando/CSharp/index.php on line 20



Histórico

C# e .NET, a plataforma oficial da Microsoft, e os princípios da programação orientada a objetos. No final da década de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação para resolver muitos problemas diferentes. Toda vez que um programador precisava migrar para uma nova linguagem, era necessário aprender tanto a nova linguagem quanto suas bibliotecas e conceitos. Para solucionar esses problemas, a Microsoft recorreu à linguagem Java.
O Java agradou os engenheiros da Microsoft pois com ela podíamos construir programas que eram independentes do ambiente de execução, além de possuir diversas bibliotecas com soluções prontas para diversos problemas. Para lançar produtos baseados no Java, a Microsoft assinou um acordo de licenciamento com a Sun para utilizar o Java em ambiente Windows.
Porém, a linguagem Java possuía um grave problema: ela não se comunicava bem com o as bibliotecas de código nativo (código de máquina) que já existiam. Para resolver isso, a Microsoft decidiu criar a sua própria implementação do Java chamado J++ que possuía extensões proprietárias que resolviam o problema de comunicação com o código nativo existente. Para o desenvolvimento dessa nova implementação do Java, a Microsoft contratou um engenheiro chamado Anders Hejlsberg, um dos principais nomes por trás do Delphi.
O J++ era uma versão da linguagem Java que só podia ser executada no ambiente Microsoft. Seu código não podia ser executado em mais nenhum ambiente Java, o que violava o licenciamento feito com a Sun e, por isso, a Microsoft foi processada. Uma das mais conhecidas batalhas judiciais da época.
Sem o J++, a Microsoft foi obrigada a repensar sua estratégia sobre como lidar com as diferentes linguagens e tecnologias utilizadas internamente. A empresa começou a trabalhar em um nova plataforma que seria a base de todas as suas soluções, que posteriormente foi chamada de .Net. Esse novo ambiente de desenvolvimento da Microsoft foi desde o início projetado para trabalhar com diversas linguagens de programação, assim diversas linguagens diferentes compartilhariam o mesmo conjunto de bibliotecas. Com isso, para um programador migrar de uma linguagem para outra ele precisaria apenas aprender a linguagem sem se preocupar com as bibliotecas e APIs.
Além de uma plataforma a Microsoft também precisava de uma linguagem de programação. Um novo projeto de linguagem de programação foi iniciado, o projeto COOL (C-like Object Oriented Language). Anders Hejlsberg foi escolhido como engenheiro chefe desse novo projeto. COOL teve seu design baseado em diversas outras linguagens do mercado como Java, C, C++, Smalltalk, Delphi e VB. A ideia era estudar os problemas existentes e incorporar soluções.
Em 2002, o projeto COOL foi lançado como linguagem C# 1.0 junto com o ambiente .Net 1.0. Atualmente a linguagem C# está em sua versão 5.0 e o .Net na versão 4.5.1, tendo evoluído com expressiva velocidade, adotando novidades na sua sintaxe que a diferenciaram bastante do Java e outras concorrentes.

Evolução


Resuno

Em Junho de 2000 a Microsoft anunciou a Plataforma .NET e uma nova linguagem de programação chamada C# (se lê “C Sharp”). C# é uma linguagem fortemente tipada e orientada a objetos projetada para oferecer a melhor combinação de simplicidade, expressividade e performance.

Introdução

A linguagem C# aproveita conceitos de muitas outras linguagens, mas especialmente de C++ e Java. A Plataforma .NET é centrada ao redor de uma Common Language Runtime (CLR, conceito similar ao da Java Virtual Machine, JVM) e um conjunto de bibliotecas que pode ser empregado em uma grande variedade de linguagens, as quais podem trabalhar juntas, já que todas são compiladas para uma mesma linguagem intermediária, a Microsoft Internediate Language (MSIL). Assim, é possível desenvolver aplicativos mesclando C# e Visual Basic ou qualquer outra linguagem suportada.

A sintaxe utilizada pelo C# é relativamente fácil, o que diminui o tempo de aprendizado. Todos os programas desenvolvidos devem ser compilados, gerando um arquivo com a extensão DLL ou EXE. Isso torna a execução dos programas mais rápida se comparados com as linguagens de script (VBScript , JavaScript) que atualmente utilizamos na internet.

Máquina Virtual

O C# utiliza o conceito de máquina virtual. Entre o sistema operacional e a aplicação existe uma camada extra responsável por "traduzir" — mas não apenas isso — o que sua aplicação deseja fazer para as respectivas chamadas do sistema operacional onde ela está rodando no momento.
Repare que uma máquina virtual é um conceito bem mais amplo que o de um interpretador. Como o próprio nome diz, uma máquina virtual é como um "computador de mentira": tem tudo que um computador tem. Em outras palavras, ela é responsável por gerenciar memória, threads, a pilha de execução etc.
Sua aplicação roda sem nenhum envolvimento com o sistema operacional! Sempre conversando apenas com a máquina virtual do C#, a Common Language Runtime (CLR). A CLR é o ambiente de execução para todas as linguagens da plataforma .Net, não apenas para o C#. Certamente isso não foi uma revolução. O Java trouxe esse conceito para o mercado e já havia muitas linguagens com esses recursos, apesar de que eram encontradas mais no meio acadêmico.
CLI Common Language Infrastructure
A infraestrutura necessária para executar os códigos escritos para a plataforma .Net é chamada de CLI (Common Language Infrastructure). A CLI engloba a máquina virtual do C# (CLR), a linguagem intermediária (CIL) e os tipos base utilizados nos programas.


Características do C#




Ambiente de desenvolvimento

O ambiente de desenvolvimento do C#, Microsoft Visual Studio, implementa o conceito de RAD (Rapid Application Development), oferecendo ferramentas para a construção rápida de aplicativos, ao mesmo tempo que oferece um excelente designer de telas e debugger integrado.
Entre os diversos recursos do ambiente podemos destacar:


Criando uma Aplicação

No ambiente Visual Studio tomamos por base o conceito de Projetos. Cada Projeto pode ser baseado em qualquer um dos tipos de aplicações disponíveis, como por exemplo: WindowsFormsAplication, ConsoleAplication, ClassLibrary e várias outras.
Nosso primeiro programa em C# é extremamente simples. O programa deve exibir na tela a mensagem “Olá Mundo Fey !”. Para começar, clique em File > New Project... e selecione o tipo Console Application.
Na mesma caixa de diálogos, altere o nome sugerido para “OlaMundoFey” e clique em OK.
A seguir, use o editor de textos para alterar o código do programa criado automaticamente para você e adicione as linhas mostradas em negrito abaixo:
A seguir, use o editor de textos para alterar o código do programa criado automaticamente para você e adicione as linhas mostradas em negrito abaixo:

Uma vez completada a digitação, clique em File > Save All (ou pressione Ctrl-Shift-S) para salvar o seu projeto e todos os arquivos criados. Depois, para compilar o programa, clique em Build > Build Solution (ou pressione F6). Por fim, para executá-lo, clique em Debug > Start Without Debugging (ou pressione Ctrl-F5). Pronto, você verá a mensagem escrita na tela. Pressione qualquer tecla para concluir o programa.

Médoto MAIN

Um programa C# deve conter um método especial chamado Main.
Este é o primeiro método chamado quando se executa uma aplicação em C#, e é a partir dele que você criará objetos e executará outros métodos.

Entrada de dados digitados para nosso programa.

A entrada e saída de um programa C# é realizado pela biblioteca de classes do .NET Framework.
Entre as classes presentes nesta biblioteca podemos citar a classe System.Console, que pode ser usada para escrever na tela e obter dados do teclado.
No exemplo abaixo fazemos a inicialização de uma variário NOME que ganho o que o usuário digitar, e após clicado no ENTER, o Sistema mostra o que foi digitado.
string nome = System.Console.ReadLine();
System.Console.WriteLine("Nome = " + nome);


Variáveis

As variáveis são utilizadas para armazenar informações na memória do computador enquanto o programa C# esta sendo executado.
As informações contidas nas variáveis podem ser alteradas durante a execução do programa.
As variáveis devem possuir um nome para que possamos nos referenciar a elas mais tarde.
Ao nomear uma variável devemos observar as seguintes restrições:
• O nome deve começar com uma letra ou _ .
• Não são permitidos espaços, pontos ou outros caracteres de pontuação, mas podemos usar números.
• O nome não pode ser uma palavra reservada do C#.
• O nome deve ser único dentro do contexto atual.
Além do nome, devemos também definir o tipo de dados e o escopo (local onde a variável estará acessível).
O escopo é definido pelos modificadores de acesso (veremos mais sobre isso mais tarde)

Para declarar uma variável, primeiro você precisa indicar o seu tipo e depois o seu nome


Tipos de dados

Como toda a linguagem de programação o C# apresenta seu grupo de tipos de dados básico. Esses tipos são conhecidos como tipos primitivos ou fundamentais por serem suportados diretamente pelo compilador, e serão utilizados durante a codificação na definição de variáveis, parâmetros, declarações e até mesmo em comparações. Em C# todo o tipo de dados possui um correspondente na CLR (Common Language Runtime), por exemplo: int em C# refere-se a System.Int32 na plataforma .NET.

Conversão de tipos de dados

Uma tarefa muito comum no mundo da programação é a utilização de conversões. Por exemplo: podemos converter um inteiro para um longo. Quando o usuário digita um número qualquer numa TextBox, é necessária uma conversão de valores antes que um cálculo possa ser realizado.



Arrays

Array é uma coleção de elementos armazenados em seqüência, acessíveis através de um índice numérico. No C#, o primeiro elemento de um array é o de índice zero (0). É importante notar que podemos criar arrays com uma ou mais dimensões. Para definir um array você seguirá esta estrutura:
<tipo-de-dados&rt; [] <nome-do-array&rt; = new <tipo-de-dados&rt;[<tamanho&rt;];

No entanto, para utilizá-lo em outras partes do código, precisamos inicializá-lo. Por exemplo, para inicializarmos o array anterior com 10 elementos:
arr = new string[10];

Para armazenar informações num array use o índice para indicar o elemento desejado:
arr[0] = “Anna”; 
arr[1] = “Marcelo”;

Podemos também omitir o número de elementos:
   int [] numeros = { 1, 2, 3, 4 };
string [] nomes   = { "A", "B", "C", "D" };

Também podemos usar os array com mais dimensão dessa fora:
   int [,] numeros = new    int [3, 2] { {1, 2}, {3, 4}, {5, 6} };
string [,] nomes   = new string [2, 2] { {“AA”, “AB”}, {“BA”, “BB”} };


Expressões

Um programa não será muito útil se não pudermos usá-lo para efetuar cálculos ou outro tipo de manipulações de dados. É para isso que surgem os operadores. Conforme veremos a seguir, existem diferentes tipos de operadores, dependendo do tipo de operação que desejamos realizar.


Estruturas de controle

IF ( se , se não ) A instrução if pode ser usada para seletivamente executar trechos de código. Você pode executar um códgo apenas se uma dada condição for verdadeira ou falsa. Veja o exemplo:
if (<condição>)  {
    // Código para quando a condição for verdadeira. 
}
else {
    // Caso a condição for falsa 
}
SWITCH ( chaveia ) A instrução if pode ser usada para seletivamente executar trechos de código. Você pode executar um códgo apenas se uma dada condição for verdadeira ou falsa. Veja o exemplo:
switch (<argumento-de-teste>) {
    case <expressão==1>:
        // Código para quando argumento-de-teste = expressão-1. break;
    case <expressão==2>:
        // Código para quando argumento-de-teste = expressão-2. break;
    case <expressão==3>:
        // Código para quando argumento-de-teste = expressão-3. break;
        ...
    default:
        // Código para quando nenhum teste foi satisfeito.
    break;
}
FOR ( para ) Loops contadores executam uma tarefa um determinado número de vezes. A instrução for pode ser caracterizada como sendo loop contador, pois conhecemos os extremos que devem ser percorridos pelo bloco for.
for (<inicialização>; <teste>; <incremento>) {
    // Código a ser executado enquanto o teste for
    // verdadeiro. 
}
FOREACH ( para para coleções )Os loops de enumeração permitem percorrer itens de arrays e coleções. A sintaxe da instrução foreach é:
foreach (<tipo> <elemento> in <coleção>) {
   // Código a ser executado uma vez para cada elemento da
   // coleção. 
}
DO WHILE (enquanto) A instrução while executa os comandos dentro do loop enquanto a condição que lhe serve como parâmetro for verdadeira.
while (<condição>) {
    // condição for verdadeira.
}
Acresentado o DO o loop execupa a primeira vez mesmo se a condição não for verdadeira.
do {
    // condição for verdadeira.
}
while (<condição>);




Warning: include(..//includes/footer.php): failed to open stream: No such file or directory in /home/marcelo/public_html/site_bootstrap/Programando/CSharp/index.php on line 346

Warning: include(..//includes/footer.php): failed to open stream: No such file or directory in /home/marcelo/public_html/site_bootstrap/Programando/CSharp/index.php on line 346

Warning: include(): Failed opening '..//includes/footer.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/marcelo/public_html/site_bootstrap/Programando/CSharp/index.php on line 346