Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROGRAMAÇÃO APLICADA MICROSOFT .NET USANDO C# EDIÇÃO Nº 1 - 2007 LAÉRCIO DA CRUZ LOUREIRO ___________________________________________________________________ Apoio Gestão e Execução Conteúdo e Tecnologia Programação Aplicada – Microsoft .NET usando C# 2 SOCIESC – Sociedade Educacional de Santa Catarina Apresentação Este livro didático contém a disciplina de Programação Aplicada com Microsoft .NET. O conteúdo apresentado oferece um amplo conjunto de informações sobre os métodos de programação, que foram apresentados nos cursos anteriores, e agora serão aplicados a uma tecnologia particular. A programação para o sistema operacional Windows é favorecida com o uso do Microsoft .NET (fala-se “dót net” ou “ponto net”) e o objetivo deste curso é apresentar os conceitos disponíveis nesta plataforma de desenvolvimento, permitindo ao aluno construir sistemas usando uma das principais linguagens utilizadas em .NET: a C# (fala-se “cê charp”). É um assunto extremamente atual, principalmente diante do grande volume de empresas desenvolvedoras de software, que estão aderindo à plataforma .NET. Por isso, procuramos manter um conteúdo alinhado com as necessidades do mercado, seguindo informações que foram coletadas com empresas de mercado. Além disso, o conteúdo segue as orientações e práticas que são sugeridas pela Microsoft, através de seus sites, livros e artigos. Diante disso, estamos apresentando uma abordagem adequada para os desafios que o programador precisa superar, utilizando-se como apoio as tecnologias envolvidas com a plataforma .NET, e também buscamos manter uma linguagem acessível para programadores iniciantes e que precisam entender com segurança os tópicos que compõem os assuntos tratados. É importante ressaltar que o livro foi desenvolvido com o objetivo de oferecer um aprendizado independente, inerente aos estudos do EAD, e o conteúdo foi revisado com o intuito de oferecer uma linguagem simples, objetiva e estimulante. Lembre-se de que a sua passagem por esta disciplina será também acompanhada pelo Sistema de Ensino Tupy Virtual, seja por correio postal, fax, telefone, e-mail ou Ambiente Virtual de Aprendizagem. Programação Aplicada – Microsoft .NET usando C# 3 SOCIESC – Sociedade Educacional de Santa Catarina Sempre entre em contato conosco quando surgir alguma dúvida ou dificuldade. Toda a equipe terá a maior alegria em atendê-lo, pois a sua aquisição de conhecimento nessa jornada é o nosso maior objetivo. Acredite no seu sucesso e bons momentos de estudo! Equipe Tupy Virtual. Programação Aplicada – Microsoft .NET usando C# 4 SOCIESC – Sociedade Educacional de Santa Catarina SUMÁRIO CARTA DO PROFESSOR......................................................................................... 5 CRONOGRAMA DE ESTUDOS ............................................................................... 7 PLANO DE ESTUDOS ............................................................................................. 8 AULA 1 - INTRODUÇÃO À PLATAFORMA .NET…………………………………….. 9 AULA 2 - VISUAL STUDIO EXPRESS………………………………………………… 26 AULA 3 - TRABALHANDO COM VARIÁVEIS EM C#............................................. 47 AULA 4 - CONTROLE DE FLUXO EM C#............................................................... 65 AULA 5 - PROGRAMAÇÃO ORIENTADA A OBJETOS EM C#............................. 76 AULA 6 - TÉCNICAS DE OOP USANDO C#........................................................... 88 AULA 7 - APLICAÇÕES WINDOWS FORMS……………………………………….. 104 AULA 8 - BANCO DE DADOS COM C# ……………………………………………... 132 Programação Aplicada – Microsoft .NET usando C# 5 SOCIESC – Sociedade Educacional de Santa Catarina Carta do Professor “A transição para a .NET é tão dramática quanto o movimento de transição do MS-DOS para Windows. Os programadores são fundamentais para este esforço, porque eles irão construir as soluções que irão guiar os usuários para uma nova era da verdadeira computação distribuída na Internet. ” (Bill Gates no lançamento da Plataforma .NET, 2000). Prezado aluno, Em 2000, a Microsoft lançou uma iniciativa para a criação de uma nova geração de sistemas, a qual iria unificar a computação com a comunicação de dados através de um caminho revolucionário. Foi a divulgação de uma visão, como a fabricante procura reforçar. Na verdade, a Microsoft demorou para aderir à “onda” que a Internet na época estava gerando, principalmente no impacto cultural que os usuários de computadores estavam percebendo. Quando a Microsoft lançou o Windows 95 e o Internet Explorer, sistema operacional e navegador respectivamente, foi o primeiro passo no sentido de uma resposta direcionada para as empresas que, na época, estavam liderando a “onda” da Internet. Naquele período, a Netscape era a grande alavanca para uma nova experiência dos usuários no uso da Internet, e ela até hoje é reconhecida como a precursora das tecnologias que usamos na atualidade. Após esse período, a Internet nunca mais deixou de ser uma “arena” de constantes inovações e grandes competições, onde os fabricantes de software buscam cada vez mais determinar e conduzir as oportunidades de negócios que a “grande rede” oferece. O mundo atual é um lugar diferente do que há 10 anos atrás. Segundo Friedman (2005), a partir do ano 2000, os fabricantes de software engendraram plataformas com base nas quais o trabalho e o capital intelectuais poderiam ser realizados de qualquer parte do globo. Tornou-se possível fragmentar projetos e transmitir, distribuir, produzir e juntar de novo as suas peças, usando a mesma Programação Aplicada – Microsoft .NET usando C# 6 SOCIESC – Sociedade Educacional de Santa Catarina abordagem da componentização de processos industriais baseados nos modelos de Ford e da Toyota. É neste contexto que a plataforma .NET nasce. É a proposta da Microsoft para suportar a dinâmica que os complexos processos de negócios estavam empregando e exigindo um nível de componentização dos sistemas, completamente baseados na Internet. Nesta apostila, procuro apresentar-lhe os fundamentos desta iniciativa, com ênfase no desenvolvimento de sistemas baseados em .NET usando a linguagem C#, que também foi lançada pela Microsoft, em 2002, junto com a nova versão do software para desenvolvedores, chamada Visual Studio .NET. Cabe ressaltar que a linguagem C# também foi um movimento de resposta da Microsoft que, utilizando-se de todas as propostas tecnológicas da plataforma .NET, baseou-se na sintaxe da Linguagem C, da C++ e do Java, para competir com o próprio Java, diante de sua ampla adesão pelos desenvolvedores. Ela também oferece suporte completo à programação orientada a objetos e recursos para a construção de sistemas para a Internet, de forma segura, rápida e poderosa. Observe que é um assunto extenso. Este módulo tem por finalidade lhe oferecer fundamentos para construir sistemas, sem contudo esgotar o assunto. Leia. Pratique. Exercite. Reflita. Discuta com seus colegas. Corrija. E renove. Mantenha estas atividades como parte de seus trabalhos neste curso. Permanece aqui a recomendação de que a programação de computadores é uma tarefa que exije dedicação e muita prática. Finalmente, reitero minha expectativa em apoiar você em mais um passo de seu conhecimento no desenvolvimento de software. Mantenha-se motivado a continuar seus estudos, pois, à medida que os tópicos são revelados, um mundo novo de oportunidades abre-se para você. Desejo-lhe bons estudos e aproveite esta oportunidade.Professor Laércio da Cruz Loureiro Programação Aplicada – Microsoft .NET usando C# 7 SOCIESC – Sociedade Educacional de Santa Catarina Cronograma de Estudos Acompanhe no cronograma abaixo os conteúdos das aulas, e atualize as possíveis datas de realização de aprendizagem e avaliações. Semana Carga horária Aula Data / Avaliação 1 20 Introdução à Plataforma Microsoft .NET _/_ a _/_ 14 Visual Studio Express _/_ a _/_ 2 14 Trabalhando com Variáveis em C# _/_ a _/_ 10 Controle de Fluxo em C# _/_ a _/_ 3 12 Introdução OOP usando C# _/_ a _/_ 12 Técnicas de OOP usando C# _/_ a _/_ 4 22 Aplicações Windows Forms _/_ a _/_ 6 16 Banco de Dados com C# _/_ a _/_ Programação Aplicada – Microsoft .NET usando C# 8 SOCIESC – Sociedade Educacional de Santa Catarina Plano de Estudos Ementa Introdução à plataforma Microsoft .NET. Visual Studio Express. Orientação a objetos usando C#. Sintaxe da linguagem C#. Desenvolvimento de sistemas usando banco de dados. Soluções usando ASP.NET Objetivo Geral • Entender as vantagens do uso da plataforma Microsoft .NET e desenvolver sistemas usando a linguagem C#. Específicos • Descrever os componentes da plataforma .NET; • Construir programas orientados a objetos usando a linguagem C#; • Conhecer e desenvolver programas usando a sintaxe de comandos da linguagem C#; • Utilizar recursos de banco de dados em sistemas .NET; • Conhecer os elementos básicos para a construção de sistemas para a Internet usando a plataforma .NET. Carga Horária: 120 horas/aula. Programação Aplicada – Microsoft .NET usando C# 9 SOCIESC – Sociedade Educacional de Santa Catarina Aula 1 INTRODUÇÃO À PLATAFORMA .NET Objetivos da aula Ao final desta aula, você deverá ser capaz de: � Identificar os objetivos da plataforma .NET; � Enumerar as vantagens na utilização da plataforma .NET; � Descrever os componentes da plataforma .NET; � Utilizar linguagens disponíveis baseadas em .NET. Conteúdos da aula Acompanhe os assuntos desta aula, se preferir, após o seu término, assinale o conteúdo já estudado. � A Internet e as aplicações distribuídas; � A evolução tecnológica; � Ilhas de informações; � Reuso, OOP e Web Services; � O que é a plataforma .NET? � Componentes da plataforma; � .NET Framework; � As linguagens para .NET Programação Aplicada – Microsoft .NET usando C# 10 SOCIESC – Sociedade Educacional de Santa Catarina Prezado(a) aluno(a)! Muitos fatores influenciaram a criação da plataforma .NET. O mais relevante, com certeza, foi a Internet. O uso cada vez maior da Internet para realizar novas formas de negócios, bem como, a transformação de métodos atuais de negócios, em outros métodos através da Internet, impulsionam inovações no segmento de desenvolvimento de software. Além disso, como segundo elemento forte que influenciou o surgimento do .NET foi a convergência digital. Basicamente, esse tema refere-se à união do telefone, do computador, da TV, do rádio, da música, do celular e outras tecnologias, um único dispositivo. A convergência digital exige dos sistemas atuais recursos como multiplataforma, escalabilidade, suporte a múltiplos idiomas, alta capacidade de processamento de dados, etc., ou seja, as tecnologias devem suportar novas formas para construir sistemas. Nesta aula, você conhecerá os vários aspectos que envolvem a plataforma .NET, incluindo seus componentes, aspectos de negócios que a influenciaram e suas aplicações, além de compreender as várias alternativas disponíveis para seu uso. Boa Aula! 1 A INTERNET E AS APLICAÇÕES DISTRIBUÍDAS Fatores como a globalização e as constantes mudanças nas regras de negócios obrigaram as empresas modernas a se tornarem altamente distribuídas. Como conseqüência, é crescente o número de escritórios remotos espalhados no país ou no mundo. Por isso, proporcionalmente a novos modelos de negócios e gestão, as empresas necessitam de informações e tecnologias que estejam disponibilizadas aos seus funcionários em escritórios remotos, hotéis e residências, e que às vezes estão conectados ou não, trabalhando em condições off-line. As aplicações distribuídas oferecem os recursos necessários para atender às demandas atuais das empresas, aderindo aos movimentos de descentralização e reduzindo as possíveis dificuldades de comunicação que naturalmente podem ocorrer. Programação Aplicada – Microsoft .NET usando C# 11 SOCIESC – Sociedade Educacional de Santa Catarina Quando falamos em aplicações distribuídas, precisamos considerar três elementos essenciais: comunicação de dados, interface com o usuário e regras de negócios flexíveis. A comunicação de dados uniforme foi resolvida com a Internet, considerando que, por um meio comum de comunicação, o protocolo TCP/IP, usuários e empresas podem comunicar-se independente das particularidades de seus dispositivos de hardware ou software (figura 1). Atualmente, a independência de equipamentos físicos é ainda mais favorecida por padrões que estão suportando a convergência digital, permitindo que um celular possua recursos para a execução de um sistema, enquanto mantém seus princípios básicos. Figura 1 – Exemplo de Comunicação de Dados baseada na Internet A interface com o usuário também foi resolvida com a Internet, pois todo usuário utiliza um mesmo software, o navegador. Além disso, o navegador possui padrões de apresentação de dados que são aceitos mundialmente, o que também permite uma mesma página ser visualizada independente de dispositivo físico ou software. A HTML, as linguagens scripts, as imagens, etc. compõem a apresentação de dados,e também permitem a interação com o usuário, através de formulários, com possibilidade de preenchimento de dados. Confira na figura 2 o que acabamos de explanar. Programação Aplicada – Microsoft .NET usando C# 12 SOCIESC – Sociedade Educacional de Santa Catarina Figura 2 – Exemplo de formulário em HTML para a Internet O que faltava na Internet era um modelo de programação de sistemas, utilizando-se das tecnologias mais atuais disponíveis, com o objetivo de construir sistemas flexíveis e robustos baseados na Internet, explorando os padrões que já foram estabelecidos pela “grande rede”. Assim, surgiram os conceitos de Aplicações Distribuídas baseadas na Internet, fazendo com que os sistemas sejam “particionados” em várias camadas e cada camada seja processada de forma distribuída entre vários elementos da solução. Além disso, a adoção de efetivas técnicas de programação orientada a objetos (OOP), permitiu a construção de sistemas flexíveis, com capacidade de adaptação dinâmica das regras de negócios (figura 3). Figura 3 – Exemplo de uma aplicação distribuída na Web Programação Aplicada – Microsoft .NET usando C# 13 SOCIESC – Sociedade Educacional de Santa Catarina 2 A EVOLUÇÃO TECNOLÓGICA Um outro conjunto de elementos deve ser considerado como parte da necessidade que a plataforma .NET desejava atender em seu lançamento e atualmente fornece as capacidades para sua realização. Por exemplo, a evolução tecnológica dos microprocessadores e dos circuitos de memória RAM, que estão cada vez mais poderosos e baratos, permitiram que poderosas funcionalidades fossem construídas. Além disso,sua capacidade de atendimento a grande volume de transações e dados, ao contrário do que podia se esperar, não houve a necessidade de um alto investimento em hardware. O aumento na disponibilidade da largura de banda nas conexões para a Internet, com preços baixos, também viabilizou uma infra-estrutura que permite maior riqueza nas aplicações distribuídas e mantém um nível de performance necessário para os usuários. Como exemplo, podemos citar a popularização das conexões com a Internet usando a tecnologia ADSL. Os sistemas operacionais também fornecem recursos importantes para as aplicações distribuídas, já que novos aplicativos transacionais, com recursos de segurança integrados e otimizações para atender determinadas funcionalidades, favorecem a uma performance e construção dos sistemas. Finalmente, padrões tecnológicos como a linguagem XML, protocolos que constituem os Web Services e novas versões da linguagem HTML, permitiram aplicações distribuídas flexíveis, ricas e padronizadas. 3 ILHAS DE INFORMAÇÕES A Microsoft percebeu que um grande volume de informações e usuários vive de forma independente em uma empresa, criando “ilhas de informações” corporativas e não interagem entre si, perdendo oportunidades para aumentar a velocidade das transações do negócio ou para auxiliar na formação de uma inteligência competitiva. Diante disso, através da plataforma .NET e utilizando-se de padrões de mercado, abordam-se os conceitos de integração de dados e interoperabilidade de aplicações, ou seja, disponibilizam-se componentes programados que permitam a sua integração e forneçam meios fáceis para um relacionamento interdependente. Programação Aplicada – Microsoft .NET usando C# 14 SOCIESC – Sociedade Educacional de Santa Catarina Podemos considerar nesse contexto, um exemplo clássico nas aplicações em geral: o uso de listagem e verificação de CEP, para um determinado cadastro. Na grande maioria dos sistemas administrativos, temos um cadastro de clientes e, por padrão, temos um campo de armazenamento de dados do CEP. A questão que o usuário apresenta: como posso validar a existêcia do CEP digitado, para garantir que os envios de correspondências de cobrança cheguem com sucesso ao seu destino? No passado, a grande maioria dos programadores criava (ou ainda cria, por falta de conhecimento, ou limite da tecnologia envolvida) um cadastro de CEP na sua aplicação, para o usuário armazenar os endereçamentos de CEP disponíveis em uma lista pública dos Correios Brasileiros. Problemas com esse tipo de solução: • O usuário precisa realizar um grande esforço para armazenar todos os endereços de CEP na aplicação; • A dificuldade em manter o cadastro atualizado, devido a possíveis mudanças que os Correios Brasileiros aplicam no Código de Endereçamento Postal. Imagine, uma agência dos Correios possui a lista completa de endereços de CEP de todo o Brasil e os recursos necessários para mantê-la 100% atualizada. Temos então, nesse cenário, as ilhas de informações, onde uma empresa precisa “duplicar” os dados de CEP para que se consiga atingir os requisitos de seu negócio. Enquanto isso, as agências do Correios possuem todas as informações atualizadas. Hoje, esse problema está resolvido, pois os Correios Brasileiros “publicaram” um serviço que permite uma “aplicação” baseada em componentes distribuídos, podendo coletar informações de CEP, de acordo com parâmetros documentados. Esse serviço publicado na Internet, na forma de componente de aplicação, chama-se Web Service. 4 OOP, REUSO E WEB SERVICES Programação Aplicada – Microsoft .NET usando C# 15 SOCIESC – Sociedade Educacional de Santa Catarina O uso da programação orientada a objetos, conforme você já aprendeu, permite a reutilização de procedimentos e rotinas de um determinado sistema, de forma elegante e segura, ou seja, podemos reutilizar código de programação como parte de nosso esforço de construção do programa. Nesse conceito de reuso, surgiu a tecnologia chamada de Web Service. Um Web Service é uma solução para a integração de soluções de software, utilizando-se de padrões estabelecidos mundialmente, cuja finalidade é sua publicação na Internet para reuso. O formato dos dados que são trafegados entre os Web Services, estão em XML (eXtensible Markup Language) e o protocolo de comunicação entre os componentes de uma solução é o SOAP. Podemos então resumir que um Web Service é um componente programável que pode ser acessado através de protocolos padrões na Internet. A plataforma .NET utiliza largamente os recursos de Web Services, como base de sua arquitetura para suportar aplicações distribuídas. Com base na tecnologia da Web Services, surgiu uma nova abordagem na construção de software: o software orientado a serviços. Essa orientação é uma forma de construção de sistemas, cujo principal objetivo é o reuso através de Web Services internos e externos na empresa, mantendo padrões abertos para permitir a integração de diferentes plataformas e tecnologias. A esse novo método de engenharia de software aplicou-se o termo SOA (Service Oriented Architecture), em português, Arquitetura Orientada a Serviços (figura 4). Figura 4 – Exemplo da comunicação usando SOA Conforme definiu Earl (2005), a orientação a serviços fornece uma visão ideal do mundo, no qual os recursos são claramente particionados e consistentemente representados. Quando aplicada em software, a orientação a serviços estabelece um modelo universal no qual a automação da lógica e as regras de negócios estão de acordo com essa visão. Programação Aplicada – Microsoft .NET usando C# 16 SOCIESC – Sociedade Educacional de Santa Catarina Para que você possa entender melhor esse conceito, vamos considerar a construção de um sistema que possui um conjunto de sub-rotinas. Como você já aprendeu, a modularização do código na programação estruturada e o uso de classes na programação orientada a objetos fornecem o meio para um programa “particionado”, com isso, permite um reuso de funcionalidades. Cada função, sub-rotina ou classe, pode ser “traduzida” em um Web Service e pode ser publicada para uso nas diversas aplicações que a utilizam. A grande diferença é que você retira o código de programação do seu sistema e o Web Service pode ter vida própria, com manutenções e melhorias independentes do programa que a utiliza. Observe a figura 5. Figura 5 – Possibilidades de conversão de rotinas orientadas a serviços 5 O QUE É A PLATAFORMA .NET? FONTE: adaptado de Earl, 2005 Programação Aplicada – Microsoft .NET usando C# 17 SOCIESC – Sociedade Educacional de Santa Catarina Os tópicos apresentados até o momento nos fornecem os elementos que influenciaram a Microsoft na construção da plataforma .NET. Então, o que é a plataforma .NET? A .NET é uma iniciativa da Microsoft para suportar uma estratégia no uso de Web Services usando um conjunto integrado de tecnologias e soluções, com o objetivo de fornecer uma abordagem completa e coesa de disponibilização de soluções para as empresas. Segundo Platt (2003), a .NET é uma infra-estrutura pré-construída para resolver problemas das aplicações para a Internet. O autor defende que é somente um grande conjunto de tecnologias e nada mais. Porém, a Microsoft procura afirmar que a .NET oferece um grande avanço na forma como as pessoas trabalham e por isso, a fabricante de software acredita que há uma proposta de mudança no paradigma de como os negócios são conduzidos usando .NET. 6 COMPONENTES DA PLATAFORMA A Microsoft distribuiu as várias funcionalidades da plataforma .NET em componentes. Cada componente possui características particulares,finalidades específicas e total integração entre eles. Vamos conhecer cada um deles: • Ambiente de execução de aplicações, .NET Framework: é um conjunto de recursos instalados no computador, com o objetivo de permitir a execução de programas construídos para .NET. Seu principal objetivo é fornecer ao programador bibliotecas de classes para reuso, a execução controlada e administrada de programas e facilidades para a disponibilização da solução construída. Os programas e seus componentes são executados sobre o .NET Framework; • Conjunto de serviços utilizando uma infra-estrutura de software servidores: a Microsoft reuniu todos os seus produtos utilizados como software servidores e estabeleceu total compatibilidade dos serviços de cada um desses produtos, com a plataforma .NET. A esse conjunto de produtos batizou-se “Windows Server System”; • .NET Building Blocks: são representados por um conjunto de serviços pré-construídos para acelerar o processo de construção de sistemas. O exemplo mais comum é o Microsoft Passport (agora também conhecido Programação Aplicada – Microsoft .NET usando C# 18 SOCIESC – Sociedade Educacional de Santa Catarina como Windows Live ID - figura 6), que fornece serviços de autenticação de usuários e que pode ser utilizado na construção de sistemas, liberando o programador do trabalho de construir uma rotina específica para a autenticação de usuários; Figura 6 – Página do Windows Live ID • Visual Studio .NET: é a ferramenta fornecida pela Microsoft para a construção de sistemas para a plataforma .NET. Com esse produto, o programador cria seus programas e se utiliza de todas as potencialidades do .NET. Cada um dos componentes da plataforma .NET possui um grande conjunto de tecnologias e subcomponentes e a cada um estão sendo aprimorados e agregados novos recursos e funcionalidades. O componente principal da plataforma é o .NET Framework, já que é por ele que todos os demais componentes interagem e funcionam. Outro aspecto relevante da plataforma é que todos os seus componentes estão construídos para oferecer e consumir padrões de tecnologia baseados na Internet, ou seja, todos os elementos influenciadores que vimos nos tópicos Programação Aplicada – Microsoft .NET usando C# 19 SOCIESC – Sociedade Educacional de Santa Catarina anteriores, foram implementados logicamente pela Microsoft. É a resposta da Microsoft para o desenvolvimento de sistemas distribuídos baseados na Internet. Para que você tenha uma visão mais clara dos componentes da plataforma, observe a figura 7. Figura 7 – Componentes da Plataforma .NET 7 .NET FRAMEWORK Considerando sua importância na plataforma, o .NET Framework merece um tópico particular para seu melhor entendimento. Ele, na verdade, é um software “acoplado” ao sistema operacional, com o objetivo de executar aplicações para a plataforma .NET. Cabe aqui uma observação importante e polêmica: a compatibilidade do .NET Framework com sistemas operacionais. Na prática, a Microsoft criou o produto para ser “acoplado” apenas em seus sistemas operacionais e suas versões (Windows XP, Windows 2000, Windows 2003 e etc.). Dessa forma, os aplicativos construídos para .NET somente podem ser executados em equipamentos que tenham instalado um sistema operacional da Microsoft. Esse assunto é polêmico, porque a plataforma concorrente é o Java da Sun, que oferece um completo suporte a vários sistemas operacionais de mercado, incluindo FONTE: adaptado da Microsoft - MOC, 2001 Programação Aplicada – Microsoft .NET usando C# 20 SOCIESC – Sociedade Educacional de Santa Catarina logicamente o Linux. Perceba então que temos aqui um aspecto de competição de mercado entre os fabricantes de software: de um lado a Microsoft, procurando fortalecer ainda mais sua base Windows instalada, do outro a Sun, oferecendo um nível de flexilidade que permite ao programador escolher ou adaptar-se ao sistema operacional de destino, sem amarras. Mas existem iniciativas não patrocinadas oficialmente pela Microsoft, para a execução de programas .NET em outros sistemas operacionais. O projeto MONO é uma iniciativa da comunidade de desenvolvedores para a construção de uma versão baseada em GNU/Linux, como software livre, da plataforma .NET. Para maiores informações sobre o projeto, acesse o seguinte endereço na Internet: http://www.mono-project.com/Main_Page. O .NET Framework é organizado em subcomponentes (figura 8) que, juntos, oferecem ampla camada de desenvolvimento e reuso de aplicações, utilizando-se de conceitos de integração e interdepependência. Figura 8 – Componentes da Plataforma .NET 7.1 Código Gerenciado O principal subcomponente do .NET Framework é o conceito de código gerenciado, construído pelo programador e executado em um ambiente chamado Common Language Runtime (CLR) (figura 9). Esse ambiente interfere na FONTE: adaptado da Microsoft - MOC, 2001 Programação Aplicada – Microsoft .NET usando C# 21 SOCIESC – Sociedade Educacional de Santa Catarina execução dos programas, permitindo que o .NET Framework garanta uma série de aspectos válidos para o perfeito e seguro funcionamento tanto da aplicação como também do sistema operacional. Figura 9 – Common Language Runtime É neste momento que percebemos uma das primeiras vantagens da plataforma .NET, que oferece ao programador a capacidade de utilizar qualquer linguagem de programação que suporte .NET, fazendo com que essa escolha atenda seu conhecimento pré-existente em determinada linguagem (Java, Cobol, Visual Basic, C# e etc.), aumentando, dessa forma, a produtividade na construção de sistemas. Quando um programa é compilado para .NET, o compilador converte a linguagem de programação utilizada para uma linguagem padrão da plataforma .NET chamada Microsoft Intermediate Language (MSIL) (figura 10). Toda linguagem gera o mesmo MSIL, cuja capacidade permite ao programador possuir particularidades em determinada linguagem, mas o seu resultado será sempre o mesmo. Figura 10 – O processo de compilação e execução do MSIL Programação Aplicada – Microsoft .NET usando C# 22 SOCIESC – Sociedade Educacional de Santa Catarina O programa gerado em MSIL não pode ser executado diretamente pelo sistema operacional. É necessário um programa para sua execução. É nesse momento que um outro subcomponente do .NET Framework atua: o compilador Just-in-time. Esse software basicamente lê o programa compilado em MSIL e executa-o de acordo com a lógica empregada pelo programador, conforme mostramos na figura 8. 7.2 Biblioteca de classes do .NET Framework É um conjunto de programas, organizados em bibliotecas de código já compilado, que fornece o conjunto de recursos que a plataforma .NET possui, para que o programador construa o sistema utilizando-se das funcionalidades disponíveis. Se o programador precisa abrir um arquivo, por exemplo, deve se utilizar das rotinas de abertura de arquivos já disponíveis na plataforma, para que o seu programa seja considerado “código gerenciado”. As bibliotecas de classes ficam facilmente disponíveis através de ferramentas de desenvolvimento, como é o caso do Visual Studio .NET, que permite ao programador inserir uma determinada funcionalidade rapidamente. As bibliotecas são organizadas de tal modo que o programador encontre facilidade para uma funcionalidade específica e também organize as classes em categorias e hierarquia, permitindo ainda o reuso entre as próprias classes. Cada elemento ou funcionalidade dessa hierarquia de bibliotecas de classe, é chamado de namespace. Na versão atual do .NET Framework, a bibloteca fornececentenas de classes, para atender às mais diversas finalidades. 7.3 Acesso a dados na plataforma .NET Quando falamos em acesso a dados, estamos nos referindo à funcionalidade da aplicação que permite obter ou armazenar informações em um banco de dados. Com o objetivo de facilitar o trabalho de construção de programas com acesso a banco de dados, a platalaforma .NET oferece um conjunto de classes chamada ADO.NET contendo recursos e funcionalidades para atender à grande maioria das demandas para o desenvolvimento de sistemas com banco de dados. Programação Aplicada – Microsoft .NET usando C# 23 SOCIESC – Sociedade Educacional de Santa Catarina 7.4 Desenvolvimento de Sistemas para a Web O desenvolvimento de aplicações para Web é facilitado, também, por um conjunto de classes chamado ASP.NET. Na verdade, o ASP.NET é a evolução de um ambiente de execução de aplicações para a Web que a Microsoft lançou em 1997, chamado Active Server Pages (ASP). Basicamente, o ASP permite ao programador trabalhar com o conceito de páginas dinâmicas no desenvolvimento de aplicações para Web, recursos fundamentais para seu sucesso. 7.5 Formulários Windows O termo formulário refere-se às janelas apresentadas do seu sistema. A plataforma .NET oferece também um conjunto de classes e componentes para a construção rápida de telas para a interface com o usuário do sistema. A esse conjunto chamamos Windows Forms. 8 AS LINGUAGENS PARA .NET Como vimos no tópico anterior, o .NET Framework permite que o programador escolha a linguagem que deseja utilizar na construção de seu sistema. Para isso, a linguagem também precisa suportar as regras da plataforma .NET. Chamamos de linguagem para .NET a linguagem que gerar código gerenciado com base nos padrões estabelecidos pela plataforma. Nem todas as linguagens oferecem esse suporte. Em particular, a linguagem C# foi lançada em conjunto com a plataforma .NET. Seu principal objetivo é permitir ao programador o completo uso dos benefícios da plataforma, mas utilizando-se de padrões de construção já conhecidos. É a linguagem preferencial no desenvolvimento para .NET, já que está estruturada com todos os aspectos que a Microsoft espera que um progamador utilize em .NET. Outras linguagens foram transportadas pela Microsoft para suportar a plataforma .NET como o Visual Basic e o Visual J# (versão Java da Microsoft). Linguagens de outros fabricantes também foram adequadas. Programação Aplicada – Microsoft .NET usando C# 24 SOCIESC – Sociedade Educacional de Santa Catarina • COBOL, • SmallTalk, • Delphi, • Perl. Síntese Nesta aula você tomou conhecimento da plataforma .NET, sua importância e seus componentes. Pudemos perceber que é um assunto extenso, mas extremamente atual, considerando as tecnologias que a Microsoft empregou na construção da plataforma. É importante concluirmos que, usando a .NET, o programador trabalha em um outro nível de desenvolvimento de sistemas, com um grande aumento de produtividade e no uso adequado de tecnologias necessárias para o dinâmico mundo dos negócios de hoje. Na próxima aula, vamos conhecer uma ferramenta para o desenvolvimento de sistemas para a plataforma .NET, e estaremos iniciando nossos primeiros programas. Até lá. Programação Aplicada – Microsoft .NET usando C# 25 SOCIESC – Sociedade Educacional de Santa Catarina Exercícios Propostos 1) Cite dois motivos que favoreceram à criação da plataforma .NET. Explique com as suas próprias palavras cada motivo. ______________________________________________________________ ______________________________________________________________ ______________________________________________________________ ______________________________________________________________ 2) O que é a plataforma .NET? ______________________________________________________________ ______________________________________________________________ ______________________________________________________________ ______________________________________________________________ 3) Quais são os componentes da plataforma .NET? ______________________________________________________________ ______________________________________________________________ _____________________________________________________________ 4) Associe a coluna da direita com a coluna da esquerda. ( ) Intermediate Language 1. Nome dado ao conjunto de classes fornecidas pela plataforma .NET, com o objetivo de fornecer uma estrutura hierárquica e organizada de funções. ( ) Compilador Just-in-Time 2. Linguagem gerada após a compilação de um programa desenvolvido para a plataforma .NET. ( ) Namespace 3. Biblioteca de classes que oferece suporte a banco de dados na plataforma .NET. ( ) ADO.NET 4. Software utilizado para gerar código .NET (Intermediate Language). Programação Aplicada – Microsoft .NET usando C# 26 SOCIESC – Sociedade Educacional de Santa Catarina Aula 2 VISUAL STUDIO EXPRESS Objetivos da aula Ao final desta aula, você deverá ser capaz de: � Descrever a ferramenta de desenvolvimento de sistemas para .NET; � Identificar os primeiros elementos de programação em linguagem C#; � Utilizar o compilador e executar um programa; � Entender como distribuir um programa para o usuário. Conteúdos da aula Acompanhe os assuntos desta aula, se preferir, ao terminar, assinale o conteúdo já estudado. � É necessário um produto para desenvolvimento em .NET? � O que é o Visual Studio .NET? � As versões do Visual Studio � Instalado a versão Express � Conhecendo o ambiente � Criando um simples programa em C# Programação Aplicada – Microsoft .NET usando C# 27 SOCIESC – Sociedade Educacional de Santa Catarina Prezado(a) aluno(a), Bem-vindo(a) à nossa segunda aula. Você verá nesta aula como utilizar uma ferramenta de desenvolvimento de sistemas para a plataforma .NET. Essa ferramenta será utilizada durante todo o módulo, por isso, vamos entrar em detalhes operacionais para que você tenha um excelente desempenho nas atividades em aula. Também faremos uma provocação sobre a necessidade de utilizarmos ou não uma ferramenta de desenvolvimento, para construir programas .NET. Boa aula! 1 É NECESSÁRIO UM PRODUTO PARA DESENVOLVIMENTO EM .NET? Essa é a principal pergunta que o programador precisa responder quando falamos do Visual Studio. Muitos profissionais de informática questionam a obrigatoriedade no uso de determinada ferramenta, por sentirem um certo direcionamento ou “amarração” dos fabricantes de software. Na verdade, quando falamos em desenvolvimento de sistemas, nas condições atuais, estamos sempre buscando meios de atingir maior produtividade e precisão na construção de algoritmos. Historicamente, as linguagens compiladas não exigem uma ferramenta para construir programas, mas a sua adoção facilita o trabalho do programador e aumenta a sua produtividade. Essa afirmativa também se aplica à plataforma .NET. Não é necessário (ou obrigatório) o uso do Visual Studio .NET para desenvolver sistemas para .NET, na verdade, os programadores e as empresas desenvolvedores de software percebem que o Visual Studio .NET acaba sendo a ferramenta ideal, considerando sua natural aplicação dos conceitos e tecnologias envolvidas na .NET. Isso ainda é mais forte se a opção de linguagem for da Microsoft, como é o caso do C#. Outras ferramentas de desenvolvimento, também conhecidas como IDE (Integrated Development Environment, ou Ambiente de Desenvolvimento Integrado), existemno mercado, como o SharpDevelop e o Borland IDE, que possuem suas características específicas e podem acabar atendendo a um público particular de desenvolvedores. Programação Aplicada – Microsoft .NET usando C# 28 SOCIESC – Sociedade Educacional de Santa Catarina A Microsoft acabou inserindo no Visual Studio .NET um aspecto relevante: a capacidade de se utilizar qualquer linguagem que suporte .NET e possua recursos de integração com o ambiente do produto. Por exemplo, atualmente já é possível desenvolver em COBOL para .NET, usando o Visual Studio da Microsoft (figura 11). A ferramenta da Microsoft oferece um excelente suporte à extensão de suas capacidades internas, permitindo a personalização, construção de recursos específicos para determinada linguagem, o que está sendo explorado por determinados fabricantes, que se sentem liberados para focar no potencial da linguagem e não na ferramenta de desenvolvimento. Figura 11 – Cobol no Visual Studio Apesar de todos os argumentos vantajosos no uso do Visual Studio .NET ou de ferramenta equivalente não influenciarem o programador mais resistente, há o meio convencional de desenvolvimento de sistemas .NET sem uma IDE. Para isso, basta que o progamador realize: • O download do programa de instalação do .NET Framework para desenvolvimento, que pode ser obtido no site da Microsoft; Programação Aplicada – Microsoft .NET usando C# 29 SOCIESC – Sociedade Educacional de Santa Catarina • Utilizar um editor de textos de sua escolha, como o Bloco de Notas, para digitar o algoritmo de acordo com a sintaxe da linguagem desejada, por exemplo C#; • Abrir uma sessão do Prompt do MS-DOS e efetuar a compilação do programa construído, usando o compilador fornecido pelo pacote de instalação do .NET Framework; • Executar o programa gerado pelo compilador. A questão que fica aqui é: qual a produtividade do programador usando esse método? O uso de uma ferramenta IDE é exatamente automatizar o processo acima descrito, favorecendo outros recursos importantes como: • a validação em tempo real; • a conformidade entre a linha digitada e a sintaxe da linguagem; • o uso de recursos de depuração do código para localizar um erro de lógica; • a execução do programa diretamente do ambiente da ferramenta, sem a necessidade de digitar algum comando. 2 O QUE É O VISUAL STUDIO .NET? É a nova geração das ferramentas de desenvolvimento de sistemas da Microsoft, com o total suporte às tecnologias e recursos disponíveis na plataforma .NET. Ela oferece ao programador o que há de mais atual nas práticas de engenharia de software e fornece um conjunto de versões para atender às particularidades de cada perfil de programador e da envergadura do projeto de software a ser construído. A próxima pergunta que o programador precisa responder é: com o Visual Studio .NET, quais os tipos de aplicações que podemos construir? A versão atual, 2005, permite que o programador construa os seguintes tipos de aplicações: • Windows Applications: este é o nome dado às aplicações .NET desenvolvidas com Interface Gráfica e são utilizadas pelos usuários Programação Aplicada – Microsoft .NET usando C# 30 SOCIESC – Sociedade Educacional de Santa Catarina localmente nos computadores, ou por uma rede interna. Esse tipo de aplicação é usada para soluções cliente-servidor e não se utiliza primariamente dos recursos da Internet; • Console Applications: são as aplicações que não possuem interface gráfica, também conhecidas como aplicações de modo caractere baseadas em MS-DOS e executadas em uma janela de comando do MS- DOS em um sistema operacional Windows; • Componentes reutilizáveis ou bibliotecas de classes: permitem a construção de componentes a serem reutilizados por outras aplicações, seguindo padrões de mercado para sistemas distribuídos; • Web Applications: soluções baseadas em tecnologias da Internet, que utilizam primariamente as tecnologias da Web, como HTML, Javascript, http, etc. Além disso, também podem ser construídos Web Services, como componentes a serem acessados pela Internet, também usando padrões de mercado. De acordo com a aplicação desejada, precisamos utilizar uma versão específica do Visual Studio. Algumas vantagens no uso do Visual Studio .NET: • O Visual Studio automatiza os passos necessários para compilar um código-fonte, mas fornece um controle completo sobre os parâmetros que podem ser alterados para mudar o comportamento do processo de compilação; • O editor de textos foi desenvolvimento especificamente para as linguagens suportadas pelo Visual Studio, principalmente o C#, permitindo que a ferramenta possa, de forma simples e intuitiva, detectar erros e sugerir códigos onde for adequado; • Fornece um conjunto de modelos prontos para a construção de aplicações específicas, acelerando o processo de construção do projeto; • O Visual Studio (figura 12) fornece vários assistentes para “guiar” o programador em tarefas mais complexas ou que exigem um nível de cuidado, liberando o programador de detalhes necessários para a construção de determinada funcionalidade. Programação Aplicada – Microsoft .NET usando C# 31 SOCIESC – Sociedade Educacional de Santa Catarina Figura 12 – Ambiente do Visual Studio .NET Express 3 AS VERSÕES DO VISUAL STUDIO O Visual Studio .NET, versão 2005, apresenta cinco opções para uso do produto e cada uma direcionada para um perfil específico de profissional de TI, bem como, de acordo com a finalidade do projeto de software. A opção gratuita do produto é chamada linha “Express”, dividida nas seguintes subversões: • Web Developer: direcionada para a construção de aplicações para a Web (chamadas Web Applications); • Visual Basic: voltada para o desenvolvimento de soluções baseadas em formulários, usando a linguagem Visual Basic; • Visual C#: voltada para o desenvolvimento de soluções baseadas em formulários, usando a linguagem C#; • Visual C++: voltada para o desenvolvimento de soluções baseadas em formulários, usando a linguagem C++; • Visual J#: voltada para o desenvolvimento de soluções baseadas em formulários, usando a linguagem Java; Programação Aplicada – Microsoft .NET usando C# 32 SOCIESC – Sociedade Educacional de Santa Catarina • SQL Express: para o desenvolvimento e gerenciamento de soluções a serem armazenadas e executadas no banco de dados da Microsoft. Também serve como base de dados para as demais versões da linha Express. Além das versões gratuitas do Visual Studio, também existem três versões pagas do produto: • Standard: das versões pagas, é a opção mais barata. Tem por objetivo o desenvolvimento de pequenas soluções e apenas um programador interage com o projeto; • Professional: essa versão possui as mesmas características da Standard, adicionando recursos mais robustos para projetos de médio tamanho e com suporte amplicado a banco de dados SQL Server 2005; • Tools for Office: para o desenvolvimento de componentes que serão utilizados por produtos da plataforma Office System (Excel, Word e etc.). Possui recursos limitados e suas capacidades estão totalmente direcionadas para o uso apenas com os produtos Office; • Visual Studio Team Sytem: possui todos os recursos das versões já mencionadas, mas amplia sobremaneira a capacidade de recursos do Visual Studio para trabalhar em equipes de projeto. O Team System propõe-se a fornecer um conjunto completo de ferramentas para todo o ciclo de desenvolvimento de soluções, incluindo documentações e a gestão de testes do produto. É excelente para projetos de grande porte, que envolvem um grande número de programadores. Nesse móduloutilizaemos o produto Visual C# 2005 Express Edition. 2.4 Instalando a versão Express Para realizar a instalação da versão Express do Visual Studio, para o desenvolvimento com C#, você precisa acessar o site da Microsoft no seguinte endereço (infelizmente ainda não há versão em português do produto): http://msdn2.microsoft.com/pt-br/vstudio/default.aspx Programação Aplicada – Microsoft .NET usando C# 33 SOCIESC – Sociedade Educacional de Santa Catarina Há duas formas para realizar a instalação dessa versão: on-line ou off-line. Na versão on-line, você fará o download de um pequeno programa que, ao ser inicializado, fará a conexão com o site da Microsoft e realizará a instalação após o download dos componentes necessários. Para a versão off-line, você deverá efetuar o download de um grande arquivo que, na verdade, é uma imagem de CD, gravá-lo com o conteúdo da imagem e depois realizar a instalação a partir do CD gravado. O método mais simples (mas a velocidade dependerá de sua conexão com a Internet), é a instalação on-line. É importante ressaltar que a Microsoft exige o registro do produto, apesar de não cobrar nenhum licenciamento. Nesse cenário de instalação on-line, após o download do arquivo para instalação, execute o programa e siga os passos do assistente de instalação, habilitando ou desabilitando opções de acordo com a sua finalidade de desenvolvimento. Para esse módulo, vamos considerar os passos a sequir descritos e demonstrados na figura 13: 1. Efetue o download do arquivo vccsetup.exe; 2. Execute o programa. Será apresentada a tela de boas vindas do programa de instalação; 3. Clique no botão Next; 4. Na janela de aceite da licença de uso (End-user License Agreement), marque a frase I accept the terms of the License Agreement e depois, clique no botão Next; Figura 13 – Opção de aceite da Licença de Uso 5. Na próxima janela do assistente de instalação, não selecione nenhuma opção e clique no botão Next. As duas opções apresentadas referem-se à: Microsoft MSDN - é a documentação do produto; e Microsoft SQL Programação Aplicada – Microsoft .NET usando C# 34 SOCIESC – Sociedade Educacional de Santa Catarina Server 2005 Express - é o banco de dados que pode ser integrado ao ambiente (figura 14). Escolha a opção do banco de dados (Microsoft SQL Server), já que estaremos preparando o ambiente para o assunto de banco de dados com C#; Figura 14 – Opções para produtos adicionais ao C# Express 6. A próxima janela solicita o local de armazenamento do software, para a instalação. Essa opção é importante, caso você não possua espaço suficiente no disco rígido para a instalação do programa. Caso possua espaço, mantenha a informação sugerida e clique no botão Next (figura 15). Programação Aplicada – Microsoft .NET usando C# 35 SOCIESC – Sociedade Educacional de Santa Catarina Figura 15 – Informações sobre a pasta de destino do programa de instalação 7. O programa de instalação iniciará a cópia e a configuração do sistema operacional para a execução do programa. Aguarde o término da instalação (figura 16); Figura 16 – Acompanhamento do processo de instalação Observe o espaço necessário para instalação e o espaço disponível no disco rígido de destino. Programação Aplicada – Microsoft .NET usando C# 36 SOCIESC – Sociedade Educacional de Santa Catarina 8. Quando o programa de instalação terminar o passo anterior, a janela de conclusão será apresentada, fornecendo um resumo da instalação e instruções para registro do produto (figura 17); Figura 17 – Tela final da instalação 9. Clique na frase sublinhada em azul “Register Now”, para que o programa de instalação o (a) encaminhe diretamente para a página de registro do produto na Internet; 10. Para efetuar o registro, você precisa de um Microsoft Passport. Na janela apresentada, efetue o seu login; 11. Na próxima página do site de registro da Microsoft, informe os dados solicitados no formulário (figura 18); 12. Finalmente, o site de registro apresentará uma janela contendo o número de série para registro do produto; Programação Aplicada – Microsoft .NET usando C# 37 SOCIESC – Sociedade Educacional de Santa Catarina Figura 18 – Janela de Registro 13. Copie o número de registro e execute o Visual C# 2005 Express (figura 19). Aguarde até que o programa de preparação da primeira execução termine; Figura 19 – Janela de preparação da primeira execução 14. No ambiente do programa, execute o comando Register product do menu Help (figura 20); Figura 20 – Menu Help Programação Aplicada – Microsoft .NET usando C# 38 SOCIESC – Sociedade Educacional de Santa Catarina 15. Na janela apresentada, cole o número de registro no campo Registration Key e clique no botão Complete Registration (que somente será habilitado se houver um número digitado no campo) (figura 21); Figura 21 – Janela de registro 16. O seu programa está pronto para ser utilizado. 5 CONHECENDO O AMBIENTE DO VISUAL C# 2005 EXPRESS Quando você executa o programa pela primeira vez, ele apresenta um conjunto de painéis vazios e um conteúdo central da janela, contendo informações sobre novidades e informações atualizadas da Microsoft (que poderão estar atualizadas se a conexão com a Internet existir). Para que os demais painéis apresentem suas funcionalidades e informações, é necessário que um projeto seja aberto ou criado. Ao clicar na opção Create: Project... será apresentada uma nova janela, contendo os modelos de aplicações que você poderá utilizar para construir o seu Programação Aplicada – Microsoft .NET usando C# 39 SOCIESC – Sociedade Educacional de Santa Catarina programa (figura 22). O modelo a ser selecionado, deverá ser correspondente à finalidade da sua aplicação. Figura 22 – Janela de modelos de aplicações Em nosso módulo, os projetos que criaremos serão sempre Windows Applications. Mas vamos conhecer os demais modelos disponíveis: Modelo Descrição Windows Application Voltado para o desenvolvimento de sistemas baseados em Janelas/Formulários Class Library Permite a construção de uma biblioteca de classes, para reuso em outras aplicações Console Application Para o desenvolvimento de soluções em modo caractere, para o uso em janelas de Prompt do MS-DOS Empty Project Modelo vazio, sem a inserção automática de qualquer recurso. É útil quando desejamos construir um projeto do zero, sem qualquer parâmetro já inicializado, como nos outros modelos. Starter Kits A Microsoft fornece vários Starter Kits para acelerar o desenvolvimento de uma determinada aplicação. Por padrão, o produto já vem instalado com dois kits: Screen Saver e Movie Collection. Programação Aplicada – Microsoft .NET usando C# 40 SOCIESC – Sociedade Educacional de Santa Catarina Usando o ícone Search online templates...você pode procurar no site da Microsoft outros modelos ou Starter kits. Após escolher o modelo desejado, informe o nome do projeto no campo Name da janela. Ao escolher a opção mais comum, Windows Application, a janela do ambiente de desenvolvimento do Visual C# é tal qual a que mostramos na figura 23: Figura 23 – Janela principal com um projeto aberto Na janela principal, você pode verificar que existem várias janelas e elementos visuais. Vamos conhecer rapidamente cada um deles. Na parte superior da janela estão o menu e a barra de ferramentas, que seguem as mesmas regras de qualquer programa para Windows. No lado esquerdo está o painel Toolbox (caixa de ferramentas),que permite a inserção de objetos diretamente no formulário. No lado direito da janela, dois painéis são apresentados: o painel superior é o Solution Explorer e o painel inferior é a janela de Propriedades. Na parte central da janela está um formulário vazio, pronto para ser personalizado, de acordo com as necessidades de sua aplicação (figura 24). Programação Aplicada – Microsoft .NET usando C# 41 SOCIESC – Sociedade Educacional de Santa Catarina Figura 24 – Janela principal e seus componentes O desenvolvimento de soluções, usando essa ferramenta, segue as mesmas orientações para as aplicações RAD (Rapid Application Development), ou seja, você desenha a interface que deseja construir, altera as propriedades, insere objetos à interface através do Toolbox e depois associa código de programação aos eventos associados aos objetos. Além disso, também você poderá criar classes e subrotinas para reuso dentro e fora da aplicação. Se você efetuar um duplo clique no formulário vazio, no centro da janela, o editor de código do Visual Studio será apresentado. Há, no editor de código, várias particularidades importantes para o programador, exemplo: navegação no código, Intellisense e marcas de revisão. De todos os detalhes do editor, o mais interessante é o Intellisense, que fornece informações ao programador, de acordo com os comandos digitados no ambiente do editor (figura 25). O ambiente do Visual Studio apresenta opções de acordo com o comando envolvido. Programação Aplicada – Microsoft .NET usando C# 42 SOCIESC – Sociedade Educacional de Santa Catarina Figura 25 – Janela do editor de código O Intellisense fornece ao editor de código a capacidade de sugerir várias opções no contexto do programa, à medida que você digita, uma cortina flutuante é apresentada com os itens possíveis a serem utilizados na digitação, acelerando o processo de construção do código. Há também o Hot Compiler, que “destaca” no código as instruções que apresentam erros de sintaxe, enquanto você digita o seu programa. Quando há um erro, o texto é sublinhado e, ao passar com o mouse sobre o texto destacado, será apresentada uma pequena janela com informações sobre o erro. O Visual C# 2005 Express também fornece um compilador integrado e a capacidade de executar o seu código diretamente do ambiente de programação. Ele permite compilar um arquivo particular ou toda a solução (um grupo de arquivos que, juntos, forma a aplicação). Uma vez compilada sua aplicação, você pode se utilizar dos recursos de depuração de código (debug) do ambiente, para localizar possíveis erros de lógica. Finalmente, após ter estabilizado todos os possíveis problemas de Programação Aplicada – Microsoft .NET usando C# 43 SOCIESC – Sociedade Educacional de Santa Catarina seu programa, você poderá gerar uma aplicação a ser distribuída em forma de pacote de aplicação. 6 CRIANDO UM SIMPLES PROGRAMA EM C# Nesse tópico vamos realizar os passos do ciclo de desenvolvimento de um sistema simples, usando o Visual C# 2005 Express (figura 26). Basicamente, os passos são mesmos já mencionados anteriormente: • Desenhar a interface que deseja apresentar para o usuário, utilizando as opções de objetos do Toolbox; • Alterar as propriedades da janela e dos objetos para atender a uma funcionalidade específica; • Associar código de programação aos eventos dos objetos, com o objetivo de fornecer funcionalidades ao usuário, de acordo com o evento envolvido no progama; • Testar o programa; • Compilar e distribuir o programa. Figura 26 – Ciclo de desenvolvimento RAD 1. Se você não executou o Visual C# 2005 Express, execute-o agora; 2. Na janela principal, clique no comando Create: Project...; 3. Na janela New project, selecione o modelo Windows Application, informe o nome do projeto de “AulaPrática1” e clique no botão OK; Programação Aplicada – Microsoft .NET usando C# 44 SOCIESC – Sociedade Educacional de Santa Catarina 4. Através do Toolbox, insira um botão ao formulário. Sua tela deverá se apresentar conforme a figura 27; Figura 27 – Botão inserido no formulário 5. Selecione o botão inserido no formulário e no painel de Propriedades, altere a propriedade Text para “Mensagem”, conforme a figura 28; Figura 28 – Painel de propriedades 6. Agora efetue um duplo clique sobre o botão. O painel de código será apresentado (figura 29). Então digite o seguinte comando entre as chaves abaixo do comando “private void button1_Click”; MessageBox.Show (“Exemplo de primeiro programa em C#”); Figura 29 – Janela de código com o comando inserido 7. O código de seu programa fica assim: namespace AulaPrática1 { public partial class Form1 : Form { Programação Aplicada – Microsoft .NET usando C# 45 SOCIESC – Sociedade Educacional de Santa Catarina public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { MessageBox.Show("Exemplo de primeiro programa em c#"); } } } 8. Para testar o programa, clique no botão Start Debugging, ou pressione a tecla F5; 9. A janela do programa será apresentada. Clique no botão e veja o resultado; 10. Clique no botão Fechar da janela, com o objetivo de parar o programa; 11. Agora vamos compilar o programa para a distribuição. Execute o comando Build Solution do menu Build, ou pressione a tecla F6; 12. Execute o comando Publish do menu Build. Na janela apresentada, referente ao Assitente de Publicação, informe a pasta de destino para que o programa seja disponibilizado. Essa janela permite que você envie o programa gerado para o computador local, para um computador da rede, ou um local de armazenamento na Internet. Informe o local ou utilize o botão Browse para localizar uma pasta local em seu computador e clique no botão Finish; 13. Localize a pasta de destino informada no passo 12 e verifique que serão criados dois arquivos (um referente ao programa de instalação e outro que é o próprio programa desenvolvido). Esse é o pacote de instalação de seu programa, que poderá ser disponibilizado para os usuários do sistema. Síntese Nesta aula você estudou sobre a importância do uso de ferramentas IDE para o desenvolvimento .NET e também conheceu as versões do Visual Studio, entendendo qual a versão mais adequada para o tipo de projeto envolvido. Além disso, você aprendeu como instalar o Visual Studio para iniciar os seus trabalhos, Programação Aplicada – Microsoft .NET usando C# 46 SOCIESC – Sociedade Educacional de Santa Catarina bem como obteve as informações básicas sobre o ambiente do produto. Finalmente, como primeiro passo na incursão do desenvolvimento em C#, você executou o ciclo de desenvolvimento RAD, usando um exemplo simples na linguagem C#. Na próxima aula vamos iniciar nossa primeira incursão efetiva na linguagem de programação C#. Vamos adiante, pois agora os assuntos vão começar a apresentar resultados práticos. Até a próxima aula. Exercícios Propostos 1) Diante do que você aprendeu nesta aula, é obrigatório o uso do Visual Studio para o desenvolvimento de aplicações .NET? Por quê? ______________________________________________________________ ______________________________________________________________ ______________________________________________________________ ______________________________________________________________ 2) É possível utilizar outras linguagens de desenvolvimento, dentro do Visual Studio, além do C#? Se positivo, cite alguns exemplos de linguagem. ____________________________________________________________________________________________________________________________ ______________________________________________________________ 3) O seu projeto tem por finalidade o desenvolvimento de uma aplicação média para a Web. Qual a versão do Visual Studio que você deverá utilizar? ______________________________________________________________ ______________________________________________________________ Programação Aplicada – Microsoft .NET usando C# 47 SOCIESC – Sociedade Educacional de Santa Catarina Aula 3 TRABALHANDO COM VARIÁVEIS EM C# Objetivos da aula Ao final desta aula, você deverá ser capaz de: � Identificar a reconhecer a sintaxe da linguagem C#; � Utilizar os comandos no uso de variáveis e expressões. Conteúdos da aula Acompanhe os assuntos desta aula, se preferir, ao terminar, assinale o conteúdo já estudado. � Conhecendo os elementos de um programa; � Regras de sintaxe da linguagem C#; � Trabalhando com variáveis; � Recursos especiais com variáveis strings; � Enumerações, estruturas e Arrays; � Construindo expressões. Programação Aplicada – Microsoft .NET usando C# 48 SOCIESC – Sociedade Educacional de Santa Catarina Prezado(a) aluno(a), Bem-vindo(a) à nossa terceira aula. Conforme tratamos nas aulas anteriores, a linguagem C# foi desenvolvida especificamente para a plataforma .NET. Projetada por Anders Hejlsberg (criador do Delphi) e Scott Wiltamuth, um de seus principais apelos é facilitar o processo de migração de programadores para a nova plataforma, bem como, a adoção de novos programadores. De fato o projeto do C# buscou os melhores recursos das linguagens C, C++ e Java, mas com as facilidades do Visual Basic e do Delphi. É orientada a eventos, completamente orientada a objetos, com uma abordagem de construção visual que permite construir programas usando um IDE (conforme vimos na aula anterior). O objetivo desta aula é lhe apresentar os recursos iniciais da linguagem C#, fornecendo-lhe a incursão nos elementos da linguagem, porque que cada elemento tem seu lugar, entender o objetivo de cada comando e conhecer as regras sintáticas que a linguagem implementa. Boa aula. 1 CONHECENDO OS ELEMENTOS DE UM PROGRAMA C# Antes de você conhecer as regras sintáticas do C# é importante que tenha a oportunidade de analisar um código existente na linguagem. A estrutura da linguagem de programação precisa ser seguida para que o compilador interprete corretamente o programa. O Visual Studio reforça as regras através de seus recursos de validação de sintaxe, o que não permite a compilação de um programa contendo erros. Vamos entender o código C# observando a figura 30: Programação Aplicada – Microsoft .NET usando C# 49 SOCIESC – Sociedade Educacional de Santa Catarina Figura 30 – Análise de código C# De forma geral, todo programa em C# possui 5 elementos principais: área de declarações das classes, declaração da criação de namespace, bloco de declaração da classe, ponto de inicialização e a área de comandos/instruções da linguagem. 1.1 Área de declarações das classes As primeiras linhas do programa possuem a instrução sobre a(s) classe(s) que está(ão) em uso na aplicação, através da palavra reservada using. De acordo com o que você deseja fazer no programa, pode utilizar uma classe já existente no .NET Framework e acelerar o processo de construção de seu programa. As palavras que se referem à uma classe existente, seguem a documentação do .NET Framework. Você poderá ter um excelente desempenho no desenvolvimento de sistemas .NET, se conhecer as principais blbiotecas de classes existentes na plataforma. Além disso, se você estudar ainda mais as potencialidades disponíveis na plataforma, estará preparando-se para outros Programação Aplicada – Microsoft .NET usando C# 50 SOCIESC – Sociedade Educacional de Santa Catarina desafios. A biblioteca de classes fornecida no .NET Framework é extremamente grande, mas com experiência e lógica, facilmente poderá localizar e utilizar uma classe específica para um determinada finalidade. 1.2 Declaração de criação da Namespace Para evitar que ocorram colisões entre as classes do usuário e as classes do .NET Framework, é possível a criação de um namespace diretamente no código de programação. O principal objetivo dessa declaração é garantir a exclusividade do nome da classe dentro da hierarquia de namespaces que o .NET oferece. Toda aplicação e classe construída, por padrão, é armazenada no namespace global, dessa forma, todo código criado pode ser acessado por outro código que esteja nesse mesmo namespace, apenas utilizando-se o nome da classe. Então, o uso de namespace garante que o código será qualificado, permitindo que o código possa ser acessado fora do namespace global. Essa declaração é o uso da palavra reservada namespace, acompanhada do nome da namespace a ser criada, baseada no nome informado pelo programador, que segue as mesmas regras de declaração de variáveis na linguagem. Além disso, o bloco de declaração da namespace é acompanhado das chaves de abertura e fechamento e todo o conjunto de instruções deve ficar entre essas chaves. 1.3 Bloco de declaração da classe A declaração class Program é o início da construção da classe. A palavra reservada classe é acompanhada pelo nome da classe, informada pelo programador e que segue as regras de nomes da linguagem. Nesse caso, como um namespace está sendo criado, já utilizando o nome informado pelo programador, a palavra Program é o nome atribuído para a classe. Via de regra, o nome das classes sempre começa com letra maiúscula. Programação Aplicada – Microsoft .NET usando C# 51 SOCIESC – Sociedade Educacional de Santa Catarina 1.3 Ponto de inicialização da classe Essa declaração é a criação de um método da classe Program. Nesse caso, o método nomeado com a palavra Main tem um significado especial, determinando ao compilador que o programa começa a partir desse ponto. O parênteses, após a palavra Main, determina para o compilador que a declaração é um método. Toda aplicação .NET deve possuir um método Main, senão a aplicação não será executada. A linha de instrução Main é fundamental para a construção de um programa em C#. Recebe restrições importantes que precisam ser seguidas para que o progama inicialize corretamente. A palavra reservada Main precisa “sempre” ser iniciada com a letra maiúscula M. Além disso, precisa ser declarada da seguinte forma: public static void Main. Em uma aplicação C#, múltiplas classes podem existir, mas apenas uma deve conter o método Main. Finalmente, quando o método Main é finalizado, a aplicação termina. 1.4 Área de instruções/Comandos da linguagem Nesse bloco, o programador insere as instruções e a lógica do programa, que deverão ser seguidos durante a execução do programa. Nesse ponto, é importante você conhecer a lista de palavras reservadas que não podem ser utilizadas para nomear uma variável ou para se utilizar como parte de um programa, exceto para implementar o comando, de acordo com as regras da linguagem C#. 1.5 Palavras reservadas da linguagem C# As palavras abaixo são utilizadas pela linguagem C# e sempre são apresentadas em letras minúsculas. abstract as base bool break byte case catch char checked Programação Aplicada – Microsoft .NET usando C# 52 SOCIESC – Sociedade Educacional de Santa Catarina class const continue decimal default delegate do double else enum event explicit extern false finallyfixed 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 2 REGRAS DE SINTAXE DA LINGUAGEM C# Conforme você verificou no tópico anterior, a programação C# segue regras específicas. Considere as seguintes regras essenciais para que você possa construir programas: • O C# é sensível a letras maiúsculas e minúsculas, dessa forma, uma variável declarada como “Exemplo” é diferente de “exemplo”; • O uso de espaços em branco pode ser abundante, pois o compilador os ignora para a geração do programa; • Mantenha a distribuição do código implementada pelo ambiente do Visual 2005 C# Express. A indentação é fundamental para que o código seja de fácil leitura e entendimento; • Utilize comentários, sempre que necessário, usando barras comuns (//) precedendo o texto que será o comentário. Em caso de comentários que Programação Aplicada – Microsoft .NET usando C# 53 SOCIESC – Sociedade Educacional de Santa Catarina ocupem mais de uma linha, utilize a combinação /* e */, veja exemplo na figura 31. Figura 31 – Exemplo de instruções de comentários em C# 3 TRABALHANDO COM VARIÁVEIS Agora que você obteve conhecimentos sobre os elementos de programação da linguagem C#, o armazenamento de dados é a primeira atividade que um programador realiza para construir um algoritmo. Há, na linguagem C#, uma extensa capacidade para o armazenamento de dados, usando variáveis. A sintaxe padrão para a declaração de uma variável em C# é a que mostra a figura 32. Figura 32 – Exemplos de declaração de variáveis Então, a sintaxe para declaração de variáveis no C# é: [modificadores] tipo declarações; Programação Aplicada – Microsoft .NET usando C# 54 SOCIESC – Sociedade Educacional de Santa Catarina • Modificadores (opcional): informação que determina a forma de funcionamento da encapsulação da variável, por exemplo, public, que permite o acesso público ou static que mantém o valor da variável; • Tipo: nome de um dos tipos de dados suportados pela linguagem C#; • Identificadores: lista de declarações de nomes de variáveis (identificadores), separados por vírgula. Uma declaração pode também conter a atribuição de valor à variável. Lembre-se de que o C# exige que toda variável precisa ser inicializada antes de ser utilizada. Para criar e utilizar uma variável, você precisa escolher um significado e um nome apropriado para ela. Cada variável possui um nome que também pode ser referenciado como identificador de variável. 3.1 Tipos de dados A linguagem C# é fortemente baseada em tipos, então podemos dizer que é uma linguagem tipada. Isso significa que todo objeto criado ou utilizado precisa, obrigatoriamente, ser um tipo específico de dado, exemplo: um inteiro, ou uma string. Esse recurso é um aspecto importante dentro do processo de desenvolvimento de sistemas, por impactar diretamente na performance do programa e no grau de planejamento da aplicação. De acordo com o tipo de dados aplicados em determinada situação, haverá perda ou ganho de performance durante a operação, pois poderá gerar uma exceção no sistema, se o tipo de dado escolhido armazenar uma informação que originalmente não havia sido planejada. A linguagem C# possui duas grandes categorias de tipos de dados: intrínsecos e os tipos definidos pelo usuário. Os tipos intrínsecos são os tipos de dados pré-construídos na linguagem. No caso do .NET, estão baseados na especificação CTS (Common Type System) da plataforma. Alguns autores também se referem aos tipos intrínsecos como tipos primitivos, considerando que o C# acessa diretamente as classes básicas do .NET e os tipos de dados; por exemplo, o tipo de dados int do C# é um sinônimo para System.Int32, um tipo de dado primitivo que define um número inteiro de 32-bits com sinal. Programação Aplicada – Microsoft .NET usando C# 55 SOCIESC – Sociedade Educacional de Santa Catarina 3.1.1 Tipos de dados intrínsecos- Inteiros São oito tipos de dados inteiros, cuja variedade permite que você selecione o tipo de dado com suporte suficiente para o intervalo de dados que será armazenado. Tipo Implementação Tipo Primitivo Byte Inteiro de 1 byte sem sinal (0 a 255) Valor default: 0 System.Byte Sbyte Inteiro com sinal de 1 byte (-127 a 128) Valor default: 0 System.SByte Short Inteiro com sinal de 16 bits (-32.768 a 32.767) Valor default: 0 System.Int16 Ushort Inteiro sem sinal de 16 bits (0 a 65.535) Valor default: 0 System.Uint16 Int Inteiro de 32 bits com sinal (-2.147.483.648 a 2.147.483.647) Valor default: 0 System.Int32 Uint Inteiro de 32 bits sem sinal (0 a 4.294.967.295) Valor default: 0 System.Uint32 Long Inteiro com sinal de 64 bits (-9.223.372.036.854.775.808 a 9.223.372.036.854.775.807) Valor default: 0 System.Int64 Ulong Inteiro sem sinal de 64 bits (0 a 18.446.744.073.709.551.615) Valor default: 0 System.Uint64 Programação Aplicada – Microsoft .NET usando C# 56 SOCIESC – Sociedade Educacional de Santa Catarina 3.1.2 Tipos de dados intrínsecos – Lógicos Há um tipo de dado booleano utilizado para o trabalho com expressões que precisa representar dado FALSO ou VERDADEIRO. Tipo Implementação Tipo Primitivo Bool Pode ter os valores true e false. Não é compatível com inteiro. Valor default: false System.Boolean 3.1.3 Tipos de dados intrínsecos – Caractere Em C#, todos os caracteres (e strings) são armazenados no padrão Unicode e usam 16 bits por caractere. O Unicode é um padrão mundial para representação de caracteres e permite armazenar os caracteres de todas as línguas vivas (como grego, japonês, chinês e coreano) e algumas mortas (como sânscrito). Tipo Implementação Tipo Primitivo Char Um único caractere Unicode de 16 bits. Não é compatível com inteiro. Ou na terminologia do Unicode: U+0000 até U+ffff Por exemplo, a letra A no Unicode é representada como /U0041 Valor default: Caracter Unicode com o valor 0 System.Char 3.1.4 Tipos de dados intrínsecos – Ponto flutuante A linguagem C# suporta dois tipos de variáveis para armazenar ponto flutuante. Programação Aplicada – Microsoft .NET usando C# 57 SOCIESC – Sociedade Educacional de Santa Catarina Tipo Implementação Tipo Primitivo Double Ponto flutuante binário IEEE de 8 bytes (±5,0 x 10-324 até ± 1,7 x 10308) 15 a 16 dígitos decimais de precisão Valor default: 0.0 System.Double Float Ponto flutuante binário IEEE de 4 bytes (±5,0 x 10-45 até ± 3,4 x 1038) 7 dígitos decimais de precisão Valor default: 0.0 System.Single As operações de ponto flutuante não geram erros: • Uma operação que gera um resultado muito pequeno para ser representado torna-se zero; • Uma divisão por zero com números de ponto flutuante não gera erro, produz resultado infinito. Você pode verificar se o valor é infinito positivo ou negativo com o método Double.IsInfinity(); • Uma operação inválida gera como resultado NaN (não é um número); • Se um dos operadores for NaN, o resultado é NaN. 3.1.4 Tipos de dados intrínsecos – Decimal Esse tipo está bem menos sujeito a erros de arredondamento
Compartilhar