Capítulo 1. Introdução à Programação

Neste capítulo

Neste capítulo, vamos dar uma olhada na terminologia de programação básica e vamos escrever nosso primeiro programa C #. Vamos nos familiarizar com a programação – o que significa e sua conexão com computadores e linguagens de programação.

Resumidamente, vamos analisar as diferentes fases de desenvolvimento de software.

Vamos introduzir a linguagem C #, a plataforma .NET e as diferentes tecnologias Microsoft utilizadas no desenvolvimento de software. Vamos examinar o que as ferramentas que precisamos para programar em C #. Nós vamos usar a linguagem C # para escrever nosso primeiro programa de computador, compilar e executá-lo a partir da linha de comando, bem como a partir de ambiente de desenvolvimento integrado Microsoft Visual Studio. Vamos rever o MSDN Library – a documentação do .NET Framework. Ele vai nos ajudar com a nossa exploração dos recursos da plataforma e da linguagem.

Conteúdo

Vídeo

Apresentação

Mapas mentais

 

O que significa “Para programar”?

Hoje em dia os computadores se tornaram insubstituível. Nós usá-los para resolver problemas complexos no local de trabalho, procure instruções de direção, se divertir e se comunicar. Eles têm inúmeras aplicações no mundo dos negócios, a indústria do entretenimento, telecomunicações e finanças. Não é um exagero dizer que os computadores construir o sistema neural de nossa sociedade contemporânea e é difícil imaginar sua existência sem eles.

Apesar do fato de que os computadores são tão difundida, poucas pessoas sabem como eles realmente funcionam. Na realidade, não são os computadores, mas os programas (software), que funcionam com eles, essa matéria. É o software que faz os computadores valiosos para o usuário final, permitindo a muitos tipos diferentes de serviços que mudam nossas vidas.

Como fazer Informações Computadores processo?

A fim de entender o que significa para programar, podemos aproximadamente comparar um computador e seu sistema operacional para uma grande fábrica com todas as suas oficinas, armazéns e transporte. Esta comparação grosseira torna mais fácil de imaginar o nível de complexidade presente em um computador contemporânea. Há muitos processos em execução em um computador, e eles representam as oficinas e linhas de produção em uma fábrica. O disco rígido, juntamente com os arquivos sobre ele, ea memória operacional (RAM) representam os armazéns, e os diferentes protocolos são os sistemas de transporte, que fornecem a entrada e saída de informações.

Os diferentes tipos de produtos feitos em uma fábrica vêm de diferentes oficinas. Eles utilizam matérias-primas provenientes dos armazéns e armazenar as mercadorias concluída em-los. As matérias-primas são transportadas para os armazéns pelos fornecedores e o produto completado é transportado a partir dos depósitos para os pontos de venda. Para realizar isto, são usados diferentes tipos de transporte. As matérias-primas entrar na fábrica, passam por diferentes estágios de processamento e saem da fábrica transformada em produtos. Cada fábrica converte as matérias-primas em um produto pronto a consumir.

O computador é uma máquina de processamento de informação. Ao contrário da fábrica em nossa comparação, para o computador, a matéria-prima e do produto são a mesma coisa – informação. Na maioria dos casos, a informação de entrada é feita a partir de qualquer dos depósitos (ficheiros ou RAM), para onde foi anteriormente transportados. Em seguida, é processada por um ou mais processos e vem para fora modificado como um novo produto. Aplicações baseadas na web servem como um excelente exemplo. Eles usam HTTP para transferir matérias-primas e produtos, e processamento de informações geralmente tem a ver com a extração de conteúdo a partir de um banco de dados e prepará-la para a visualização em forma de HTML.

Gerenciando o computador

Todo o processo de fabricação de produtos em uma fábrica tem muitos níveis de gestão. As máquinas separadas e linhas de montagem têm operadores, as oficinas têm gestores ea fábrica como um todo é gerido por executivos gerais. Cada um deles controla processos em um nível diferente. Os operadores de máquinas servem no nível mais baixo – eles controlam as máquinas com botões e alavancas. O próximo nível é reservado para os gerentes da oficina. E no mais alto nível, os executivos gerais gerir os diferentes aspectos dos processos de produção na fábrica. Eles fazem isso através da emissão de ordens.

É o mesmo com computadores e software – eles têm muitos níveis de gestão e controlo. O nível mais baixo é gerida pelo processador e seus registros (Isso é feito por meio de programas de máquina em um nível baixo) -, podemos compará-lo a controlar as máquinas nas oficinas. As diferentes responsabilidades do sistema operacional (Windows 7, por exemplo), como o sistema de arquivos, dispositivos periféricos, os usuários e protocolos de comunicação, são controlados a um nível superior -, podemos compará-lo com a gestão dos diferentes workshops e departamentos da fábrica . No nível mais alto, podemos encontrar o software de aplicação. Corre-se todo um conjunto de processos, que requerem uma enorme quantidade de operações do processador. Este é o nível de os executivos gerais, que dirigem todo o fábrica, a fim de maximizar a utilização dos recursos e a produzir resultados de qualidade.

A essência da programação

A essência da programação é controlar o trabalho do computador em todos os níveis. Isso é feito com a ajuda de “ordens” e “comandos” do programador, também conhecidas como instruções de programação. Para “Programa” significa para organizar o trabalho do computador através de sequências de instruções. Estes comandos (instruções) são dadas na forma escrita e são seguidos implicitamente pelo computador (respectivamente pelo sistema operacional, CPU e os dispositivos periféricos).

Para “Programa” significa escrever sequências de instruções, a fim de organizar o trabalho do computador para realizar alguma coisa. Estas sequências de instruções são chamados de “programas de computador” ou “scripts”.

A sequência de passos para alcançar completa algum trabalho ou obter algum resultado é chamado um algoritmo. Esta é como a programação está relacionada com algoritmos. Programação envolve descrever o que você deseja que o computador para fazer por uma sequência de passos, por algoritmos.

Os programadores são as pessoas que criam essas instruções, que controlam computadores. Estas instruções são chamados programas. Existem numerosos programas, e eles são criados usando diferentes tipos de linguagens de programação. Cada linguagem é orientada no sentido de controlar o computador em um nível diferente. Existem línguas orientados para o nível de máquina (o menor) – Assembler por exemplo. Outros são mais úteis no nível do sistema (que interage com o sistema de funcionamento), como C. Há também linguagens de alto nível usados para criar programas de aplicação. Esses idiomas incluem C #, Java, C ++, PHP, Visual Basic, Python, Ruby, Perl, JavaScript e outros.

Neste livro, vamos dar uma olhada na linguagem de programação C # – uma moderna linguagem de alto nível. Quando um programador usa C #, ele dá os comandos de alto nível, como a partir da posição de um executivo geral em uma fábrica. As instruções dadas na forma de programas escritos em C # pode acessar e controlar quase todos os recursos do computador directamente ou através do sistema operacional. Antes de aprender a escrever programas simples C #, vamos dar uma boa olhada nas diferentes fases de desenvolvimento de software, porque a programação, apesar de ser a etapa mais importante, não é o único.

Estágios no desenvolvimento de software

Escrever software pode ser uma tarefa muito complexa e demorada, envolvendo toda uma equipe de engenheiros de software e outros especialistas. Como resultado, muitos métodos e práticas, que tornam a vida dos programadores mais fáceis, têm surgido. Todos eles têm em comum é que o desenvolvimento de cada produto de software passa por várias fases distintas:

  • Reunindo os requisitos para o produto e criando uma tarefa;
  • Planejar e preparar a arquitetura e design;
  • Implementação (inclui a escrita de código do programa);
  • Ensaios de produtos (de teste);
  • Implantação e exploração;

Implementação, testes, implantação e suporte são sobretudo realizada utilizando programação.

Reunindo os Requisitos

No início, somente a idéia de um determinado produto existe. Ele inclui uma lista de exigências, que definem ações por parte do utilizador eo computador. No caso geral, essas ações já fazem existente actividades mais fácil – cálculo dos salários, calculando trajetórias balísticas ou procurando o caminho mais curto no Google Maps são alguns exemplos. Em muitos casos, o software implementa uma funcionalidade anteriormente inexistente, tais como a automatização de uma certa actividade.

Os requisitos para o produto são geralmente definidas na forma de documentação, escrita em Inglês ou qualquer outra língua. Não há nenhuma programação feito nesta fase. Os requisitos são definidos por especialistas, que estão familiarizados com os problemas em um determinado campo. Eles também podem escrevê-los de tal maneira que eles são fáceis de compreender pelos programadores. No caso geral, esses especialistas não está programando especialistas, e eles são chamados analistas de negócios.

Planejamento e preparação do Architecture and Design

