PROGRAMAÇÃODE COMPUTADORES I:C# LuizHenriqueC.Corêa INFORMAÇÃOECOMUNICAÇÃO
PROGRAMAÇÃODE COMPUTADORES I:C# LuizHenriqueC.Corêa INFORMAÇÃOECOMUNICAÇÃO
Autor Luiz Henrique C. Corrêa Profissional com mais de 5 anos de experiência em desenvolvimento de softwares. Especialista na plataforma.net, com a qual trabalha desde a versão.net 1.1 da Framework. Possui certificações da IBM (RUP), ITIL, além das MCP e MCTS da Microsoft. Entusiasta das Metodologias Ágeis. Revisão NT Editora e Figuramundo Projeto Gráfico NT Editora Editoração Eletrônica NT Editora e Figuramundo Capa NT Editora NT Editora, uma empresa do Grupo NT SCS Q2 - Bl. D - Salas 307 e 308 - Ed. Oscar Niemeyer CEP 70316-900 - Brasília - DF Fone: (61) 3421-9200 sac@grupont.com.br www.nteditora.com.br e www.grupont.com.br Programação de Computadores III: C#. / NT Editora. -- Brasília: 2014. 170p. : il. ; 21,0 X 29,7 cm. ISBN - 978-85-68004-71-5 1. Linguagem de Programação, Microsoft.NET, C#. Copyright 2014 por NT Editora. Nenhuma parte desta publicação poderá ser reproduzida por qualquer modo ou meio, seja eletrônico, fotográfico, mecânico ou outros, sem autorização prévia e escrita da NT Editora.
LEGENDA ÍCONES Prezado(a) aluno(a), Ao longo dos seus estudos, você encontrará alguns ícones na coluna lateral do material didático. A presença desses ícones o(a) ajudará a compreender melhor o conteúdo abordado e também como fazer os exercícios propostos. Conheça os ícones logo abaixo: Saiba Mais Esse ícone apontará para informações complementares sobre o assunto que você está estudando. Serão curiosidades, temas afins ou exemplos do cotidiano que o ajudarão a fixar o conteúdo estudado. Importante O conteúdo indicado com esse ícone tem bastante importância para seus estudos. Leia com atenção e, tendo dúvida, pergunte ao seu tutor. Dicas Esse ícone apresenta dicas de estudo. Exercícios Toda vez que você vir o ícone de exercícios, responda às questões propostas. Exercícios Ao final das lições, você deverá responder aos exercícios no seu livro. Bons estudos!
Sumário 1. A PLATAFORMA MICROSOFT.NET...7 1.1 O que é a Plataforma.NET?...7 1.2 Características da plataforma...8 1.3 Tecnologias disponíveis...9 1.4 A evolução da plataforma...9 1.5 Elementos fundamentais da framework... 12 2. A IDE MICROSOFT VISUAL STUDIO...19 2.1 Versões do Visual Studio 2010... 19 2.2 Baixando e instalando o Visual Studio Express Edition... 19 2.3 Conhecendo o Visual Studio Express Edition e entendendo o ambiente de programação... 20 2.4 Solution e projetos Solution Explorer... 22 2.5 Application Console... 23 2.6 A estrutura de um programa C# em Application Console... 24 2.7 Criando e executando nossa primeira aplicação... 24 3. NOÇÕES BÁSICAS DA LINGUAGEM C#...29 3.1 Um pouco de história... 29 3.2 Características da linguagem... 29 3.3 Declaração de variáveis... 30 3.4 Tipos primitivos do C#... 31 3.5 Palavras reservadas... 33 4. PROGRAMANDO EM C#...36 4.1 Estrutura de um programa em C#... 36 4.2 Entrada, processamento e saída de dados (conceito de sistemas)... 39 4.3 Desenvolvimento de software... 44 4.4 Estruturas de controle, decisão e repetição... 44 4.5 Laço for e a estrutura condicional switch case... 51 4.6 Enum... 57 4.7 Cast/Parse... 59 4 NT Editora
5. PROGRAMAÇÃO ORIENTADA A OBJETOS...64 5.1 Pensando em objetos... 65 5.2 Classe... 66 5.3 Objeto... 66 5.4 Herança... 67 5.5 Propriedades ou atributos... 67 5.6 Encapsulamento... 67 5.7 Modificadores de acesso... 68 5.8 Métodos e eventos... 68 5.9 Interfaces... 69 5.10 Classes abstratas... 69 5.11 Classes, métodos e propriedades estáticas (membro static)... 70 5.12 Sobrecarga de métodos... 70 5.13 Polimorfismo... 71 6. REFATORANDO O PROJETO...74 6.1 Mundo OO... 74 6.2 Exemplos OO da vida real... 74 6.3 Estudar OO é um longo caminho... 75 6.4 Entendendo os benefícios da OO e das boas práticas... 76 6.5 Arrumando a casa...... 76 6.6 Novo projeto, TelaLogin... 77 6.7 Colocando a classe TelaLoginEstruturada para funcionar... 78 6.8 O Princípio da responsabilidade dos métodos e objetos... 80 7. DESENVOLVENDO ORIENTADO A OBJETOS...83 7.1 Analisando a classe TelaLoginEstruturada... 83 7.2 Identificando nossas classes... 85 7.3 Classes de formulário... 89 7.4 Conclusão...101 Programação de Computadores III: C# 5
8. UM POUCO MAIS SOBRE O FRAMEWORK.NET...104 8.1 Classe Object...104 8.2 Tipos por valor e por referência (Value Types Reference Types)...106 8.3 Struct...107 8.4 Trabalhando com strings...108 8.5 Concatenando strings corretamente...111 8.6 Classe StringBuilder...112 8.7 Trabalhando com datas...113 8.8 Trabalhando com exceções...115 8.9 Tipos nullable...123 9. COLLECTIONS (COLEÇÕES)...129 9.1 Collections Interfaces...129 9.2 Arrays...130 9.3 Palavras reservadas usadas com collections...140 9.4 Collections especializadas...141 10. GENERICS...149 10.1 Boxing e unboxing...150 10.2 Coleções Generics...151 10.3 List<T>...151 10.4 Stack e queue...153 10.5 HashSet...155 10.6 SortedList...155 10.7 Dictionary...156 10.8 Criando suas próprias classes genéricas...156 10.9 Métodos Generics...157 10.10 Conclusão...158 11. PROGRAMANDO PARA WINDOWS COM C#...161 11.1 Introdução Windows Forms...161 11.2 Conceitos básicos de aplicações Windows Forms...162 11.3 Componentes...165 11.4 Eventos...167 BIBLIOGRAFIA...170 6 NT Editora
1. A PLATAFORMA MICROSOFT.NET Todo programa de computador precisa rodar em alguma plataforma. Um programa como o Word, por exemplo, roda na plataforma Windows. O Windows é um sistema operacional moderno, que possui diversos recursos nativos que os programadores podem usufruir para construir os seus programas, são as chamadas API s (http://pt.wikipedia.org/wiki/api). Para fazermos um paralelo mais simples de entender, o sistema operacional é como se fosse o terreno onde iremos construir a nossa casa. Sendo assim, a nossa casa seria o programa que será executado sobre o terreno (sistema operacional) Windows. Diante disso, podemos encarar o Windows como uma plataforma, pois além de abrigar o nosso programa, ele nos oferece recursos que facilitam a criação desses aplicativos. API s: Application Programming Interface NOTA: Neste curso usaremos as palavras sistema, programa e aplicativo como sinônimos. Ou seja, elas sempre representarão a mesma coisa, mesmo que em determinados contextos (fora deste nosso curso) elas tenham significados ligeiramente diferentes. Reprodução proibida. Copyright NT Editora. Todos os direitos reservados. 1.1 O que é a Plataforma.NET? Vamos ampliar o exemplo do terreno e da nossa casa para chegarmos ao entendimento do que significa a Plataforma.NET. Vamos imaginar que o terreno no qual nós queremos construir a nossa casa é bastante arenoso e acidentado. Então, para que a nossa casa possa subir de forma segura, foi necessário criar uma camada superior ao terreno, de forma que essa camada de terra e brita pudesse assentar melhor a nossa casa. Pronto, temos aí uma camada intermediária entre o terreno e a nossa casa. É mais ou menos isso que a Microsoft fez ao criar o.net. Trata-se de uma camada intermediária entre o programa que vamos construir e o sistema operacional. Essa camada intermediária é a Framework.NET, que é a plataforma na qual os nossos programas em C# irão rodar. Uma outra plataforma bem conhecida é a Java (da antiga SUN e atualmente da Oracle). O conceito de Java pode servir perfeitamente para explicar grande parte dos conceitos plataforma.net. Tanto a ideia da Sun ao criar o Java, quanto da Microsoft ao criar o.net era desenvolver uma plataforma intermediária ao sistema operacional. No caso do Java, essa plataforma intermediária (chamada de JVM Java Virtual Machine) possui versões para diversos sistemas operacionais. Essa estratégia é resumida no lema do Java: Write Once Run Anywhere (escreva uma vez e rode em qualquer lugar). Programação de Computadores III: C# 7
Ruby: Linguagem de programação interpretada multiparadigma, de tipagem dinâmica e forte, com gerenciamento de memória automático. Scala: Scalable Language ou mesmo Linguagem Evolutiva é uma linguagem de programação de propósito geral, diga-se multiparadigma, projetada para expressar padrões de programação comuns de uma forma concisa, elegante e type-safe. Conceitualmente com o.net ocorre a mesma coisa, porém a Microsoft não criou versões do.net para rodar em outros sistemas operacionais. Mesmo assim, existe uma iniciativa já bem difundida pela comunidade chamada Projeto Mono. Mono é um projeto que tem por objetivo justamente criar uma versão da Framework que rode no Linux. Vale dar uma olhada nesse projeto e acompanhar a sua evolução (http://www.mono-project.com/main_page). A grande diferença inicial das duas plataformas (Java e.net) é que o.net nasceu independente de linguagem, ao contrário do Java que nasceu independente de sistema operacional. Mas com a evolução das suas tecnologias, tanto o Java quanto o.net se adaptaram, e hoje o.net roda em mais plataformas (projeto Mono, mencionado anteriormente), e o Java já permite que mais linguagens sejam utilizadas na JVM, como Ruby e Scala. C# (a nossa linguagem alvo) é uma poderosa linguagem de programação que nos possibilita criar vários tipos de programas para as mais diversas necessidades. Ela é uma das muitas linguagens que pode rodar na Plataforma Microsoft.NET. Outros dois exemplos (de dezenas) de linguagens que rodam na Plataforma.NET é o VB.NET e o F#. No nosso curso, nós aprenderemos somente C#, que, ao lado do VB.NET, é a linguagem de programação mais utilizada na plataforma da Microsoft. Grande parte do poder do C# vem do seu ambiente de execução, que podemos resumir como sendo a Plataforma.NET. É sobre essa poderosa plataforma que os nossos programas serão executados. Por esse motivo, antes de começarmos a falar de C#, é preciso entender um pouco sobre a Plataforma.NET. E é por ela que começaremos a nossa viagem no mundo do C#. 1.2 Características da plataforma A Framework.NET é um completo e poderoso ambiente de execução de programas. Existem milhares de aplicativos construídos para essa plataforma. Alguns dos motivos do seu sucesso são: Um ambiente totalmente orientado a objetos Tudo dentro da plataforma.net foi construído sob o paradigma da orientação a objetos. Este curso apresentará, de forma não aprofundada, esse paradigma. Coleta automática de lixo (Garbage Collector) Em linguagens e plataformas mais antigas era responsabilidade do programador gerenciar o ciclo de vida dos objetos. A Framework.NET possui o Garbage Collector, que gerencia automaticamente o ciclo de vida dos objetos, evitando, assim, diversos problemas. Completa e robusta biblioteca de classes. A biblioteca de classes.net possui diversas classes que facilitam em muito a criação de nossas aplicações. Podemos ter em mente que, graças a framework, nunca começamos um sistema do zero. Uma plataforma independente de linguagem de programação. Podemos desenvolver em VB.NET, C#, F#, Cobol.NET, C++, Python, Ruby... está bom ou querem mais?! Perfeitamente possível de ser portável para outros sistemas operacionais Exemplo do projeto Mono que já comentamos. Reprodução proibida. Copyright NT Editora. Todos os direitos reservados. 8 NT Editora
Reprodução proibida. Copyright NT Editora. Todos os direitos reservados. 1.3 Tecnologias disponíveis Como já sabemos, a Plataforma.NET nos dá muitas opções para construirmos robustas aplicações que atenderão as mais variadas necessidades de nossos clientes. Alguns exemplos do que podemos criar com.net: Aplicativos de Console; Aplicativos Web; Aplicativos para servidores; Aplicativos Smart Client (celulares e PDA s); Aplicativos de banco de dados; Serviços Windows; Web Services e muito mais. Vamos comentar duas dessas tecnologias: ASP.NET É a tecnologia que possibilita ao desenvolvedor criar aplicativos WEB (Páginas Dinâmicas para Internet). O grande atrativo do ASP.NET é o desenvolvimento RAD (http://pt.wikipedia.org/ wiki/rapid_application_development). WindowsForms Tecnologia focada na criação de aplicativos para Windows (ex.: Cliente/Servidor). Segue a mesma linha de ferramentas como Visual Basic 6 e Delphi, porém totalmente renovada, fazendo uso de todo o universo da Framework.NET. Veremos, no final do curso, um exemplo de cada uma dessas duas tecnologias para incentivá-los a continuar os estudos na Plataforma.NET. Tenho certeza que gostarão do que irão ver. 1.4 A evolução da plataforma A primeira versão Beta da Framework foi lançada em 1999. Porém, somente em 2002, a versão 1.0 da.net Framework foi lançada. Essa primeira versão revolucionou o cenário de desenvolvimento de aplicativos no mundo. Na época, o Java estava em franca ascensão entre a preferência dos desenvolvedores para desenvolvimento de sistemas corporativos. Mas aliada a uma poderosa IDE (http:// pt.wikipedia.org/wiki/ambiente_de_desenvolvimento_integrado) o Microsoft Visual Studio, a Microsoft trouxe para o mundo do desenvolvimento WEB e Mobile a facilidade que sempre lhe rendeu destaque entre os fabricantes de ferramentas de desenvolvimento para plataforma Windows. Tudo isso resultou numa ampla e relativamente rápida aceitação de mercado, definindo a plataforma da Microsoft rapidamente entre as preferidas no desenvolvimento de sistemas, juntamente com Java e PHP. Hoje a Plataforma.NET já se consagra como uma das mais utilizadas no mundo. Esse fato devese principalmente à sua constante evolução. Você, que está entrando agora nesse fascinante mundo do Framework.NET, prepare-se, pois este curso é apenas o primeiro passo de uma longa, porém, divertida caminhada de estudos. Sem nos prender a detalhes, vamos dar uma rápida olhada na evolução da plataforma. RAD: Rapid Application Development ou Desenvolvimento Rápido de Aplicação é um modelo de processo de desenvolvimento de software interativo e incremental que enfatiza um ciclo de desenvolvimento extremamente curto. IDE: Integrated Development Environment ou Ambiente Integrado de Desenvolvimento é um programa de computador que reúne características e ferramentas de apoio ao desenvolvimento de software com o objetivo de agilizar esse processo. Programação de Computadores III: C# 9
A versão atual da Framework é a 4.0, sendo que ainda temos muitas empresas utilizando amplamente versões anteriores (2.0 e 3.5 principalmente). Apesar de trabalharmos com as últimas versões da IDE e da Framework, o objetivo deste nosso curso é a linguagem de programação C#, sem nos atentarmos a detalhes de versões. Dessa forma, você estará apto a trabalhar com todas as versões (da 2.0 até a 4.0). Esse foco inicial na linguagem é necessário e vai fazer com que você consiga ter uma base sólida para enfrentar todos os desafios que essa plataforma nos apresenta. Afinal de contas, quanto mais alto desejarmos ir, mais sólidas devem ser as nossas bases, não é mesmo? Atenção! Não se apavore com a figura a seguir... ela resume (sim, isso mesmo, resume!) todas as tecnologias existentes na plataforma.net (versões 3.5 e 4.0). Reprodução proibida. Copyright NT Editora. Todos os direitos reservados. 10 NT Editora
Reprodução proibida. Copyright NT Editora. Todos os direitos reservados. Programação de Computadores III: C# 11
E então? Gostaram da sopa de letrinhas? Agora deu pra entender melhor onde estamos nos metendo? Vamos tentar esclarecer as coisas: Olhando a figura da versão 4, nós temos na base da figura o.net Framework 2.0 e 3.0. Significa que tudo que está construído na plataforma tem como base a framework. É na framework que encontramos os elementos básicos da plataforma. Para entendermos a fundo os elementos da framework seria necessário um curso específico totalmente focado nela. São inúmeros detalhes tecnológicos que estão muito além do escopo deste curso. Mas não se preocupe muito com esses detalhes nesse primeiro momento, eles são, sim, importantes, mas ao longo das suas experiências com desenvolvimento de aplicativos nessa plataforma, você encontrará motivação para estudar, quando necessário, mais a fundo a framework. É bem verdade que esse estudo mais aprofundado fará de você um melhor desenvolvedor (sempre procure aprender mais e mais sobre seu trabalho), mas dar um passo de cada vez é tão importante quanto se aprofundar nos estudos. 1.5 Elementos fundamentais da framework MSIL (Microsoft Intermediate Language) MSIL ou IL é a linguagem intermediária. Estão lembrados que comentamos que a plataforma.net é independente de linguagem? Pois então, é a MSIL que permite essa mágica. Na verdade, todo código gerado por nós em C# no Visual Studio transformar-se-á numa outra linguagem, que a framework entende, chamada de MSIL ou simplesmente IL. Independentemente da linguagem que você escrever seu programa, quando compilada, será gerada a IL. Mas repare que não é qualquer linguagem que pode ser compilada em.net. Ela deve aderir às especificações da CLS e CTS (comentadas adiante) e só então a linguagem pode ser nomeada como XYZ.NET, assim como Python.NET, Cobol.NET etc. CLS (Common Language Specification) Define (especifica) um conjunto de regras padrão que as linguagens devem implementar para serem executadas pelo CLR. Seguindo essas especificações, podemos criar linguagens para a plataforma.net. A CLS define, entre muitas outras coisas, o que a linguagem deve ter para que o CLR possa gerar a IL. CTS (Common Type System) O CTS é o conjunto comum dos tipos de dados da framework. Mesmo existindo várias linguagens de programação disponíveis para.net, todas elas compartilham um mesmo Sistema de Tipos Comuns. Reprodução proibida. Copyright NT Editora. Todos os direitos reservados. 12 NT Editora
A Plataforma.NET é totalmente orientada a objetos. Todos os tipos de dados existentes derivam (herança) da Classe System.Object. Mais adiante, no nosso curso, vamos estudar sobre orientação a objetos, assunto imprescindível para que possamos desenvolver em C# (na verdade, em qualquer linguagem moderna!). Porém, o importante nesse ponto é saber que assim como todo código escrito em.net será transformado em IL, todas as linguagens que são executadas em.net acessam o mesmo conjunto de tipos. CLR (Common Language Runtime) Podemos encarar o CLR como o coração da framework, pois é o ambiente de execução das aplicações.net. O CLR cuidará do gerenciamento de memória por meio do Garbage Collector, além de outros detalhes importantes, mas não necessários para nós neste momento. O CLR em ação:.net PE file Class Loader Verifier JIT Managed Native Code JIT Compilers Reprodução proibida. Copyright NT Editora. Todos os direitos reservados. Assembly Toda aplicação.net, quando compilada, é armazenada fisicamente numa unidade denominada Assembly. Podemos ter na nossa aplicação uma ou mais assemblies, as quais são representadas no sistema de arquivos do sistema operacional na forma de arquivos executáveis de extensão.exe ou na forma de uma biblioteca de ligação dinâmica, mais conhecida como DLL, de extensão.dll. Podemos definir as assemblies como o produto final do nosso trabalho em.net. Metadados ou METADATA CLR s Virtual Execution Engine Todo o programa contém informações que são essenciais para o sistema operacional e até mesmo para outros programas. No Sistema Operacional Windows, os programas armazenam essas informações no registro do Windows. Apesar de os nossos programas, feitos em.net, rodarem em Windows, não os desenvolvemos para esse sistema operacional, mas, sim, para a plataforma.net. Sendo assim, as informações dos nossos programas são armazenadas em metadados e não diretamente no registro do Windows. Programação de Computadores III: C# 13
Mas que informações são essas? Descrição dos tipos (classes, estruturas, tipos enumerados, etc.) usados na aplicação, podendo esta ter sido gerada em forma de DLL ou executável. Descrição dos membros (propriedades, métodos, eventos, etc.) Descrição de cada unidade de código externo (assembly) usada na aplicação e que é requerida para que esta execute adequadamente. Resolução de chamada de método. Resolução de versões diferentes de uma aplicação. Outra coisa muito importante nas aplicações.net é que mesmo duas aplicações sendo homônimas, elas convivem normalmente no mesmo ambiente. Isto acontece porque a METADATA contém a versão de cada um, evitando o conflito entre as aplicações. A CLR procura na METADATA a versão correta da aplicação a ser executada. PE (Portable Executable Executável Portável) Por meio do PE, o código fonte gerado em.net poderá ser interpretado (executado) em qualquer plataforma que tenha suporte.net, sem necessidade de recompilação da fonte. Compilação JIT (Just in Time) O compilador JIT, também conhecido como JITTER, converte as instruções da IL para instruções específicas da arquitetura do processador, onde a aplicação.net está sendo executada. Existem três tipos de JITTER: Pre-JIT: Compila de uma só vez todo o código da aplicação.net que está sendo executado e o armazena no cache para uso posterior; Econo-JIT: Utilizado em dispositivos móveis em que a memória é um recurso precioso. Sendo assim, o código é compilado sob demanda e a memória alocada, que não está em uso, é liberada quando o dispositivo assim o requer; Normal-JIT: Compila o código sob demanda e joga o código resultante em cache, de forma que esse código não precise ser recompilado quando houver uma nova invocação do mesmo método. Source Code Antes da instalação ou na primeira vez que cada método é chamado Compilação Language Compiler Native Code Execução Code Metadata JIT Compiler Reprodução proibida. Copyright NT Editora. Todos os direitos reservados. 14 NT Editora
GC (Garbage Collector Coletor de Lixo) Durante muito tempo, desenvolvedores de software lutaram arduamente para manter os seus programas limpos. Isso significa tratar do gerenciamento de memória usada pelos seus sistemas. Essa é uma atividade bastante onerosa e foco de muitos problemas de bugs nas aplicações. Hoje, para a maioria dos desenvolvedores, gerenciar memória não é mais uma preocupação central. Deixe que o.net cuide disso pra você! O GC é um item muito valioso para os desenvolvedores.net, pois é ele quem cuida de todo o gerenciamento de memória dos nossos programas. Quando uma área de memória não está mais em uso, o GC trata de liberá-la. Porém, não é por existir o GC que nós não iremos nos preocupar com a memória alocada pelo nosso sistema. Existem algumas técnicas importantes que precisamos adotar para que tenhamos sistemas otimizados e mais performáticos. BCL (Base Classe Library Biblioteca de Classe Base) A Biblioteca de Classes.NET possui um incrível numero de classes que ajudam no nosso trabalho diário como desenvolvedores. Classes que trabalham com rede, banco de dados, formulários e tudo mais que é necessário para desenvolvermos uma aplicação completa e robusta encontramos na BCL. As classes da BCL estão organizadas em namespaces. Podemos entender os namespaces como as pastas que usamos no Windows Explorer para armazenar e organizar os nossos arquivos. Quando criamos as nossas classes, podemos (não só podemos, como DEVEMOS) organizá-las em namespaces. Dessa forma, estamos definindo o empacotamento das nossas classes, que facilitará na organização do nosso sistema. Dentro da BCL encontramos diversos namespaces, dentre os quais podemos destacar: Namespaces principais: System: Contém algumas classes de baixo nível usadas para trabalhar com tipos primitivos, operações matemáticas, gerenciamento de memória, etc. Reprodução proibida. Copyright NT Editora. Todos os direitos reservados. System.Collections: Contém pilhas, filas e listas encadeadas. System.Data, System.Data.Common; System.Data.OleDb; System.Data.SqlClient: Acesso à base de dados. Aqui também se encontra o ADO.NET System.Diagnostics: Log de Event, medição de performance, gerenciamento de processos, depuração, etc. System.Drawing e namespace derivados: A.NET oferece uma biblioteca de componentes para trabalhar com gráficos, chamadas GDI+, que se encontra nesse namespace. Programação de Computadores III: C# 15
System.IO: Biblioteca para lidar com entrada e saída, gerenciamento de arquivos, etc. System.NET: Bibliotecas para programação de redes, sockets, etc. System.Reflection: Biblioteca necessária para gerar código em tempo de execução, descobrir tipo de variáveis, etc. System.Security: Criptografia, permissão e todo o suporte referente à segurança. System.Threading: Biblioteca para aplicações multithread. System.Web: Biblioteca sobre tudo relacionado a Web, como Webservices, ASP.NET, etc. System.Windows.Forms: Bibliotecas para o desenvolvimento de aplicações Windows tradicionais. System.XML: Biblioteca que permite a interação com documentos XML. Parabéns, você finalizou esta lição! Agora responda às questões ao lado. Exercícios Questão 01 Qual das alternativas abaixo é uma implementação OpenSource que se propõe a portar a plataforma.net para outros sistemas operacionais tal como o Linux? a) Projeto JVM. b) Projeto Mono. c) Projeto Class Library. d) Projeto Console Application. Questão 02 Sobre a plataforma.net, é correto afirmar: a) é independente de Linguagem; b) a linguagem usada para desenvolvimento é somente C#; c) é nativamente independente de Sistema Operacional; d) trabalha apenas com as linguagens VB.NET e C#. Reprodução proibida. Copyright NT Editora. Todos os direitos reservados. 16 NT Editora
Questão 03 Quel a característica da plataforma.net tem por objetivo limpar as referências de objetos que não estão mais sendo utilizados? a) Fracamente tipada. b) Coleta Automática de Lixo (Garbage Collector). c) Destruição automática dos objetos instanciados. d) Uso mais eficiente das referências de memória não usadas. Questão 04 Qual dessas linguagens pode ser utilizada para desenvolver sistemas na plataforma.net? a) Visual Basic.NET. b) COBOL.NET. c) C#. d) Todas as anteriores. Questão 05 Qual das tecnologias abaixo da plataforma.net possibilita ao desenvolvedor criar aplicativos WEB (páginas dinâmicas para Internet)? a) ASP.NET. b) ASP. c) PHP. d) Silverlight. Reprodução proibida. Copyright NT Editora. Todos os direitos reservados. Questão 06 Qual das tecnologias abaixo da plataforma.net é focada na criação de aplicativos para Windows (ex.: Cliente/Servidor) e segue a mesma linha de ferramentas como Visual Basic 6 e Delphi? a) Web Forms. b) Windows Forms. c) ASP.NET. d) WCF. Questão 07 Qual das siglas abaixo representa parte da estrutura dos elementos fundamentais da plataforma/framework.net? a) IIS. b) C#. c) WPF. d) CLR. Programação de Computadores III: C# 17
Questão 08 Qual dos elementos abaixo pode ser considerado o mais importante dentro da plataforma.net? a) IIS. b) C#. c) WPF. d) CLR. Questão 09 A menor unidade de execução dentro da plataforma.net é o: a) CLR; b) MSIL; c) JIT; d) assembly. Questão 10 A responsabilidade de compilar os arquivos de um programa feito em.net para a linguagem intermediária é: a) CLR; b) assembly; c) JIT; d) IIS. Reprodução proibida. Copyright NT Editora. Todos os direitos reservados. 18 NT Editora