Depois que todos os requisitos foram reunidos vem a fase de planejamento. Nesta fase, um plano técnico para a implementação do projeto é criado, descrevendo as plataformas, tecnologias e a arquitetura inicial (desenho) do programa. Esta etapa inclui uma boa quantidade de trabalho criativo, que é feito por engenheiros de software com muita experiência. Eles são às vezes chamados arquitetos de software. De acordo com os requisitos, são escolhidos de:

  • O tipo de aplicação – por exemplo de aplicação console, aplicativo de desktop (GUI, Graphical User aplicativo Interface), aplicação cliente-servidor, aplicativo Web Rich Internet Application (RIA), aplicativos móveis, a aplicação peer-to-peer ou outro;
  • A arquitetura do software – por exemplo, camada única, camada dupla, tripla camada, multi-camada ou arquitetura SOA;
  • A linguagem de programação mais adequado para a aplicação – por exemplo, C #, Java, PHP, Python, Ruby, JavaScript ou C ++, ou uma combinação de diferentes línguas;
  • As tecnologias que serão utilizadas: plataforma (Microsoft .NET, Java EE, lâmpada ou outro), servidor de banco de dados (Oracle, SQL Server, MySQL, banco de dados NoSQL ou de outra), tecnologias para a interface do usuário (Flash, JavaServer Faces, Eclipse RCP , ASP.NET, Windows Forms, Silverlight, WPF ou de outra), tecnologias de acesso a dados (por exemplo, Hibernate, JPA ou ADO.NET Entity Framework), tecnologias de comunicação (SQL Server Reporting Services, Jasper Reports ou de outra) e muitas outras combinações de tecnologias que serão utilizados para a implementação das várias partes do sistema de software.
  • As estruturas de desenvolvimento que irá simplificar o desenvolvimento, por exemplo, ASP.NET MVC (para .NET), Knockout.js (para JavaScript), Rails (Ruby), Django (para Python) e muitos outros.
  • O número e as habilidades das pessoas que farão parte da equipe de desenvolvimento (projetos grandes e graves são feitas por equipes grandes e experientes de desenvolvedores);
  • O plano de desenvolvimento – que separa a funcionalidade em etapas, recursos e prazos para cada etapa.
  • Outros (tamanho da equipe, localidade da equipe, métodos de comunicação etc.).

Embora existam muitas regras que facilitam a correta análise e planejamento, uma boa quantidade de intuição e perspicácia é necessária nesta fase. Esta etapa predetermina o maior avanço do processo de desenvolvimento. Não há programação feita nesta fase, apenas a preparação.

Implementação

O palco, uma conexão mais estreita com a programação, é a fase de implementação. Nesta fase, o programa (aplicativo) é implementado (escrito) de acordo com a tarefa dada, design e arquitetura. Programmers participar, escrevendo o código do programa (fonte). As outras fases pode ser curto ou completamente ignorado ao criar um projeto pequeno, mas a implementação apresenta sempre; caso contrário, o processo não é o desenvolvimento de software. Este livro é dedicado principalmente para descrever as habilidades usadas durante a implementação – criar a mentalidade de um programador e construção do conhecimento para usar todos os recursos oferecidos pela linguagem C # ea plataforma .NET, a fim de criar aplicações de software.

Ensaio do produto

O teste dos produtos é uma fase muito importante de desenvolvimento de software. Seu objetivo é ter certeza de que todos os requisitos sejam rigorosamente seguidas e coberto. Este processo pode ser implementado manualmente, mas a melhor maneira de fazer isso é por meio de testes automatizados. Estes testes são pequenos programas, que automatizam os processos, tanto quanto possível. Há partes do funcionalidade que são muito difíceis de automatizar, razão pela qual os ensaios de produtos incluem automatizado, bem como os procedimentos manuais para garantir a qualidade do código.

O processo de teste (ensaios) é implementado por engenheiros de garantia de qualidade (QAS). Eles trabalham em estreita colaboração com os programadores para encontrar e corrigir erros (bugs) no software. Nesta fase, é prioridade para encontrar defeitos no código e quase nenhum código novo é escrito.

Muitos defeitos e erros são normalmente encontrados durante a fase de testes e o programa é enviado de volta para a fase de implantação. Estas duas etapas estão intimamente ligadas e é comum para um produto de software para alternar entre eles muitas vezes antes que abrange todos os requisitos e está pronto para as fases de implantação e uso.

Implantação e Operação

A implantação é o processo que coloca um determinado produto de software para a exploração. Se o produto é complexo e serve muitas pessoas, este processo pode ser o mais lento e mais caro. Para programas menores este é um processo relativamente rápido e indolor. No caso mais comum, um programa especial, chamado instalador, é desenvolvido. Ele garante a instalação rápida e fácil do produto. Se o produto é para ser implantado em uma grande empresa com dezenas de milhares de cópias, software de suporte adicional, foi desenvolvida exclusivamente para a implantação. Após a implantação for concluída com êxito, o produto está pronto para a operação. O próximo passo é treinar os funcionários para usá-lo.

Um exemplo seria a implantação de uma nova versão do Microsoft Windows na administração do Estado. Isso inclui a instalação e configuração do software, bem como treinamento dos funcionários como usá-lo.

A implantação geralmente é feito pela equipe que trabalhou no software ou por especialistas em implantação treinados. Eles podem ser administradores de sistemas, administradores de banco de dados (DBA), engenheiros de sistemas, consultores especializados e outros. Nesta fase, quase nenhum novo código é escrito, mas o código existente é refinado e configurado até cobrir todos os requisitos específicos para uma implantação bem-sucedida.

Apoio

Durante o processo de exploração, é inevitável que os problemas irão aparecer. Eles podem ser causados por muitos fatores – erros no software, uso incorreto ou configuração com defeito, mas a maioria dos problemas ocorrem quando os usuários alterem suas exigências. Como resultado destes problemas, o software perde suas habilidades para resolver a tarefa de negócios foi criado para. Isso requer envolvimento adicional pelos desenvolvedores e os especialistas de suporte. O processo de suporte geralmente continua durante todo o ciclo de vida do produto de software, independentemente de quão bom ele é.

O apoio é realizado pela equipe de desenvolvimento e por especialistas de suporte especialmente treinados. Dependendo das alterações feitas, muitas pessoas diferentes podem estar envolvidos no processo – analistas de negócios, arquitetos, programadores, engenheiros de QA, administradores e outros.

Por exemplo, se vamos dar uma olhada em um programa de software que calcula os salários, ele vai precisar ser atualizado cada vez que a legislação fiscal, que diz respeito ao processo de contabilidade com serviço, é alterado. A intervenção da equipe de apoio será necessário se, por exemplo, o hardware do usuário final é alterado porque o software terá de ser instalado e configurado novamente.

Documentação

A fase de documentação não é uma fase separada, mas acompanha todas as outras fases. A documentação é uma parte importante do desenvolvimento de software e tem o objetivo de transmitir conhecimento entre os diferentes participantes no desenvolvimento e suporte de um produto de software. A informação é passada ao longo entre as diferentes fases, bem como dentro de um único estágio. A documentação de desenvolvimento é geralmente criado pelos desenvolvedores (arquitetos, programadores, engenheiros de controle de qualidade e outros) e representa uma combinação de documentos.

Desenvolvimento de software é mais do que Coding

Como vimos, o desenvolvimento de software é muito mais do que apenas a codificação (escrever código), e inclui uma série de outros processos, tais como: análise de requisitos, design, planejamento, teste e suporte, que exigem uma grande variedade de especialistas chamados engenheiros de software. A programação é apenas uma parte pequena, mas muito importante de desenvolvimento de software.

Neste livro vamos nos concentrar exclusivamente na programação, porque é o único processo, os itens acima, sem a qual, não podemos desenvolver software.

Nosso Programa Primeira C #

Antes de continuarmos com uma descrição detalhada da linguagem C # ea plataforma .NET, vamos dar uma olhada em um exemplo simples, ilustrando como um programa escrito em C # parece:

class HelloCSharp
{
    static void Main(string[] args)
    {
        System.Console.WriteLine("Hello C#!");
  }
}

Como fazer Nosso primeiro Trabalho C# Programação?

A única coisa que este programa faz é imprimir a mensagem “Hello C#!” Na saída padrão. Ainda é cedo para executá-lo, razão pela qual só vamos dar uma olhada em sua estrutura. Mais tarde iremos descrever na íntegra como compilar e executar um determinado programa no prompt de comando, bem como a partir de um ambiente de desenvolvimento.

Nosso primeiro programa consiste em três partes lógicas:

  • Definição de um HelloCSharp classe;
  • Definição de um método main ();
  • Conteúdo do método Main ().

A definição de uma classe

Na primeira linha do nosso programa definimos uma classe chamada HelloCSharp. A definição mais simples de uma classe consiste na palavra-chave class, seguido pelo seu nome. No nosso caso, o nome da classe é HelloCSharp. O conteúdo da classe está localizado em um bloco de linhas de programa, cercado por chaves: {}.

Definindo o método main ()

Na terceira linha, que definem um método com o nome Main (), que é o ponto de partida para o nosso programa. Cada programa escrito em C # começa a partir de um Main () método com o seguinte título (assinatura):

static void Main(string[] args)

O método deve ser declarado como mostrado acima, deve ser static e void, ele deve ter um nome Main e como uma lista de parâmetros que ele deve ter apenas um parâmetro do tipo matriz de cadeia (Array of) String . No nosso exemplo, o parâmetro é chamado args mas isso não é obrigatório. Esse parâmetro não é utilizado na maioria dos casos de modo que pode ser omitido (isto é opcional). Nesse caso, o ponto de entrada do programa pode ser simplificada e será parecido com este:

static void Main()

Se algum dos requisitos acima mencionados não for cumprida, o programa irá compilar mas não vai começar, porque o ponto de partida não está definido corretamente.

Conteúdo do main () Método

O conteúdo de cada método é encontrado após a sua assinatura, rodeado abrindo e fechando chaves. Na linha seguinte do nosso programa de exemplo, usamos o objeto do sistema System.Console e seu método WriteLine () para imprimir uma mensagem na saída padrão (o console), neste caso, “Hello C#!”.

No Main () método, podemos escrever uma sequência aleatória de expressões e eles serão executados na ordem em que atribuído a eles.

Mais informações sobre expressões podem ser encontradas no capítulo ” Operadores e expressões “, trabalhando com o console é descrito no capítulo ” Entrada e Saída Console “, classes e métodos podem ser encontrados no capítulo ” Definindo Classes “.

C # Distingue entre maiúsculas e minúsculas!

A linguagem C # faz a distinção entre maiúsculas e minúsculas letras de modo que devemos utilizar a escrita correta quando escrever código C #. No exemplo acima, usamos algumas palavras-chave como class , static , void e os nomes de algumas das classes do sistema e objetos, como System.Console .

Tenha cuidado ao escrever! A mesma coisa, escrito em maiúsculas, minúsculas ou uma mistura de ambos, significa coisas diferentes em C #. Escrevendo Class é diferente de class e System.Console é diferente de SYSTEM.CONSOLE .

Esta regra aplica-se a todos os elementos do seu programa: palavras-chave, nomes de variáveis, nomes de classe etc.

O código do programa deve ser corretamente formatado

A formatação é a adição de personagens como espaços, tabulações e novas linhas, que são insignificantes para o compilador e eles dão o código de uma estrutura lógica e torná-lo mais fácil de ler . Vamos, por exemplo, de uma olhada em nosso primeiro programa (a versão curta do Main () método):

class HelloCSharp
{
    static void Main()
    {
        System.Console.WriteLine("Hello C#!");
    }
}

O programa contém sete linhas de código e alguns deles são recuadas mais do que outros. Tudo isso pode ser escrita sem espaços (tabs) , bem como, da seguinte forma:

class HelloCSharp
{
static void Main()
{
System.Console.WriteLine("Hello C#!");
}
}

Ou na mesma linha:

class HelloCSharp{static void Main(){System.Console.WriteLine( "Hello C#!");}}

Ou mesmo como esta:

                             class
    HelloCSharp
{
    static void                   Main()
    {                   System       .
Console.WriteLine("Hello C#!")     ;}        }

Os exemplos acima irá compilar e executar exatamente como o código formatado, mas eles são mais difíceis de ler e compreender , e, portanto, difíceis de modificar e manter.

Nunca deixe seus programas contedo código não formatado! Que reduz severamente a legibilidade do programa e leva a dificuldades para modificações posteriores do código.

Regras de formatação principais

Se queremos que o nosso código a ser formatado corretamente, é preciso seguir várias importantes regras relativas recuo :

  • Os métodos são recuadas dentro da definição da classe (mover para a direita por um ou mais [Tab] caracteres);
  • conteúdos método é recuado dentro da definição do método;
  • O colchete de abertura { deve ser em sua própria linha e colocado exatamente pelo método ou classe que se refere;
  • A chave fechando } deve estar em sua própria linha, colocado exatamente na vertical sob a respectiva chave de abertura (com o mesmo recuo);
  • Todos os nomes de classe devem começar com uma letra maiúscula;
  • Nomes de variáveis devem começar com uma letra minúscula;
  • nomes de métodos deve começar com uma letra maiúscula;

Código recuo segue uma regra muito simples: quando algum pedaço de código é logicamente dentro de um outro pedaço de código, é recuado (deslocado) à direita com um único [Tab]. Por exemplo, se um método é definido dentro de uma classe, ele é recuado (deslocado para a direita). Da mesma forma, se um corpo de método é dentro de um método, que é recuado. Para simplificar esta, podemos supor que, quando temos o caractere ” { “, todo o código depois que ele até seu fechamento ” } ” deve ser recuado à direita.

Nomes de arquivo correspondem aos nomes de classe

Cada programa C # é constituído por uma ou várias definições de classe . Aceita-se que cada classe é definida em um arquivo separado com um nome correspondente ao nome de classe e um .cs extensão. Quando esses requisitos não forem atendidos, o programa continuará a funcionar mas navegar o código vai ser difícil. No nosso exemplo, a classe é nomeado HelloCSharp , e como resultado temos de salvar seu código-fonte em um arquivo chamado HelloCSharp.cs .

A linguagem C # ea Plataforma .NET

A primeira versão do C # foi desenvolvido pela Microsoft entre 1999 e 2002 e foi oficialmente lançado ao público em 2002, como parte da plataforma .NET. A plataforma .NET tem o objetivo de tornar o desenvolvimento de software para o Windows mais fácil, fornecendo uma abordagem nova qualidade para programação, com base nos conceitos de ” máquina virtual ” e ” código gerenciado “. Nessa altura, a linguagem Java e plataforma colheu um enorme sucesso em todas as áreas de desenvolvimento de software; C # e .NET foram a resposta natural da Microsoft para a tecnologia Java.

A linguagem C #

C # é um, o propósito geral, linguagem de programação de alto nível orientada a objeto moderna . Sua sintaxe é semelhante à de C e C ++, mas muitas características desses idiomas não são suportados em C #, a fim de simplificar a linguagem, o que torna a programação mais fácil.

O # programas C são constituídos por um ou vários arquivos com um .cs extensão, que contêm definições de classes e outros tipos. Esses arquivos são compilados pelo compilador C # ( CSC ) de código executável e, como resultado conjuntos são criados, que são arquivos com o mesmo nome, mas com uma extensão diferente ( .exe ou .dll ). Por exemplo, se nós compilamos HelloCSharp.cs , vamos obter um arquivo com o nome HelloCSharp.exe (alguns arquivos adicionais serão criados, bem como, mas não vamos discuti-los no momento).

Nós podemos executar o código compilado como qualquer outro programa em nosso computador (clicando duas vezes nele). Se tentar executar o código C # compilado (por exemplo HelloCSharp.exe ) em um computador que não tenha o .NET Framework, que receberá uma mensagem de erro.

Palavras-chave

C # usa as seguintes palavras-chave para construir suas construções de programação (a lista é retirado do MSDN março 2013 e não pode estar completa):

abstract

as

base

bool

break

byte

case

catch

char

checked

class

const

continue

decimal

default

delegate

do

double

else

enum

event

explicit

extern

false

finally

fixed

float

for

foreach

goto

if

implicit

in

int

interface

internal

is

lock

long

namespace

new

null

object

operator

out

override

params

private

protected

public

readonly

ref

return

sbyte

sealed

short

sizeof

stackalloc

static

string

struct

switch

this

throw

true

try

typeof

uint

ulong

unchecked

unsafe

ushort

using

virtual

void

volatile

while

 

Gerenciamento automático de memória

Desde a criação da primeira versão da linguagem C #, nem todas as palavras-chave estão em uso . Alguns deles foram adicionados em versões posteriores. Os principais elementos do programa em C # (que são definidas e utilizadas com a ajuda de palavras-chave) são as classes , métodos , operadores , expressões , declarações condicionais , loops , tipos de dados , exceções e alguns outros. Nos próximos capítulos deste livro, vamos analisar em detalhes todas estas construções de programação, juntamente com o uso da maioria das palavras-chave da tabela acima.

Uma das maiores vantagens do .NET Framework é o gerenciamento automático de memória embutido. Ele protege os programadores da complexa tarefa de alocar manualmente memória para objetos e, em seguida, à espera de um momento adequado para liberá-lo. Isso aumenta significativamente a produtividade do desenvolvedor e da qualidade dos programas escritos em C #.

Na .NET Framework, há um componente especial do CLR, que cuida de gerenciamento de memória. Ele é chamado de “garbage collector” (sistema automatizado de limpeza de memória). O garbage collector tem as seguintes tarefas principais: para verificar quando a memória alocada para variáveis não está mais em uso, para liberá-lo e torná-lo disponível para alocação de novos objectos.

É importante notar que não é exatamente claro em que momento a memória fica limpo de objetos não utilizados (variáveis locais, por exemplo). De acordo com as especificações de linguagem C #, isso acontece em algum momento depois que uma determinada variável fica fora de alcance, mas não é especificado, se isso acontecer instantaneamente, depois de algum tempo ou quando a memória disponível se torna insuficiente para a operação normal do programa.

Independência do Meio Ambiente e da linguagem de programação

Uma das vantagens do .NET é que os programadores que utilizam diferentes linguagens .NET pode facilmente trocar seu código. Por exemplo, um programador C # pode usar o código escrito por outro programador em VB.NET, C ++ gerenciado ou F #. Isso é possível porque os programas escritos em diferentes linguagens .NET compartilhar um sistema comum de tipos de dados, infra-estrutura de execução e um formato unificado do código compilado (conjuntos).

Uma grande vantagem da tecnologia .NET é a capacidade de executar código, que é escrito e compilado apenas uma vez, em diferentes sistemas operacionais e dispositivos de hardware. Podemos compilar um programa C # em um ambiente Windows e, em seguida, executá-lo no Windows, Windows Mobile, Windows RT ou Linux. Oficialmente Microsoft suporta apenas o .NET Framework no Windows, Windows Mobile e Windows Phone, mas existem outros fornecedores que oferecem implementação do .NET em outros sistemas operacionais.

Mono (.NET para Linux)

Um exemplo de aplicação .NET para ambientes não-Windows é o projeto open-source Mono ( www.mono-project.com ). Ele implementa o .NET Framework e a maioria de suas bibliotecas de acompanhamento para Linux, FreeBSD, iPhone e Android. Mono é a implementação oficial .NET e alguns recursos podem trabalhar não exatamente como o esperado. Ele implementar bem as normas do núcleo .NET (como o compilador C # e CLR), mas não suporta totalmente os mais recentes tecnologias .NET e enquadramento como WPF e ASP.NET MVC.

Microsoft Intermediate Language (MSIL)

A idéia para a independência do ambiente foi definido nos estágios iniciais de criação da plataforma .NET e é implementado com a ajuda de um pequeno truque. O código de saída não é compilado com as instruções para um microprocessador específico e não usar os recursos de um sistema operacional específico; ele é compilado para o chamado Microsoft Intermediate Language (MSIL). Este MSIL não é executado diretamente pelo microprocessador, mas a partir de um ambiente virtual chamado Common Language Runtime (CLR).

Common Language Runtime (CLR) – Coração de .NET

No centro da plataforma .NET bate o seu coração – a Common Language Runtime (CLR) – o ambiente que controla a execução do código gerenciado (código MSIL). Ele garante a execução de programas .NET em diferentes plataformas de hardware e sistemas operacionais.

CLR é uma máquina de computação abstrato (máquina virtual). Da mesma forma que os computadores físicos que suporta um conjunto de instruções, registros, acesso à memória e operações de entrada e saída. CLR garante uma execução controlada dos programas .NET, utilizando todos os recursos do processador e do sistema operacional. CLR também realiza o acesso controlado para a memória e os outros recursos do computador, ao aderir às regras de acesso definidas quando o programa é executado.

A Plataforma .NET

A plataforma .NET contém a linguagem C #, CLR e muitos instrumentos auxiliares e bibliotecas pronto para uso. Existem algumas versões do .NET de acordo com o grupo de usuários-alvo:

  • .NET Framework é a versão mais comum do ambiente .NET por causa de seu uso geral. Ele é usado no desenvolvimento de aplicativos de console, aplicativos Windows com uma interface gráfica de usuário, aplicações web e muito mais.
  • .NET Compact Framework (CF) é uma versão “light” do padrão do .NET Framework e é usado no desenvolvimento de aplicações para telefones celulares e outros dispositivos PDA usando o Windows Mobile Edition.
  • Silverlight é também uma versão “light” do .NET Framework, destina-se a ser executado em navegadores web, a fim de implementar multimídia e Rich Internet Applications.
  • .NET Para aplicativos da Windows Store é um subconjunto do .NET Framework projetado para o desenvolvimento e execução de aplicações .NET em Windows 8 e ambiente Windows RT (a chamada Windows Store Apps).

Framework .NET

A versão padrão da plataforma .NET é destinado ao desenvolvimento e uso de aplicativos de console, aplicativos de desktop, aplicações Web, serviços da Web Rich Internet Applications, aplicações móveis para tablets e smartphones e muitos mais. Quase todos os desenvolvedores .NET usar a versão standard.

NET Technologies

Embora a plataforma .NET é grande e abrangente, ele não fornece todas as ferramentas necessárias para resolver todos os problemas no desenvolvimento de software. Existem muitos desenvolvedores de software independentes, que se expandem e adicionar a funcionalidade padrão oferecido pelo .NET Framework. Por exemplo, empresas como o software búlgaro corporação Telerik desenvolver conjuntos subsidiárias de componentes. Esses componentes são usados para criar interfaces gráficas, sistemas de gerenciamento de conteúdo Web, preparar relatórios e eles fazem o desenvolvimento de aplicações mais fácil.

As extensões do .NET Framework são componentes de software, que podem ser reutilizados no desenvolvimento de programas .NET. Código Reutilizar significativamente facilita e simplifica o desenvolvimento de software, porque fornece soluções para problemas comuns, oferece implementações de algoritmos complexos e padrões de tecnologia. O programador contemporânea usa as bibliotecas e os componentes todos os dias, e poupa muito esforço ao fazê-lo.

Vejamos o seguinte exemplo – software que visualiza os dados na forma de gráficos e diagramas. Podemos usar uma biblioteca, escrito em .NET, que desenha as cartas. Tudo o que precisamos fazer é introduzir os dados corretos ea biblioteca vai chamar as paradas para nós. É muito conveniente e eficiente. Também leva a uma redução nos custos de produção porque os programadores não vai precisar gastar tempo trabalhando em uma funcionalidade adicional (no nosso caso desenhar os gráficos, que envolve cálculos matemáticos complexos e controlar a placa gráfica). O próprio aplicativo será de maior qualidade porque a extensão que ele usa é desenvolvido e suportado por especialistas com mais experiência nesse campo específico.

Tecnologias de software são conjuntos de classes, módulos, bibliotecas, modelos de programação, ferramentas, padrões e melhores práticas que abordam um problema específico no desenvolvimento de software. Existem tecnologias de software em geral, como as tecnologias da Web, tecnologias móveis, tecnologias de computação gráfica e tecnologias relacionadas a alguma plataforma, como .NET ou Java.

Existem muitas tecnologias .NET que servem para diferentes áreas de desenvolvimento .NET. Exemplos típicos são as tecnologias da Web (como ASP.NET e ASP.NET MVC), permitindo a criação rápida e fácil de aplicações Web dinâmicas e tecnologias móveis NET (como WinJS), que tornam possível a criação de aplicações de interface multimídia rica usuário trabalhar na internet.

.NET Framework por padrão inclui como parte de si mesmo muitas tecnologias e bibliotecas de classe com funcionalidade padrão, que os desenvolvedores podem usar. Por exemplo, há aulas de ready-to-use na biblioteca de sistema que trabalham com funções matemáticas, logaritmos de cálculo e funções trigonométricas (classe System.Math). Outro exemplo é a biblioteca de lidar com redes (System.Net), tem uma funcionalidade interna para enviar e-mails (usando a classe System.Net.Mail.MailMessage) e para baixar arquivos da Internet (usando System.Net .WebClient).

A tecnologia .NET é a coleção de .NET classes, bibliotecas, ferramentas, normas e outros meios de programação e modelos de desenvolvimento estabelecidos, que determinam a estrutura tecnológica para a criação de um certo tipo de aplicação. Uma biblioteca .NET é uma coleção de classes .NET, que oferecem determinadas funcionalidades ready-to-use. Por exemplo, ADO.NET é uma tecnologia que oferece abordagem padronizada para acessar bancos de dados relacionais (como o Microsoft SQL Server e MySQL). As classes do pacote (namespace) System.Data.SqlClient são um exemplo de biblioteca .NET, que fornecem funcionalidade para conectar um SQL Server através da tecnologia ADO.NET.

Algumas das tecnologias desenvolvidas por programadores de software fora da Microsoft tornar-se generalizada e, como resultado estabelecer-se como padrões de tecnologia. Alguns deles são notados pela Microsoft e depois são adicionados para a próxima iteração do .NET Framework. Dessa forma, a plataforma .NET está em constante evolução e expansão, com novas bibliotecas e tecnologias. Por exemplo, as tecnologias de mapeamento objeto-relacional inicialmente foram desenvolvidos como projetos e produtos independentes (como o projeto de código aberto NHibernate e OpenAccess de Telerik ORM). Depois que eles ganharam enorme popularidade, a sua inclusão no .NET Framework tornou-se uma necessidade. E é assim que as tecnologias do LINQ-to-SQL e ADO.NET Entity Framework nasceram, respectivamente, em .NET 3.5 e .NET 4.0.

Application Programming Interface (API)

Cada biblioteca ou tecnologia .NET é utilizada por criar objetos e chamar seus métodos. O conjunto de classes e métodos públicos nas bibliotecas de programação é chamado Application Programming Interface ou apenas API . Como exemplo, podemos olhar para o próprio .NET API; é um conjunto de bibliotecas de classes .NET, expandindo as capacidades da linguagem e adicionando funcionalidade de alto nível. Todas as tecnologias .NET oferece uma API pública . As tecnologias são muitas vezes referidas simplesmente como API, que adiciona algumas funcionalidades. Por exemplo: API para trabalhar com arquivos, API para trabalhar com gráficos, API para trabalhar com impressoras, API para leitura e criação de documentos do Word e Excel, API para a criação de documentos em PDF, desenvolvimento de API Web, etc.

Documentação .NET

Muitas vezes é necessário documentar uma API, porque contém muitos espaços de nomes e classes. As classes contêm métodos e parâmetros. O seu objectivo não é sempre óbvio e precisa ser explicado . Também existem dependências interior entre as classes separadas, que têm de ser explicados, a fim de ser utilizada correctamente. Estas explicações e instruções técnicas sobre como usar uma determinada tecnologia, biblioteca ou API, são chamados de documentação . A documentação consiste de uma coleção de documentos com conteúdo técnico.

O .NET Framework também tem uma documentação oficialmente desenvolvido e suportado pela Microsoft. Ele está disponível ao público na Internet e também é distribuído com a plataforma .NET como uma coleção de documentos e ferramentas para navegar e pesquisar.

clip_image003[8]

O MSDN Library é a documentação oficial da Microsoft para todos os seus produtos para desenvolvedores e tecnologias de software. Documentação técnica do .NET Framework é parte do MSDN Library e pode ser encontrada aqui: http://msdn.microsoft.com/en-us/library/vstudio/gg145045.aspx . A imagem acima mostra como ele pode parecer (para .NET versão 4.5).

O que temos de programar em C #?

Depois que se estabeleceu familiarizado com a plataforma .NET , bibliotecas .NET e tecnologias .NET , podemos passar para a escrita, compilação e execução de programas de C #.

A fim de programar em C #, precisamos de duas coisas básicas – uma instalação do .NET Framework e um editor de texto . Precisamos do editor de texto para escrever e editar o código C # e .NET Framework para compilar e executá-lo.

Framework .NET

Por padrão, o .NET Framework é instalado junto com o Windows, mas em versões antigas do Windows que poderia estar faltando. Para instalar o .NET Framework, é preciso baixá-lo do site da Microsoft ( http://download.microsoft.com ). É melhor se baixar e instalar a versão mais recente.

Não se esqueça de que precisamos para instalar o .NET Framework antes de começar! Caso contrário, não será capaz de compilar e executar o programa.

Se executar o Windows 8 ou Windows 7, o .NET Framework será instalado como parte do Windows.

Editor de texto

O editor de texto é usado para escrever o código-fonte do programa e guardá-lo em um arquivo. Depois disso, o código é compilado e executado. Existem muitos programas de edição de texto. Nós podemos usar o Windows ‘built-in Notepad (que é muito básico e inconveniente) ou um editor de texto melhor livre como o Notepad ++ ( notepad-plus.sourceforge.net ) ou PSPad ( www.pspad.com ).

Compilação e Execução de Programas C #

Chegou o momento para compilar e executar o programa de exemplo simples escrito em C #, que já foi discutido. Para conseguir isso, é preciso fazer o seguinte:

  • Crie um arquivo chamado cs ;
  • Escreva o programa de exemplo no arquivo;
  • Compilar cs para um arquivo executável HelloCSharp.exe ;
  • Execute o exe arquivo.

Agora, vamos fazê-lo no computador!

As instruções anteriores variam dependendo do sistema operativo . Como a programação em Linux não é o foco deste livro, vamos tomar um profundo olhar para o que temos de escrever e executar o programa de exemplo na do Windows . Para aqueles de vocês, que querem programar em C # em um ambiente Linux, já explicamos sobre o projeto Mono , e você pode baixá-lo e experiência.

Aqui está o código do nosso primeiro programa C # :

HelloCSharp.cs
class HelloCSharp
{
    static void Main()
    {
        System.Console.WriteLine("Hello C#!");
  }
}

Primeiro vamos iniciar o console de comando do Windows, também conhecida como Prompt de comando (isto é feito a partir do menu principal do Windows Explorer – Iniciar -> Programas -> Acessórios -> Prompt de Comando):

clip_image005[4]

Criando C # programas no console do Windows

Recomenda-se que execute a consola como administrador . Caso contrário, algumas operações podem estar limitadas. Correndo em Prompt de comando como um administrador no Windows 7 é feito a partir do menu de contexto, que aparece quando nós clique direito no Prompt de Comando ícone (ver figura). No Windows 8 o comando “Executar como administrador” está diretamente disponível quando você clique direito no ícone do prompt de comando:

Depois disso, vamos criar um diretório do console, em que vamos experimentar. Usamos o md comando para criar um diretório e cd comando para navegar até ele (entrar dentro dele):

clip_image009[8]

O diretório será nomeado IntroCSharp e será encontrado em C: \ . Vamos mudar o diretório atual para C: \ IntroCSharp e criar um novo arquivo HelloCSharp.cs , usando o built-in editor de texto Windows – bloco de notas. Para criar o arquivo, podemos escrever o seguinte comando no console:

notepad HelloCSharp.cs 

Isto irá iniciar o bloco de notas com a janela de diálogo a seguir, confirmando a criação de um novo arquivo:

clip_image011[6]

Notepad irá avisar-nos que não existe tal arquivo existe e vai nos perguntar se deseja criá-la. Nós clique em [Sim]. O próximo passo é reescrever ou simplesmente copiar / colar o código fonte do programa.

clip_image013[4]

Nós salvá-lo pressionando [Ctrl + S] e feche o editor Bloco de notas com [Alt + F4]. Agora, temos o código inicial do nosso programa de exemplo C #, escrito no arquivo C: \ IntroCSharp \ HelloCSharp.cs .

Compilando # Programas C no Windows

A única coisa que resta a fazer é compilar e executá-lo. Compilando é feito pelo csc.exe compilador.

clip_image015[4]

Nós temos o nosso primeiro erro – Windows não consegue encontrar um arquivo executável ou comando com o nome de ” csc .” Este é um problema muito comum e é normal que apareça se for a primeira vez usando C #. Há várias razões que podem ter causado isso:

  • O .NET Framework não está instalado;
  • O .NET Framework é instalado, mas o diretório NET \ Framework \ v4.0.xxx não é adicionado ao caminho do sistema de arquivos executáveis e Windows não pode encontrar csc.exe , apesar do fato de que ela está presente no disco rígido .

O primeiro problema é facilmente resolvido com a instalação do .NET Framework (no nosso caso – versão 4.5). O outro problema pode ser resolvido alterando o caminho do sistema (vamos fazer isso mais tarde) ou usando o caminho completo para CSC.exe , como é mostrado na figura abaixo. No nosso caso, o caminho completo do arquivo para o compilador C # é C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ csc.exe (note que este caminho pode variar dependendo da versão do framework .NET instalado). Estranho ou não, .NET 4.5 que vem com o Visual Studio 2012 e C # 5 é instalado em um diretório chamado ” v4.0.30319 ” – isto não é um erro.

Compilando e executando # Programas C no Windows

Agora vamos chamar o csc compilador através dela caminho completo e passar para ele o arquivo que deseja compilar como um parâmetro ( HelloCSharp.exe ):

clip_image017[4]

Após a execução csc é concluída sem erros, e nós temos o seguinte arquivo como resultado: C: \ IntroCSharp \ HelloCSharp.exe . Para executá-lo, nós simplesmente precisa escrever o seu nome. O resultado da execução do nosso programa é a mensagem “Olá, C #!” impresso no console. Não é grande, mas é um bom começo:

clip_image019[4]

Alterando os caminhos de sistema no Windows

Se soubermos usar a linha de comando compilador C # ( csc.exe ) sem entrar no caminho completo para ele, poderíamos acrescentar a sua pasta para o caminho do sistema do Windows .

  1. Nós abrir Painel de Controle e selecione ” Sistema “. Como resultado desta janela conhecida aparece (a imagem é tomada a partir do Windows 7 ):

No Windows 8 pode parecer um pouco diferente, mas é quase o mesmo:

clip_image023[4]

  1. Nós selecione ” Configurações avançadas do sistema “. A janela de diálogo ” Propriedades do sistema ” aparece:
  2. Nós clique no botão ” Variáveis de Ambiente ” e uma janela com todas as variáveis de ambiente mostra-se:
  3. Nós escolhemos ” Path ” da lista de variáveis do sistema , como mostrado na figura, e pressione o botão “Editar”. Uma pequena janela será exibida, na qual entramos no caminho para o diretório onde o .NET Framework está instalado:

Claro, primeiro precisamos descobrir onde o nosso .NET Framework está instalado. Por padrão, ele está localizado em algum lugar dentro do Windows diretório do sistema C: \ Windows \ Microsoft.NET , por exemplo:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319

Adicionando o caminho adicional para os já existentes no Caminho variável do ambiente é feito ao lado do nome do caminho para os outros e usando um ponto e vírgula ( ; ) como um espaçador.

Devemos ter cuidado porque se excluir qualquer um dos caminhos do sistema existentes, algumas das funções ou parte do software instalado o Windows ‘pode não funcionar corretamente!
  1. Quando estamos a fazer com definir o caminho que pode tentar executar exe , sem entrar o caminho completo. Para fazer isso, abrimos um novo cmd.exe janela (prompt de comando) (é importante reiniciar o Prompt de Comando ) e digite o ” csc ” de comando. Devemos ver a versão C # compilador e uma mensagem de que nenhum arquivo de entrada foi especificado:

clip_image031[4]

Visual Studio IDE

Até agora nós examinamos como compilar e executar programas em C # usando o console do Windows (prompt de comando). Claro, há uma maneira mais fácil de fazê-lo – usando um ambiente de desenvolvimento integrado, que irá executar todos os comandos que usamos até agora. Vamos dar uma olhada em como trabalhar com ambientes de desenvolvimento (IDE) e como eles vão fazer o nosso trabalho mais fácil.

Ambientes de Desenvolvimento Integrado

Nos exemplos anteriores, examinamos como compilar e executar um programa que consiste em um único arquivo. Normalmente, os programas são feitos de muitos arquivos, às vezes até mesmo dezenas de milhares. Escrevendo em um editor de texto, compilação e execução de um programa único arquivo no prompt de comando são simples, mas para fazer tudo isso para um grande projeto pode revelar-se uma tarefa muito complexa e demorada. Há uma única ferramenta que reduz a complexidade, torna a escrita, compilação e execução de aplicações de software mais fácil – o chamado Integrated Development Environment (IDE). Ambientes de desenvolvimento geralmente oferecem muitas adições aos principais funções de desenvolvimento, tais como a depuração, testes unitários, verificação de erros comuns, o acesso a um repositório e outros.

O que é o Visual Studio?

Visual Studio é um ambiente integrado poderoso (IDE) para o desenvolvimento de aplicativos de software para Windows e a plataforma .NET Framework. Visual Studio (VS) suporta várias linguagens de programação (por exemplo C #, VB.NET e C ++) e diferentes tecnologias de desenvolvimento de software (Win32, COM, ASP.NET, ADO.NET Entity Framework, Windows Forms, WPF, Silverlight, aplicações da Windows Store e muitas mais tecnologias do Windows e .NET). Ele oferece um ambiente integrado poderoso para escrever código, compilar, executar, depurar e testar aplicações, projetando interface de usuário (formulários, diálogos, páginas web, controles visuais e outros), de dados e modelagem de classe, a execução de testes e centenas de outras funções.

IDE significa “ambiente de desenvolvimento integrado” – uma ferramenta onde você escrever o código, compilá-lo, executá-lo, testá-lo, depurá-lo, etc, e tudo está integrado em um único lugar. Visual Studio é exemplo típico de IDE de desenvolvimento.

.NET Framework 4.5 vem com o Visual Studio 2012 (VS 2012). Esta é a versão mais recente do Visual Studio a partir de março de 2013. Ele é projetado para C # 5, .NET 4.5 e Windows 8 desenvolvimento.

VS 2012 é um produto comercial, mas tem uma versão gratuita chamada Visual Studio Express 2012, que pode ser baixado gratuitamente no site da Microsoft em http://microsoft.com/visualstudio/downloads .

Visual Studio 2012 expresso tem várias edições (para área de trabalho, para a Web , para o Windows 8 e outros). Se você quiser escrever código C # a seguir ao conteúdo deste livro, você pode usar o Visual Studio 2012 Express para desktop ou verifique se você tem uma licença livre do Visual Studio completo de sua universidade ou organização. Muitas instituições acadêmicas (como Universidade de Sofia e Telerik Academy Software) fornecer gratuitamente Microsoft DreamSpark contas aos seus alunos para obter licença do Windows, Visual Studio, SQL Server e outras ferramentas de desenvolvimento. Se você é estudante, pergunte ao seu administração da universidade sobre o DreamSpark programa. A maioria das universidades em todo o mundo são membros deste programa.

Neste livro, vamos dar uma olhada em apenas as funções mais importantes do VS Expresso 2012 – os relativos à codificação. Estas são as funções para criar, editar, compilar, executar e depuração de programas.

Note que versões mais antigas do Visual Studio, como VS 2010 e VS 2008 também pode ser usado para os exemplos neste livro, mas sua interface de usuário pode ser ligeiramente diferente. Nossos exemplos são baseados em VS 2012 sobre o Windows 8 .

Antes de continuarmos com um exemplo, vamos dar uma olhada mais detalhada da estrutura do Visual Studio 2012 da interface visual. Windows são a principal parte dela. Cada um deles tem uma função diferente ligada ao desenvolvimento de aplicações. Vamos ver como Visual Studio 2012 parece após a instalação e configuração padrão:

clip_image033[4]

Visual Studio tem várias janelas que vamos explorar (veja a figura abaixo):

  • Start Page – a partir da página inicial, podemos facilmente abrir qualquer um dos nossos mais recentes projetos ou iniciar um novo, para criar o nosso primeiro programa C # ou para obter ajuda como usar C #.
  • Editor de código – mantém o código fonte do programa e permite abrir e editar vários arquivos.
  • Lista de erros – que mostra os erros no programa que desenvolvemos (se houver). Nós aprender a usar esta janela mais tarde, quando compilar programas C # no Visual Studio.
  • Solution Explorer – quando nenhum projeto é carregado, essa janela está vazia, mas ele vai se tornar uma parte de nossas vidas como programadores C #. Ela vai mostrar a estrutura do nosso projeto – todos os arquivos que ele contém, independentemente se eles são de código C #, imagens ou algum outro tipo de código ou recursos.
  • Propriedades – contém uma lista de propriedades do objeto atual. Propriedades são usados principalmente na programação baseada em componentes, por exemplo, quando desenvolvemos WPF, Windows Store ou ASP.NET aplicação Web Forms.

clip_image035[4]

Há muitas outras janelas com funcionalidade auxiliar no Visual Studio, mas não vamos revê-los neste momento.

Criando um novo projeto C #

Antes de fazer qualquer outra coisa no Visual Studio, devemos criar um novo projeto ou carregar um já existente. Os grupos de projecto muitos arquivos, destinadas a implementar uma aplicação de software ou sistema, de uma maneira lógica. Recomenda-se que crie um projeto separado para cada novo programa.

Nós podemos criar um projeto no Visual Studio , seguindo estes passos:

  • Arquivo -> New Project
  • O novo ajudante projeto aparece com todos os diferentes tipos de projectos que podem criar listados. Podemos escolher um tipo de projeto (por exemplo, aplicativo de console ou aplicativo WPF), linguagem de programação (por exemplo, C # ou VB.NET) e versão .NET Framework (por exemplo .NET Framework 4.5):
  • Nós escolhemos Console Application . Aplicativos de console são os programas, que utilizam o console como uma entrada e saída padrão. Os dados são inseridos com o teclado e quando um resultado precisa ser impresso aparece no console (como texto na tela na janela do programa). Além de aplicativos de console, podemos criar aplicativos com uma interface gráfica do usuário (por exemplo, Windows Forms ou WPF), aplicações Web, serviços Web, aplicações móveis, aplicativos do Windows Store, projetos de banco de dados e outros.
  • No campo “Nome” entramos no nome do projeto. No nosso caso, nós escolhemos o nome IntroToCSharp .
  • Nós pressionamos o [OK] botão.

O projeto recém-criado agora é mostrado na Solution Explorer . Além disso, o nosso primeiro arquivo, que contém o código do programa, é automaticamente adicionado. É nomeado Program . É muito importante para dar nomes significativos aos nossos arquivos, classes, métodos e outros elementos do programa, para que possamos encontrá-los facilmente e navegar pelo código. Um nome significativo significa um nome que responde à pergunta “o que é a intenção deste arquivo / classe / método / variável?” E ajuda os desenvolvedores a entender como o código funciona. Não use Problem3 para um nome, mesmo se você está resolvendo o problema 3 dos exercícios. Nome do seu projecto / classe pela sua finalidade . Se o seu projeto é bem nomeado, depois de alguns meses ou um ano você vai ser capaz de explicar o que se pretende fazer sem abri-lo e olhar para dentro. Problem3 não diz nada sobre o que o projeto realmente faz.

A fim de mudar o nome do Program.cs arquivo, nós clique direito sobre ele no Solution Explorer e selecione “Renomear”. Podemos nomear o arquivo principal de nossas C # programa HelloCSharp.cs . Renomear um arquivo também pode ser feito com a tecla [F2] quando o arquivo é selecionado no Solution Explorer:

clip_image039[4]

Uma caixa de diálogo aparecerá perguntando se nós deseja renomear nome da classe, bem como o nome do arquivo. Nós selecione ” Sim “.

clip_image041[4]

Depois de efectuar todos estes passos, temos nossa primeira aplicação consola chamado IntroToCSharp e contendo uma única classe HelloCSharp (armazenada no arquivo HelloCSharp.cs ):

clip_image043[4]

Tudo o que temos a fazer é adicionar código para o Main () método . Por padrão, o HelloCSharp.cs código deve ser carregado e pronto para edição. Se não for, nós duplo clique no HelloCSharp.cs arquivo no Solution Explorer para carregá-lo. Nós insira o seguinte código-fonte:

clip_image045[4]

Compilar o código fonte

O processo de compilação no Visual Studio inclui várias etapas:

  • verificação de erro de sintaxe;
  • Um cheque de outros erros, como bibliotecas em falta;
  • Convertendo o código C # em um arquivo executável (um assembly .NET). Para aplicações do console é um .exe

Para compilar um arquivo no Visual Studio, que pressione a [F6] tecla ou [Shift + Ctrl + B] . Normalmente, os erros são sublinhadas em vermelho, para atrair a atenção do programador, enquanto ainda estamos escrevendo ou quando a compilação, o mais tardar. Eles estão listados na janela “Lista de erros” se ele estiver visível (se não for, podemos torná-lo visível a partir do menu “View” do Visual Studio).

Se o nosso projeto tem pelo menos um erro, ele será marcado com um pequeno “x” vermelho no ” Lista de erros janela”. Informação curta sobre o problema é exibido para cada erro – nome do arquivo, número da linha e nome do projeto. Se clicar duas vezes qualquer um dos erros na “Lista de erros”, o Visual Studio nos levará automaticamente para o arquivo e linha de código onde ocorreu o erro.

O início do projecto

Para iniciar o projeto, pressione [Ctrl + F5] (segurando a tecla [Ctrl] pressionada e, ao mesmo tempo pressionando a tecla [F5]).

O programa será iniciado eo resultado será exibido no console, seguido pelo ” Pressione qualquer tecla para continuar. . . “Mensagem:

A última mensagem não é parte do resultado produzido pelo programa. É um lembrete pelo Visual Studio que o nosso programa terminar a sua execução e nos dá tempo para ver o resultado. Se executar o programa em apenas pressionando [F5] , essa mensagem não será exibida eo resultado vai desaparecer instantaneamente depois de aparecer porque o programa vai terminar a sua execução, ea janela será fechada. É por isso que devemos sempre começar nossos aplicativos de console pressionando [Ctrl + F5] .

Nem todos os tipos de projeto pode ser executado. A fim de executar um projeto C #, ele precisa ter uma classe com um Main () método declarado na forma descrita anteriormente neste capítulo .

Depuração do Programa

Quando o nosso programa contém erros, também conhecidos como erros , temos de encontrar e removê-los, ou seja, é preciso depurar o programa. O processo de depuração inclui:

  • Percebendo os problemas (bugs);
  • Encontrar o código causando os problemas;
  • Corrigindo o código para que o programa funciona corretamente;
  • Teste para garantir que o programa funciona como esperado após as alterações são feitas.

O processo pode ser repetido várias vezes até que o programa começa a trabalhar correctamente. Depois temos notado o problema, precisamos encontrar o código causando isso. Visual Studio pode ajudar, permitindo-nos para verificar passo a passo se tudo está funcionando como o planejado.

Para interromper a execução do programa em posições designadas podemos colocar pontos de interrupção . O ponto de interrupção está associado com uma linha do programa. O programa pára a sua execução nas linhas com pontos de quebra, permitindo que o resto do código a ser executada passo a passo. Em cada passo que podemos verificar e até mesmo alterar os valores das variáveis atuais.

A depuração é uma espécie de passo a passo a execução lenta do programa. Isso nos dá a oportunidade de entender facilmente os detalhes do código e ver onde exatamente e por que os erros ocorreram.

Vamos criar um erro intencional em nosso programa, para ilustrar como usar pontos de interrupção. Nós vamos adicionar uma linha para o programa, que irá criar uma exceção durante a execução (vamos dar uma olhada detalhada exceções no ” tratamento de exceção capítulo”).

Por agora vamos editar o nosso programa da seguinte forma:

HelloCSharp.cs
class HelloCSharp
{
    static void Main()
    {
        throw new System.NotImplementedException(
            "Intended exception.");
        System.Console.WriteLine("Hello C#!");
    }
}

Quando iniciar o programa novamente com [Ctrl + F5] teremos um erro e ele será impresso no console:

clip_image051[4]

Vamos ver como pontos de interrupção vai nos ajudar a encontrar o problema. Nós mover o cursor para a linha com o suporte da abertura Main () método e pressione [F9] (ao fazê-lo colocar um ponto de interrupção nessa linha). Um ponto vermelho aparece, indicando que o programa vai parar lá, se ele é executado no modo de depuração:

clip_image053[4]

Agora, temos de iniciar o programa no modo de depuração. Nós selecionamos Debug -> Start Debugging ou pressione [F5] . O programa irá iniciar e parar imediatamente no primeiro ponto de interrupção que encontra. A linha vai ser colorido em amarelo e podemos executar o programa passo a passo. Com a tecla [F10] nós nos movemos para a próxima linha.

Quando estamos em uma determinada linha e é colorido em amarelo , o código em que a linha está ainda não executada . Ele executa uma vez que já passaram essa linha. Neste caso, nós não recebeu ainda o erro, apesar do fato de que estamos na linha de nós adicionamos e deve causar-lhe:

clip_image055[4]

Nós pressionamos [F10] mais uma vez para executar a linha atual. Desta vez, Visual Studio exibe uma janela especificando a linha em que o erro ocorreu, bem como alguns detalhes adicionais sobre o assunto:

clip_image057[4]

Uma vez que sabemos onde exatamente o problema no programa é, podemos facilmente corrigi-lo. Para isso, em primeiro lugar, temos de parar a execução do programa antes de ser concluída. Nós selecionamos Debug -> Stop Debugging ou pressione [Shift + F5]. Depois disso, apagar a linha problema e iniciar o programa no modo normal (sem depuração) pressionando) [Ctrl + F5].

Alternativas a Visual Studio

Como vimos, em teoria, podemos fazer sem o Visual Studio, mas na prática isso não é uma boa ideia. O trabalho necessário compilar um projeto grande, encontrando todos os erros no código e realizando inúmeras outras ações seria simplesmente levar muito tempo sem o Visual Studio.

Por outro lado, Visual Studio não é livre ambiente de software de desenvolvimento (da versão completa). Muitas pessoas não têm dinheiro para comprar a versão profissional (isso também é verdade para as pequenas empresas e algumas pessoas envolvidas na programação).

É por isso que existem algumas alternativas para Visual Studio (exceto VS Express Edition), que são livres e podem lidar com as mesmas tarefas relativamente bem.

SharpDevelop

Uma alternativa é SharpDevelop ( #Develop ). Podemos encontrá-lo no seguinte endereço Internet: http://www.icsharpcode.NET/OpenSource/SD/ . #Develop É um IDE para C # e é desenvolvido como um projeto de código aberto. Ele suporta a maioria das funcionalidades oferecidas no Visual Studio 2012, mas também funciona em outros sistemas operacionais Linux e. Não vamos analisá-lo em detalhes, mas você deve manter isso em mente, no caso de você precisa de um ambiente de C # desenvolvimento e Visual Studio não está disponível.

MonoDevelop

MonoDevelop é um ambiente de desenvolvimento de software integrado para a plataforma .NET. É completamente livre (open source) e pode ser baixado em: http://monodevelop.com . Com MonoDevelop , podemos rapidamente e facilmente escrever aplicações desktop e ASP.NET totalmente funcional para Linux, Mac OS X e Windows. Ele também permite aos programadores facilmente transferir projetos criados no Visual Studio para a plataforma Mono e torná-las funcionais em outras plataformas.

Código decompiling

Às vezes, os programadores precisam para ver o código de um determinado módulo ou programa, não estão escritos por eles e sem código fonte disponível. O processo, que gera código-fonte de um binário executável fi existente le (assembly .NET – .exe ou .dll ) é chamado decompiling .

Podemos precisar de descompilar código nos seguintes casos:

  • Queremos verificar como um dado algoritmo é implementado, mas não temos o código-fonte, por exemplo, para verificar como Sort () funciona internamente.
  • Há várias opções ao usar alguma biblioteca NET, e queremos encontrar a melhor escolha. Queremos ver como usar determinada API cavar em algum código compilado que o utiliza.
  • Não temos nenhuma informação como uma determinada biblioteca funciona , mas nós temos o código compilado (assembly .NET), que usa-lo, e queremos descobrir como exatamente as obras da biblioteca.
  • Perdemos nosso código fonte e queremos recuperá-lo. Código de recuperação através de uma descompilação resultará em nomes perdidos variáveis, comentários, formatação e outros, mas é melhor que nada.

Decompiling é feito com a ajuda de ferramentas, que não são parte padrão do Visual Studio. A primeira populares decompiler .NET foi de Red Gate refletor (antes de se tornar comercial no início de 2011).

Telerik está oferecendo um bom e completamente livre decompiler .NET chamado JustDecompile . Ele pode ser baixado a partir do site da empresa: http://www.telerik.com/products/decompiler.aspx . JustDecompile permite descompilação código diretamente no Visual Studio e também tem uma aplicação GUI externa independente para conjuntos de navegação e descompilar seu código :

clip_image059[4]

Outra boa ferramenta decompilation for .NET é a ILSpy , que é desenvolvido em torno do SharpDevelop projeto. ILSpy pode ser baixado em: http://ilspy.net . O programa não requer instalação. Depois de começar o que, ILSpy carrega algumas das bibliotecas .NET Framework padrão. Através do menu Arquivo -> Open, podemos abrir um determinado assembly .NET. Nós também pode carregar um assembly do GAC (Global Assembly Cache). Isto é como ILSpy se parece com:

clip_image061[4]

Em ILSpy há duas maneiras de descobrir como um determinado método é implementado. Por exemplo, se quisermos ver como o método estático System.Currency.ToDecimal funciona, em primeiro lugar, podemos usar a árvore à esquerda para encontrar a moeda de classe no Sistema namespace e, finalmente, selecionar o ToDecimal método. Se clicar em qualquer método, vamos ser capazes de ver seu código fonte em C #. Outra maneira de encontrar uma determinada classe está usando o motor de busca na ILSpy . Procura-se através dos nomes de todas as classes, interfaces, métodos, propriedades etc. das assembleias carregados. Infelizmente, a versão no momento da escrita deste livro (ILSpy 2.1) pode decompor somente a linguagens C #, VB.NET e IL.

JustDecompile e ILSpy são ferramentas extremamente úteis , que podem ajudar quase todos os dias ao desenvolver software .NET e nós definitivamente deveria baixar pelo menos um e brincar com ele. Quando estamos querendo saber como um determinado método funciona ou como algo que é implementado em um determinado conjunto, podemos sempre contar com o decompiler para descobrir.

C # no Linux, iOS e Android

C # programação em Linux não é muito desenvolvida comparada com a do Windows. Nós não quer ignorá-lo completamente, então vamos dar algumas orientações sobre como começar a programação em C # no Linux, iOS e Android .

A coisa mais importante que precisamos a fim de escrever código C # no Linux é uma implementação do .NET Framework. Microsoft .NET Framework não está disponível para Linux, mas há uma aplicação .NET de código aberto chamado “Mono” . Nós podemos baixar Mono em seu site oficial: http://www.mono-project.com . Mono nos permite compilar e executar programas C # em um ambiente Linux e em outros sistemas operacionais. Ele contém um compilador C #, a CLR, um coletor de lixo, as bibliotecas .NET padrão e muitas das bibliotecas disponíveis para o .NET Framework no Windows como o Windows Forms e ASP.NET.

Mono suporta compilar e executar código C #, não só em Linux , mas também em Solaris, Mac OS X, iOS (iPhone / iPad ) e Android . O iOS versão (MonoTouch) e a versão Android do Mono (Mono para Android) são projetos comerciais, enquanto Mono para Linux é um software livre e de código aberto.

Claro, Visual Studio não funciona no ambiente Linux, mas podemos usar o #Develop ou MonoDevelop como C # IDE em Linux.

Outros .NET Idiomas

C # é a linguagem mais popular NET, mas há poucas outras línguas que podem ser utilizadas para escrever programas .NET:

  • NET – Visual Basic .NET (VB) é a linguagem básica adaptada para ser executado no .NET Framework. É considerado como o sucessor do Microsoft Visual Basic 6 (ambiente de desenvolvimento legado para Windows 3.1 e Windows 95). Ele tem uma sintaxe estranha (para desenvolvedores C #), mas geralmente faz o mesmo como C #, apenas na sintaxe diferente. A única razão VB.NET existe é histórica: é sucessor de VB6 e mantém a maior parte de sua sintaxe. Não é recomendado a menos que você é programador VB6.
  • Managed C ++ – adaptação da linguagem de programação C ++ para o .NET Framework. Pode ser útil se você precisar converter rapidamente código existente C ++ para ser usado a partir de .NET. Não recomendado para novos projetos. Não recomendado para os leitores deste livro, mesmo se alguém tem alguma experiência em C ++, porque faz com que a programação .NET desnecessária complicado.
  • F # – uma experiência para colocar paradigma de programação puramente funcional no .NET Framework. Não recomendado em tudo (a menos que são funcionais guru de programação).
  • JavaScript – pode ser usado para desenvolver o Windows 8 (Windows Store) aplicativos através do WinJS Pode ser uma boa escolha para desenvolvedores de HTML5 hábeis que têm boas habilidades de JavaScript. Não recomendado para os leitores deste livro porque ele não suporta aplicativos do console.

exercícios

  1. Instalar e familiarizar-se com o Microsoft Visual Studio e Microsoft Developer Network ( MSDN Documentation Library).
  2. Encontrar a descrição do Console classe na documentação do .NET API padrão (MSDN Library).
  3. Encontrar a descrição do Console.WriteLine () método e seus diferentes parâmetros possíveis no MSDN Library.
  4. Compilar e executar o programa de exemplo a partir deste capítulo usando o prompt de comando (console) e Visual Studio.
  5. Modificar o programa de exemplo para imprimir uma saudação diferente, por exemplo, “Good Day !”.
  6. Escrever uma aplicação de consola que imprime o seu primeiro e último nome no console.
  7. Escreva um programa que imprime os seguintes números no console 1, 101, 1001, cada um em uma nova linha.
  8. Escreva um programa que imprime no console da data e hora atuais .
  9. Escreva um programa que imprime a raiz quadrada de 12345 .
  10. Escreva um programa que imprime as primeiras 100 membros da sequência 2, -3, 4, -5, 6, -7, 8.
  11. Escreva um programa que lê a sua idade a partir da consola e imprime a sua idade após 10 anos .
  12. Descreva a diferença entre C # eo .NET Framework .
  13. Faça uma lista dos programação mais populares línguas. Como eles são diferentes de C #?
  14. Descompilar o programa exemplo de exercício 5.

Soluções e orientações

  1. Se você tem um DreamSpark conta ( dreamspark.com ), ou a sua escola ou universidade oferece livre acesso a produtos da Microsoft, instalar a versão completa do Microsoft Visual Studio . Se você não tem a oportunidade de trabalhar com a versão completa do Microsoft Visual Studio, você pode baixar o Visual Studio Express gratuitamente no site da Microsoft; é totalmente gratuito e funciona bem para fins de aprendizagem.
  2. Use o endereço indicado no ” Documentação .NET ” deste capítulo. Abri-lo e procurar na árvore do lado esquerdo. A pesquisa do Google vai funcionar tão bem e é muitas vezes a maneira mais rápida de encontrar documentação para uma dada classe .NET.
  3. Use a mesma abordagem a partir do exercício anterior.
  4. Siga as instruções do Compilando e # Programas de Execução C seção.
  5. Use o código do programa de exemplo C # a partir deste capítulo e mudar a mensagem impressa.
  6. Encontrar como usar o Console.Write () método.
  7. Use o Console.WriteLine () método.
  8. Descobre as funcionalidades são oferecidos pelo DateTime classe.
  9. Descobre as funcionalidades são oferecidos pelo Math classe.
  10. Tente aprender no seu próprio país como usar alças em C #. Você pode ler sobre para -loops no capítulo ” Loops “.
  11. Use os métodos Console.ReadLine () , int.Parse () e System.DateTime.AddYears () .
  12. Pesquisá-las na Internet (por exemplo, na Wikipedia ) e dar uma olhada mais de perto as diferenças entre eles. Você vai descobrir que C # é uma linguagem de programação, enquanto .NET Framework é a plataforma de desenvolvimento e tempo de execução para a execução de código .NET. Não deixe de ler a seção ” A linguagem C # ea Plataforma .NET ” forma neste capítulo.
  13. Descubra quais são os idiomas mais populares e examinar alguns exemplos de programas escritos neles. Compará-los com C #. Você pode dar uma olhada em C , C ++ , Java , C # , NET , PHP , JavaScript , Perl , Python e rubi .
  14. Primeiro baixe e instale JustDecompile ou ILSpy (mais informações sobre eles podem ser encontrados no ” Código Decompilation seção”). Depois de executar um deles, abrir arquivo compilado do seu programa. Ela pode ser encontrada no bin \ Debug subdiretório do seu projeto C #. Por exemplo, se seu projeto é nomeado TestCSharp e está localizado em C: \ Projects , em seguida, o assembly compilado (arquivo executável) do seu programa será o seguinte arquivo C: \ Projects \ TestCSharp \ bin \ Debug \ TestCSharp.exe .

Manifestações (código-fonte)

Faça o download dos exemplos de demonstração para este capítulo do livro: Introduction-to-Programming-Demos.zip .

Fórum de discussão

Comentar o livro e as tarefas no: fórum da Academia Software .

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

dezesseis + dezessete =