147
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

Apostila Formação Programador NET

  • Upload
    walney

  • View
    247

  • Download
    9

Embed Size (px)

DESCRIPTION

ormação Programador

Citation preview

PROGRAMAO APLICADA MICROSOFT .NET USANDO C# EDIO N 1 - 2007 LARCIO DA CRUZ LOUREIRO ___________________________________________________________________ ApoioGesto e ExecuoContedo e Tecnologia Programao Aplicada Microsoft .NET usando C#2 SOCIESC Sociedade Educacional de Santa Catarina Apresentao EstelivrodidticocontmadisciplinadeProgramaoAplicadacom Microsoft .NET.O contedo apresentado oferece um amplo conjunto de informaes sobre os mtodosdeprogramao,queforamapresentadosnoscursosanteriores,eagora sero aplicados a uma tecnologia particular.A programao para o sistema operacionalWindows favorecida com o uso doMicrosoft.NET(fala-sedtnetoupontonet)eoobjetivodestecurso apresentarosconceitosdisponveisnestaplataformadedesenvolvimento, permitindoaoalunoconstruirsistemasusandoumadasprincipaislinguagens utilizadas em .NET: a C# (fala-se c charp). umassuntoextremamenteatual,principalmentediantedograndevolume deempresasdesenvolvedorasdesoftware,queestoaderindoplataforma.NET. Porisso,procuramosmanterumcontedoalinhadocomasnecessidadesdo mercado,seguindoinformaesqueforamcoletadascomempresasdemercado. Almdisso,ocontedosegueasorientaeseprticasquesosugeridaspela Microsoft, atravs de seus sites, livros e artigos. Diantedisso,estamosapresentandoumaabordagemadequadaparaos desafiosqueoprogramadorprecisasuperar,utilizando-secomoapoioas tecnologiasenvolvidascomaplataforma.NET,etambmbuscamosmanteruma linguagemacessvelparaprogramadoresiniciantesequeprecisamentendercom segurana os tpicos que compem os assuntos tratados. importante ressaltar que o livro foi desenvolvido com o objetivo de oferecer umaprendizadoindependente,inerenteaosestudosdoEAD,eocontedofoi revisado com o intuito de oferecer uma linguagem simples, objetiva e estimulante. Lembre-sedequeasuapassagemporestadisciplinasertambm acompanhadapeloSistemadeEnsinoTupyVirtual,sejaporcorreiopostal,fax, telefone, e-mail ou Ambiente Virtual de Aprendizagem.Programao Aplicada Microsoft .NET usando C#3 SOCIESC Sociedade Educacional de Santa Catarina Sempreentreemcontatoconoscoquandosurgiralgumadvidaou dificuldade. Todaaequipeteramaioralegriaematend-lo,poisasuaaquisiode conhecimento nessa jornada o nosso maior objetivo. Acredite no seu sucesso e bons momentos de estudo! Equipe Tupy Virtual. Programao Aplicada Microsoft .NET usando C#4 SOCIESC Sociedade Educacional de Santa Catarina SUMRIO CARTA DO PROFESSOR.........................................................................................5 CRONOGRAMA DE ESTUDOS ...............................................................................7 PLANO DE ESTUDOS ............................................................................................. 8 AULA 1 - INTRODUO PLATAFORMA .NET..9 AULA 2 - VISUAL STUDIO EXPRESS 26 AULA 3 - TRABALHANDO COM VARIVEIS EM C#............................................. 47 AULA 4 - CONTROLE DE FLUXO EM C#............................................................... 65 AULA 5 - PROGRAMAO ORIENTADA A OBJETOS EM C#............................. 76 AULA 6 - TCNICAS DE OOP USANDO C#........................................................... 88 AULA 7 - APLICAES WINDOWS FORMS.. 104 AULA 8 - BANCO DE DADOS COM C# ... 132 Programao Aplicada Microsoft .NET usando C#5 SOCIESC Sociedade Educacional de Santa Catarina Carta do Professor Atransioparaa.NETtodramticaquantoomovimento de transio do MS-DOS para Windows. Os programadores so fundamentaisparaesteesforo,porqueelesiroconstruiras soluesqueiroguiarosusuriosparaumanovaerada verdadeira computao distribuda na Internet. (Bill Gates no lanamento da Plataforma .NET, 2000). Prezado aluno, Em2000,aMicrosoftlanouumainiciativaparaacriaodeumanova gerao de sistemas, a qual iria unificar a computao com a comunicao de dados atravsdeumcaminhorevolucionrio.Foiadivulgaodeumaviso,comoa fabricante procura reforar.Na verdade, a Microsoft demorou para aderir onda que a Internet na poca estavagerando,principalmentenoimpactoculturalqueosusuriosde computadoresestavampercebendo.QuandoaMicrosoftlanouoWindows95eo InternetExplorer,sistemaoperacionalenavegadorrespectivamente,foioprimeiro passonosentidodeumarespostadirecionadaparaasempresasque,napoca, estavamliderandoaondadaInternet.Naqueleperodo,aNetscapeeraagrande alavanca para uma nova experincia dos usurios no uso da Internet, e ela at hoje reconhecida como a precursora das tecnologias que usamos na atualidade. Apsesseperodo,aInternetnuncamaisdeixoudeserumaarenade constantesinovaesegrandescompeties,ondeosfabricantesdesoftware buscamcadavezmaisdeterminareconduzirasoportunidadesdenegciosquea grande rede oferece. Omundoatualumlugardiferentedoqueh10anosatrs.Segundo Friedman(2005),apartirdoano2000,osfabricantesdesoftwareengendraram plataformascombasenasquaisotrabalhoeocapitalintelectuaispoderiamser realizadosdequalquerpartedoglobo.Tornou-sepossvelfragmentarprojetose transmitir,distribuir,produzirejuntardenovoassuaspeas,usandoamesma Programao Aplicada Microsoft .NET usando C#6 SOCIESC Sociedade Educacional de Santa Catarina abordagem da componentizao de processos industriais baseados nos modelos de Ford e da Toyota.nestecontextoqueaplataforma.NETnasce.apropostadaMicrosoft parasuportaradinmicaqueoscomplexosprocessosdenegciosestavam empregando e exigindo um nvel de componentizao dos sistemas, completamente baseados na Internet. Nestaapostila,procuroapresentar-lheosfundamentosdestainiciativa,com nfase no desenvolvimento de sistemas baseados em .NET usando a linguagem C#, quetambmfoilanadapelaMicrosoft,em2002,juntocomanovaversodo software para desenvolvedores, chamada Visual Studio .NET. Cabe ressaltar que a linguagem C# tambm foi um movimento de resposta da Microsoft que, utilizando-se de todas as propostas tecnolgicas da plataforma .NET, baseou-senasintaxedaLinguagemC,daC++edoJava,paracompetircomo prprioJava,diantedesuaamplaadesopelosdesenvolvedores.Elatambm oferecesuportecompletoprogramaoorientadaaobjetoserecursosparaa construo de sistemas para a Internet, de forma segura, rpida e poderosa. Observequeumassuntoextenso.Estemdulotemporfinalidadelhe oferecer fundamentos para construir sistemas, sem contudo esgotar o assunto.Leia. Pratique. Exercite. Reflita. Discuta com seus colegas. Corrija. E renove. Mantenhaestasatividadescomopartedeseustrabalhosnestecurso.Permanece aquiarecomendaodequeaprogramaodecomputadoresumatarefaque exije dedicao e muita prtica. Finalmente,reiterominhaexpectativaemapoiarvocemmaisumpassode seuconhecimentonodesenvolvimentodesoftware.Mantenha-semotivadoa continuarseusestudos,pois,medidaqueostpicossorevelados,ummundo novo de oportunidades abre-se para voc.Desejo-lhe bons estudos e aproveite esta oportunidade. Professor Larcio da Cruz Loureiro Programao Aplicada Microsoft .NET usando C#7 SOCIESC Sociedade Educacional de Santa Catarina Cronograma de Estudos Acompanhe no cronograma abaixo os contedos das aulas, e atualize as possveis datas de realizao de aprendizagem e avaliaes. SemanaCarga horriaAulaData / Avaliao 1 20 Introduo Plataforma Microsoft .NET _/_ a _/_ 14 Visual Studio Express _/_ a _/_ 2 14 Trabalhando com Variveis em C# _/_ a _/_ 10 Controle de Fluxo em C# _/_ a _/_ 3 12 Introduo OOP usando C# _/_ a _/_ 12 Tcnicas de OOP usando C# _/_ a _/_ 4 22 Aplicaes Windows Forms _/_ a _/_ 6 16 Banco de Dados com C# _/_ a _/_ Programao Aplicada Microsoft .NET usando C#8 SOCIESC Sociedade Educacional de Santa Catarina Plano de Estudos Ementa IntroduoplataformaMicrosoft.NET.VisualStudioExpress.Orientaoa objetos usando C#. Sintaxe da linguagem C#. Desenvolvimento de sistemas usando banco de dados. Solues usando ASP.NET Objetivo Geral EntenderasvantagensdousodaplataformaMicrosoft.NETedesenvolver sistemas usando a linguagem C#. Especficos Descrever os componentes da plataforma .NET; Construir programas orientados a objetos usando a linguagem C#; Conheceredesenvolverprogramasusandoasintaxedecomandosda linguagem C#; Utilizar recursos de banco de dados em sistemas .NET; Conheceroselementosbsicosparaaconstruodesistemasparaa Internet usando a plataforma .NET. Carga Horria: 120 horas/aula.Programao Aplicada Microsoft .NET usando C#9 SOCIESC Sociedade Educacional de Santa Catarina Aula 1 INTRODUO PLATAFORMA .NET Objetivos da aula Ao final desta aula, voc dever ser capaz de: Identificar os objetivos da plataforma .NET; Enumerar as vantagens na utilizao da plataforma .NET; Descrever os componentes da plataforma .NET; Utilizar linguagens disponveis baseadas em .NET. Contedos da aula Acompanhe os assuntos desta aula, se preferir, aps o seu trmino, assinale o contedo j estudado.A Internet e as aplicaes distribudas; A evoluo tecnolgica; Ilhas de informaes; Reuso, OOP e Web Services; O que a plataforma .NET? Componentes da plataforma; .NET Framework; As linguagens para .NET Programao Aplicada Microsoft .NET usando C#10 SOCIESC Sociedade Educacional de Santa Catarina Prezado(a) aluno(a)! Muitosfatoresinfluenciaramacriaodaplataforma.NET.Omais relevante,comcerteza,foiaInternet.OusocadavezmaiordaInternet pararealizarnovasformasdenegcios,bemcomo,atransformaodemtodos atuais denegcios,emoutros mtodosatravs daInternet, impulsionaminovaes no segmento de desenvolvimento de software. Almdisso,comosegundoelementofortequeinfluenciouosurgimentodo .NETfoiaconvergnciadigital.Basicamente,essetemarefere-seuniodo telefone, do computador, da TV, do rdio, da msica, do celular e outras tecnologias,umnicodispositivo.Aconvergnciadigitalexigedossistemasatuaisrecursos comomultiplataforma,escalabilidade,suporteamltiplosidiomas,altacapacidade deprocessamentodedados,etc.,ouseja,astecnologiasdevemsuportarnovas formas para construir sistemas. Nestaaula,vocconhecerosvriosaspectosqueenvolvemaplataforma .NET,incluindoseuscomponentes,aspectosdenegciosqueainfluenciarame suasaplicaes,almdecompreenderasvriasalternativasdisponveisparaseu uso. Boa Aula! 1 A INTERNET E AS APLICAES DISTRIBUDAS Fatorescomoaglobalizaoeasconstantesmudanasnasregrasde negciosobrigaramasempresasmodernasasetornaremaltamentedistribudas. Comoconseqncia,crescenteonmerodeescritriosremotosespalhadosno pasounomundo.Porisso,proporcionalmenteanovosmodelosdenegciose gesto,asempresasnecessitamdeinformaesetecnologiasqueestejam disponibilizadasaosseus funcionriosemescritriosremotos, hotiseresidncias, e que s vezes esto conectados ou no, trabalhando em condies off-line. As aplicaes distribudas oferecem os recursos necessrios para atender s demandasatuaisdasempresas,aderindoaosmovimentosdedescentralizaoe reduzindoaspossveisdificuldadesdecomunicaoquenaturalmentepodem ocorrer.Programao Aplicada Microsoft .NET usando C#11 SOCIESC Sociedade Educacional de Santa Catarina Quandofalamosemaplicaesdistribudas,precisamosconsiderartrs elementosessenciais:comunicaodedados,interfacecomousurioeregrasde negcios flexveis.AcomunicaodedadosuniformefoiresolvidacomaInternet, considerandoque,porummeiocomumdecomunicao,oprotocoloTCP/IP, usurioseempresaspodemcomunicar-seindependentedasparticularidadesde seusdispositivosdehardwareousoftware(figura1).Atualmente,aindependncia de equipamentos fsicos ainda mais favorecida por padres que esto suportando a convergnciadigital, permitindo que um celular possuarecursosparaa execuo de um sistema, enquanto mantm seus princpios bsicos. Figura 1 Exemplo de Comunicao de Dados baseada na Internet AinterfacecomousuriotambmfoiresolvidacomaInternet,poistodo usurioutilizaummesmosoftware,onavegador.Almdisso,onavegadorpossui padresdeapresentaodedadosquesoaceitosmundialmente,oquetambm permiteumamesmapginaservisualizadaindependentededispositivofsicoou software. A HTML, as linguagens scripts, as imagens, etc. compem a apresentao dedados,etambmpermitemainteraocomousurio,atravsdeformulrios, com possibilidade de preenchimento de dados. Confira na figura 2 o que acabamos de explanar.Programao Aplicada Microsoft .NET usando C#12 SOCIESC Sociedade Educacional de Santa Catarina Figura 2 Exemplo de formulrio em HTML para a Internet OquefaltavanaInterneteraummodelodeprogramaodesistemas, utilizando-sedastecnologiasmaisatuaisdisponveis,comoobjetivodeconstruir sistemasflexveiserobustosbaseadosnaInternet,explorandoospadresquej foram estabelecidos pela grande rede. Assim, surgiram os conceitos de Aplicaes DistribudasbaseadasnaInternet,fazendocomqueossistemassejam particionadosemvriascamadasecadacamadasejaprocessadadeforma distribudaentrevrioselementosdasoluo.Almdisso,aadoodeefetivas tcnicasdeprogramaoorientadaaobjetos(OOP),permitiuaconstruode sistemas flexveis, com capacidade de adaptao dinmica das regras de negcios (figura 3). Figura 3 Exemplo de uma aplicao distribuda na Web Programao Aplicada Microsoft .NET usando C#13 SOCIESC Sociedade Educacional de Santa Catarina 2A EVOLUO TECNOLGICA Umoutroconjuntodeelementosdeveserconsideradocomoparteda necessidadequeaplataforma.NETdesejavaatenderemseulanamentoe atualmente fornece as capacidades para sua realizao.Por exemplo, aevoluo tecnolgica dos microprocessadores e dos circuitos dememriaRAM,queestocadavezmaispoderososebaratos,permitiramque poderosasfuncionalidadesfossemconstrudas.Almdisso,suacapacidadede atendimento agrandevolumede transaes e dados,ao contrrio doquepodia se esperar, no houve a necessidade de um alto investimento em hardware. Oaumentonadisponibilidadedalarguradebandanasconexesparaa Internet,compreosbaixos,tambmviabilizouumainfra-estruturaquepermite maiorriquezanasaplicaesdistribudasemantmumnveldeperformance necessrioparaosusurios.Comoexemplo,podemoscitarapopularizaodas conexes com a Internet usando a tecnologia ADSL. Ossistemasoperacionaistambmfornecemrecursosimportantesparaas aplicaesdistribudas,jquenovosaplicativostransacionais,comrecursosde seguranaintegradoseotimizaesparaatenderdeterminadasfuncionalidades, favorecem a uma performance e construo dos sistemas.Finalmente,padrestecnolgicoscomoalinguagemXML,protocolosque constituemosWebServicesenovasversesdalinguagemHTML,permitiram aplicaes distribudas flexveis, ricas e padronizadas. 3ILHAS DE INFORMAES A Microsoft percebeuque um grande volume de informaese usurios vive deformaindependenteemumaempresa,criandoilhasdeinformaes corporativasenointeragementresi,perdendooportunidadesparaaumentara velocidadedastransaesdonegcioouparaauxiliarnaformaodeuma inteligncia competitiva. Diantedisso,atravsdaplataforma.NETeutilizando-sedepadresde mercado,abordam-seosconceitosdeintegraodedadoseinteroperabilidade de aplicaes, ou seja, disponibilizam-se componentes programados que permitam a sua integrao e forneam meios fceis para um relacionamento interdependente. Programao Aplicada Microsoft .NET usando C#14 SOCIESC Sociedade Educacional de Santa Catarina Podemosconsiderarnessecontexto,umexemploclssiconas aplicaesemgeral:ousodelistagemeverificaodeCEP,paraum determinadocadastro.Nagrandemaioriadossistemasadministrativos, temos um cadastro de clientes e,porpadro, temos um campode armazenamento dedadosdoCEP.Aquestoqueousurioapresenta:comopossovalidara existciadoCEPdigitado,paragarantirqueosenviosdecorrespondnciasde cobrana cheguem com sucesso ao seu destino? No passado, a grande maioria dos programadores criava (ou ainda cria, por falta de conhecimento,oulimitedatecnologiaenvolvida)umcadastrodeCEPnasua aplicao,paraousurioarmazenarosendereamentosdeCEPdisponveisem uma lista pblica dos Correios Brasileiros. Problemas com esse tipo de soluo: Ousurioprecisarealizarumgrandeesforoparaarmazenartodosos endereos de CEP na aplicao; A dificuldade em manter o cadastro atualizado, devido a possveis mudanas que os Correios Brasileiros aplicam no Cdigo de Endereamento Postal.Imagine, uma agncia dos Correios possui a lista completa de endereos de CEP de todo o Brasil e os recursos necessrios para mant-la 100% atualizada.Temosento,nessecenrio,asilhasdeinformaes,ondeumaempresaprecisa duplicar os dados de CEP para que se consiga atingir os requisitos de seu negcio. Enquanto isso, as agncias do Correios possuem todas as informaes atualizadas. Hoje,esseproblemaestresolvido,poisosCorreiosBrasileirospublicaramum servioquepermiteumaaplicaobaseadaemcomponentesdistribudos, podendocoletarinformaesdeCEP,deacordocomparmetrosdocumentados. Esse servio publicado na Internet, na forma de componente de aplicao, chama-se Web Service. 4OOP, REUSO E WEB SERVICES Programao Aplicada Microsoft .NET usando C#15 SOCIESC Sociedade Educacional de Santa Catarina Ousodaprogramaoorientadaaobjetos,conformevocjaprendeu, permiteareutilizaodeprocedimentoserotinasdeumdeterminadosistema,de forma elegante e segura, ou seja, podemos reutilizar cdigo de programao como parte de nosso esforo de construo do programa. Nesse conceito de reuso, surgiu a tecnologia chamada de Web Service. Um WebServiceumasoluoparaaintegraodesoluesdesoftware, utilizando-sedepadresestabelecidosmundialmente,cujafinalidadesua publicao na Internet para reuso. O formato dos dados que so trafegados entre os WebServices,estoemXML(eXtensibleMarkupLanguage)eoprotocolode comunicaoentreoscomponentesdeumasoluooSOAP.Podemosento resumir que um Web Service um componente programvel que pode ser acessado atravs de protocolos padres na Internet. Aplataforma.NETutilizalargamenteosrecursosdeWebServices,como base de sua arquitetura para suportar aplicaes distribudas. CombasenatecnologiadaWebServices,surgiuumanovaabordagemna construodesoftware:osoftwareorientadoaservios.Essaorientaouma formadeconstruodesistemas,cujoprincipalobjetivooreusoatravsde Web Services internos e externos na empresa, mantendo padres abertos para permitir a integraodediferentesplataformasetecnologias.Aessenovomtodode engenharia de software aplicou-se o termo SOA (Service Oriented Architecture), em portugus, Arquitetura Orientada a Servios (figura 4).

Figura 4 Exemplo da comunicao usando SOA Conforme definiu Earl (2005), a orientao a servios fornece uma viso ideal domundo,noqualosrecursossoclaramenteparticionadoseconsistentemente representados.Quandoaplicadaemsoftware,aorientaoaserviosestabelece um modelo universalno quala automao da lgicaeas regrasde negcios esto de acordo com essa viso. Programao Aplicada Microsoft .NET usando C#16 SOCIESC Sociedade Educacional de Santa Catarina Paraquevocpossaentendermelhoresseconceito,vamosconsiderar aconstruodeumsistemaquepossuiumconjuntodesub-rotinas. Comovocjaprendeu,amodularizaodocdigonaprogramao estruturadaeousodeclassesnaprogramaoorientadaaobjetosfornecemo meioparaumprogramaparticionado,comisso,permiteumreusode funcionalidades.Cadafuno,sub-rotinaouclasse,podesertraduzidaemum Web Service e pode ser publicada para uso nas diversas aplicaes que a utilizam. Agrandediferenaquevocretiraocdigodeprogramaodoseusistemaeo Web Service pode ter vida prpria, com manutenes e melhorias independentes do programa que a utiliza. Observe a figura 5. Figura 5 Possibilidades de converso de rotinas orientadas a servios 5O QUE A PLATAFORMA .NET? FONTE: adaptado de Earl, 2005 Programao Aplicada Microsoft .NET usando C#17 SOCIESC Sociedade Educacional de Santa Catarina Ostpicosapresentadosatomomentonosfornecemoselementosque influenciaramaMicrosoftnaconstruodaplataforma.NET.Ento,oquea plataforma .NET? A .NET uma iniciativa daMicrosoft para suportaruma estratgianouso de WebServicesusandoumconjuntointegradodetecnologiasesolues,como objetivodefornecerumaabordagemcompletaecoesadedisponibilizaode solues para as empresas. SegundoPlatt(2003),a.NETumainfra-estruturapr-construdapara resolverproblemasdasaplicaespara aInternet.Oautordefende quesomente um grande conjunto de tecnologias e nada mais. Porm, a Microsoft procura afirmar que a .NEToferece um grande avano na forma como as pessoas trabalham e por isso,afabricantedesoftwareacreditaquehumapropostademudanano paradigma de como os negcios so conduzidos usando .NET. 6COMPONENTES DA PLATAFORMA AMicrosoftdistribuiuasvriasfuncionalidadesdaplataforma.NETem componentes.Cadacomponentepossuicaractersticasparticulares,finalidades especficas e total integrao entre eles. Vamos conhecer cada um deles: Ambiente de execuo de aplicaes, .NET Framework: um conjunto derecursosinstaladosnocomputador,comoobjetivodepermitira execuodeprogramasconstrudospara.NET.Seuprincipalobjetivo forneceraoprogramadorbibliotecasdeclassesparareuso,aexecuo controladaeadministradadeprogramasefacilidadesparaa disponibilizaodasoluoconstruda.Osprogramaseseus componentes so executados sobre o .NET Framework; Conjuntodeserviosutilizandoumainfra-estruturadesoftware servidores:aMicrosoftreuniutodososseusprodutosutilizadoscomo softwareservidoreseestabeleceutotalcompatibilidadedosserviosde cadaumdessesprodutos,comaplataforma.NET.Aesseconjuntode produtos batizou-se Windows Server System; .NETBuildingBlocks:sorepresentadosporumconjuntodeservios pr-construdosparaaceleraroprocessodeconstruodesistemas.O exemplomaiscomumoMicrosoftPassport(agoratambmconhecido Programao Aplicada Microsoft .NET usando C#18 SOCIESC Sociedade Educacional de Santa Catarina comoWindowsLiveID-figura6),queforneceserviosdeautenticao de usurios e que pode ser utilizado na construo de sistemas, liberando oprogramadordotrabalhodeconstruirumarotinaespecficaparaa autenticao de usurios; Figura 6 Pgina do Windows Live ID VisualStudio.NET:aferramentafornecidapelaMicrosoftparaa construodesistemasparaaplataforma.NET.Comesseproduto,o programador cria seus programas e se utiliza de todas as potencialidades do .NET. Cadaumdoscomponentesdaplataforma.NETpossuiumgrandeconjunto detecnologiasesubcomponenteseacadaumestosendoaprimoradose 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.Outroaspectorelevantedaplataformaquetodososseuscomponentes estoconstrudosparaoferecereconsumirpadresdetecnologiabaseadosna Internet,ouseja,todososelementosinfluenciadoresquevimosnostpicos Programao Aplicada Microsoft .NET usando C#19 SOCIESC Sociedade Educacional de Santa Catarina anteriores,foramimplementadoslogicamentepelaMicrosoft.arespostada Microsoft para o desenvolvimento de sistemas distribudos baseados na Internet. Paraquevoctenhaumavisomaisclaradoscomponentesdaplataforma, observe a figura 7. Figura 7 Componentes da Plataforma .NET 7.NET FRAMEWORK Considerando sua importncia na plataforma, o .NET Frameworkmereceum tpicoparticularparaseumelhorentendimento.Ele,naverdade,umsoftwareacopladoaosistemaoperacional,comoobjetivodeexecutaraplicaesparaa plataforma .NET. Cabeaquiumaobservaoimportanteepolmica:acompatibilidadedo .NETFrameworkcomsistemasoperacionais.Naprtica,aMicrosoft criouoprodutoparaseracopladoapenasemseussistemas operacionaisesuasverses(WindowsXP,Windows2000,Windows2003eetc.). Dessa forma,osaplicativosconstrudos para.NET somente podemser executados em equipamentos que tenham instalado um sistema operacional da Microsoft. Esse assunto polmico, porque a plataforma concorrente o Java da Sun, que oferece umcompletosuporteavriossistemasoperacionaisdemercado,incluindo FONTE: adaptado da Microsoft - MOC, 2001Programao Aplicada Microsoft .NET usando C#20 SOCIESC Sociedade Educacional de Santa Catarina logicamenteoLinux.Percebaentoquetemosaquiumaspectodecompetiode mercadoentreosfabricantesdesoftware:deumladoaMicrosoft,procurando fortaleceraindamaissuabaseWindowsinstalada,dooutroaSun,oferecendoum nveldeflexilidadequepermiteaoprogramadorescolherouadaptar-seaosistema operacional de destino, sem amarras.MasexisteminiciativasnopatrocinadasoficialmentepelaMicrosoft,paraa execuo de programas .NET em outros sistemas operacionais. O projeto MONO uma iniciativa da comunidade de desenvolvedores para a construo de uma verso baseada em GNU/Linux, como software livre, da plataforma .NET. Para maiores informaes sobre o projeto,acesseo seguinte endereo na Internet: http://www.mono-project.com/Main_Page. O.NETFrameworkorganizadoemsubcomponentes(figura8)que, juntos, oferecem ampla camada de desenvolvimento e reuso de aplicaes, utilizando-se de conceitos de integrao e interdepependncia. Figura 8 Componentes da Plataforma .NET 7.1Cdigo Gerenciado Oprincipalsubcomponentedo.NETFrameworkoconceitodecdigo gerenciado,construdopeloprogramadoreexecutadoemumambientechamado CommonLanguageRuntime(CLR)(figura9).Esseambienteinterferena FONTE: adaptado da Microsoft - MOC, 2001Programao Aplicada Microsoft .NET usando C#21 SOCIESC Sociedade Educacional de Santa Catarina execuodosprogramas,permitindoqueo.NETFrameworkgarantaumasriede aspectosvlidosparaoperfeitoesegurofuncionamentotantodaaplicaocomo tambm do sistema operacional. Figura 9 Common Language Runtime nestemomentoquepercebemosumadasprimeirasvantagensda plataforma.NET,queofereceaoprogramadoracapacidadedeutilizarqualquer linguagemdeprogramaoquesuporte.NET,fazendocomqueessaescolha atendaseuconhecimentopr-existenteemdeterminadalinguagem(Java,Cobol, VisualBasic,C#eetc.),aumentando,dessaforma,aprodutividadenaconstruo de sistemas. Quandoum programa compilado para .NET, o compilador converte alinguagemdeprogramaoutilizadaparaumalinguagempadrodaplataforma .NETchamadaMicrosoftIntermediateLanguage(MSIL)(figura10).Toda linguagemgeraomesmoMSIL,cujacapacidadepermiteaoprogramadorpossuir particularidadesemdeterminadalinguagem,masoseuresultadosersempreo mesmo. Figura 10 O processo de compilao e execuo do MSIL Programao Aplicada Microsoft .NET usando C#22 SOCIESC Sociedade Educacional de Santa Catarina OprogramageradoemMSILnopodeserexecutadodiretamentepelo sistemaoperacional.necessrioumprogramaparasuaexecuo.nesse momentoqueumoutrosubcomponentedo.NETFrameworkatua:ocompilador Just-in-time.EssesoftwarebasicamenteloprogramacompiladoemMSILe executa-odeacordocomalgicaempregadapeloprogramador,conforme mostramos na figura 8. 7.2Biblioteca de classes do .NET Framework umconjuntodeprogramas,organizadosembibliotecasdecdigoj compilado,queforneceoconjuntoderecursosqueaplataforma.NETpossui,para que o programador construa o sistema utilizando-se das funcionalidades disponveis. Se o programador precisa abrir um arquivo, por exemplo, deve se utilizar das rotinas de abertura de arquivos j disponveis na plataforma, para que o seu programa seja considerado cdigo gerenciado. As bibliotecas de classes ficam facilmente disponveis atravs de ferramentas dedesenvolvimento,comoocasodoVisualStudio.NET,quepermiteao programador inserir uma determinada funcionalidade rapidamente.Asbibliotecassoorganizadasdetalmodoqueoprogramadorencontre facilidadeparaumafuncionalidadeespecficaetambmorganizeasclassesem categoriasehierarquia,permitindoaindaoreusoentreasprpriasclasses.Cada elemento ou funcionalidade dessa hierarquia de bibliotecas de classe, chamado de namespace.Naversoatualdo.NET Framework,abiblotecafornececentenas de classes, para atender s mais diversas finalidades. 7.3Acesso a dados na plataforma .NET Quando falamos em acesso a dados, estamos nos referindo funcionalidade daaplicaoquepermite obterou armazenar informaesem um banco dedados. Comoobjetivodefacilitarotrabalhodeconstruodeprogramascomacessoa bancodedados,aplatalaforma.NETofereceumconjuntodeclasseschamada ADO.NETcontendorecursosefuncionalidadesparaatendergrandemaioriadas demandas para o desenvolvimento de sistemas com banco de dados. Programao Aplicada Microsoft .NET usando C#23 SOCIESC Sociedade Educacional de Santa Catarina 7.4Desenvolvimento de Sistemas para a Web OdesenvolvimentodeaplicaesparaWebfacilitado,tambm,porum conjuntodeclasseschamadoASP.NET.Naverdade,oASP.NETaevoluode umambientedeexecuodeaplicaesparaaWebqueaMicrosoftlanouem 1997,chamadoActiveServerPages(ASP).Basicamente,oASPpermiteao programador trabalhar com o conceito de pginas dinmicas no desenvolvimento de aplicaes para Web, recursos fundamentais para seu sucesso. 7.5Formulrios Windows Otermoformulriorefere-sesjanelasapresentadasdoseusistema.A plataforma.NEToferecetambmumconjuntodeclassesecomponentesparaa construorpidadetelasparaainterfacecomousuriodosistema.Aesse conjunto chamamosWindows Forms. 8AS LINGUAGENS PARA .NET Comovimosnotpicoanterior,o.NETFrameworkpermitequeo programador escolha a linguagem que deseja utilizar na construo de seu sistema. Paraisso,alinguagemtambmprecisasuportarasregrasdaplataforma.NET. Chamamos de linguagem para .NET a linguagem que gerar cdigo gerenciado com basenospadresestabelecidospelaplataforma.Nemtodasaslinguagens oferecem esse suporte. Emparticular,alinguagemC#foilanadaemconjuntocomaplataforma .NET.Seuprincipalobjetivopermitiraoprogramadorocompletousodos benefciosdaplataforma,masutilizando-sedepadresdeconstruoj conhecidos.alinguagempreferencialnodesenvolvimentopara .NET,jqueest estruturadacomtodososaspectosqueaMicrosoftesperaqueumprogamadorutilize em .NET. OutraslinguagensforamtransportadaspelaMicrosoftparasuportara plataforma.NETcomooVisualBasiceoVisualJ#(versoJavadaMicrosoft). Linguagens de outros fabricantes tambm foram adequadas. Programao Aplicada Microsoft .NET usando C#24 SOCIESC Sociedade Educacional de Santa Catarina

COBOL, SmallTalk, Delphi, Perl. Sntese Nesta aula voc tomou conhecimento da plataforma .NET, sua importnciae seuscomponentes.Pudemosperceberqueumassuntoextenso,mas extremamenteatual,considerandoastecnologiasqueaMicrosoftempregouna construodaplataforma.importanteconcluirmosque,usandoa.NET,o programadortrabalhaemumoutronveldedesenvolvimentodesistemas,comum grandeaumentodeprodutividadeenousoadequadodetecnologiasnecessrias para o dinmico mundo dos negcios de hoje. Na prxima aula, vamos conhecer uma ferramenta para o desenvolvimento de sistemasparaaplataforma.NET,eestaremosiniciandonossosprimeiros programas. At l. Programao Aplicada Microsoft .NET usando C#25 SOCIESC Sociedade Educacional de Santa Catarina Exerccios Propostos

1)Citedoismotivosquefavoreceramcriaodaplataforma.NET.Explique com as suas prprias palavras cada motivo. ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 2)O que a plataforma .NET? ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 3)Quais so os componentes da plataforma .NET? _________________________________________________________________________________________________________________________________________________________________________________________ 4) Associe a coluna da direita com a coluna da esquerda. ( ) Intermediate Language 1.Nomedadoaoconjuntodeclassesfornecidas pelaplataforma.NET,comoobjetivodefornecer umaestruturahierrquicaeorganizadade funes. ( ) Compilador Just-in-Time2.Linguagemgeradaapsacompilaodeum programa desenvolvido para a plataforma .NET. ( ) Namespace 3.Biblioteca de classes que oferece suporte a banco de dados na plataforma .NET. ( ) ADO.NET 4.Softwareutilizadoparagerarcdigo.NET (Intermediate Language). Programao 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 programao em linguagem C#; Utilizar o compilador e executar um programa; Entender como distribuir um programa para o usurio. Contedos da aula Acompanhe os assuntos desta aula, se preferir, ao terminar, assinale o contedo j estudado. necessrio um produto para desenvolvimento em .NET? O que o Visual Studio .NET? As verses do Visual Studio Instalado a verso Express Conhecendo o ambiente Criando um simples programa em C# Programao Aplicada Microsoft .NET usando C#27 SOCIESC Sociedade Educacional de Santa Catarina Prezado(a) aluno(a), Bem-vindo(a) nossasegundaaula.Vocvernesta aulacomoutilizar umaferramentadedesenvolvimentodesistemasparaaplataforma .NET. Essa ferramenta ser utilizada durante todo o mdulo, por isso, vamos entrar emdetalhesoperacionaisparaquevoctenhaumexcelentedesempenhonas atividadesemaula.Tambmfaremosumaprovocaosobreanecessidadede utilizarmosounoumaferramentadedesenvolvimento,paraconstruirprogramas .NET. Boa aula! 1 NECESSRIO UM PRODUTO PARA DESENVOLVIMENTO EM .NET? Essaaprincipalperguntaqueoprogramadorprecisaresponderquando falamosdoVisualStudio.Muitosprofissionaisdeinformticaquestionama obrigatoriedadenousodedeterminadaferramenta,porsentiremumcerto direcionamentoouamarraodosfabricantesdesoftware.Naverdade,quando falamosemdesenvolvimentodesistemas,nascondiesatuais,estamossempre buscandomeiosdeatingirmaiorprodutividadeeprecisonaconstruode algoritmos.Historicamente,aslinguagenscompiladasnoexigemumaferramentapara construirprogramas,masasuaadoofacilitaotrabalhodoprogramadore aumenta a sua produtividade. Essaafirmativatambmseaplicaplataforma.NET.Nonecessrio(ou obrigatrio)ousodoVisualStudio.NETparadesenvolversistemaspara.NET,na verdade,osprogramadorese asempresas desenvolvedoresde software percebem que o Visual Studio .NET acaba sendo a ferramenta ideal, considerando sua natural aplicao dos conceitos e tecnologias envolvidas na .NET. Isso ainda mais forte se a opo de linguagem for da Microsoft, como o caso do C#. Outrasferramentasdedesenvolvimento,tambmconhecidascomoIDE (Integrated Development Environment, ou Ambiente de Desenvolvimento Integrado), existemnomercado,comooSharpDevelopeoBorlandIDE,quepossuemsuas caractersticasespecficasepodemacabaratendendoaumpblicoparticularde desenvolvedores. Programao Aplicada Microsoft .NET usando C#28 SOCIESC Sociedade Educacional de Santa Catarina AMicrosoftacabouinserindonoVisualStudio.NETumaspectorelevante:a capacidadedeseutilizarqualquerlinguagemquesuporte.NETepossuarecursos deintegraocomoambientedoproduto.Porexemplo,atualmentejpossvel desenvolver em COBOL para .NET, usando o Visual Studio da Microsoft (figura 11).A ferramentadaMicrosoftofereceumexcelentesuporteextensode suas capacidadesinternas,permitindoapersonalizao,construoderecursos especficosparadeterminadalinguagem,oqueestsendoexploradopor determinadosfabricantes,quesesentemliberadosparafocarnopotencialda linguagem e no na ferramenta de desenvolvimento. Figura 11 Cobol no Visual Studio Apesar de todosos argumentos vantajososnouso do Visual Studio .NET ou deferramentaequivalentenoinfluenciaremoprogramadormaisresistente,ho meio convencionalde desenvolvimentode sistemas.NETsemumaIDE.Paraisso, basta que o progamador realize: Odownloaddoprogramadeinstalaodo.NETFrameworkpara desenvolvimento, que pode ser obtido no site da Microsoft; Programao Aplicada Microsoft .NET usando C#29 SOCIESC Sociedade Educacional de Santa Catarina Utilizarumeditor detextos desuaescolha,como oBlocodeNotas,para digitaroalgoritmodeacordocomasintaxedalinguagemdesejada,por exemplo C#; AbrirumasessodoPromptdoMS-DOSeefetuaracompilaodo programaconstrudo,usandoocompiladorfornecidopelopacotede instalao do .NET Framework; Executar o programa gerado pelo compilador. A questo que fica aqui : qual a produtividade do programador usando esse mtodo? O uso de uma ferramenta IDE exatamente automatizar o processo acima descrito, favorecendo outros recursos importantes como: a validao em tempo real;a conformidade entre a linha digitada e a sintaxe da linguagem; ousoderecursosdedepuraodocdigoparalocalizarumerrode lgica; aexecuo doprogramadiretamentedoambienteda ferramenta,sema necessidade de digitar algum comando. 2O QUE O VISUAL STUDIO .NET? anovageraodasferramentasdedesenvolvimentodesistemasda Microsoft,comototalsuportestecnologiaserecursosdisponveisnaplataforma .NET.Elaofereceaoprogramadoroquehdemaisatualnasprticasde engenhariadesoftwareeforneceumconjuntodeversesparaatenders particularidadesdecadaperfildeprogramadoredaenvergaduradoprojetode software a ser construdo. Aprximaperguntaqueoprogramadorprecisaresponder:comoVisual Studio.NET,quaisostiposdeaplicaesquepodemosconstruir?Aversoatual, 2005, permite que o programador construa os seguintes tipos de aplicaes: WindowsApplications:esteonomedadosaplicaes.NET desenvolvidascomInterfaceGrficaesoutilizadaspelosusurios Programao Aplicada Microsoft .NET usando C#30 SOCIESC Sociedade Educacional de Santa Catarina localmentenoscomputadores,ouporumaredeinterna.Essetipode aplicaousadaparasoluescliente-servidorenoseutiliza primariamente dos recursos da Internet; ConsoleApplications:soasaplicaesquenopossueminterface grfica,tambmconhecidascomoaplicaesdemodocaractere baseadas em MS-DOS e executadas em uma janela de comando do MS-DOS em um sistema operacional Windows; Componentesreutilizveisoubibliotecasdeclasses:permitema construodecomponentesaseremreutilizadosporoutrasaplicaes, seguindo padres de mercado para sistemas distribudos; WebApplications:soluesbaseadasemtecnologiasdaInternet,que utilizamprimariamenteastecnologiasdaWeb,comoHTML,Javascript, http, etc. Alm disso, tambm podem ser construdos Web Services, como componentesaseremacessadospelaInternet,tambmusandopadres de mercado. Deacordocomaaplicaodesejada,precisamosutilizarumaverso especfica do Visual Studio.Algumas vantagens no uso do Visual Studio .NET: OVisualStudioautomatizaospassosnecessriosparacompilarum cdigo-fonte, mas fornece um controle completo sobre os parmetros que podemseralteradosparamudarocomportamentodoprocessode compilao; O editor de textos foi desenvolvimento especificamente para as linguagens suportadaspeloVisualStudio,principalmenteoC#,permitindoquea ferramentapossa,deformasimpleseintuitiva,detectarerrosesugerir cdigos onde for adequado; Fornece um conjunto de modelos prontos para a construo de aplicaes especficas, acelerando o processo de construo do projeto; OVisualStudio(figura12)fornecevriosassistentesparaguiaro programadoremtarefasmaiscomplexasouqueexigemumnvelde cuidado,liberandooprogramadordedetalhesnecessriosparaa construo de determinada funcionalidade. Programao Aplicada Microsoft .NET usando C#31 SOCIESC Sociedade Educacional de Santa Catarina Figura 12 Ambiente do Visual Studio .NET Express 3AS VERSES DO VISUAL STUDIO OVisualStudio.NET,verso2005,apresentacincoopesparausodo produto e cada uma direcionada para um perfil especfico de profissional de TI, bem como, de acordo com a finalidade do projeto de software. AopogratuitadoprodutochamadalinhaExpress,divididanas seguintes subverses: Web Developer: direcionada para a construo de aplicaes para a Web (chamadas Web Applications); VisualBasic:voltadaparaodesenvolvimentodesoluesbaseadasem formulrios, usando a linguagem Visual Basic; VisualC#:voltadaparaodesenvolvimentodesoluesbaseadasem formulrios, usando a linguagem C#; VisualC++:voltadaparaodesenvolvimentodesoluesbaseadasem formulrios, usando a linguagem C++; VisualJ#:voltadaparaodesenvolvimentodesoluesbaseadasem formulrios, usando a linguagem Java; Programao Aplicada Microsoft .NET usando C#32 SOCIESC Sociedade Educacional de Santa Catarina SQLExpress:paraodesenvolvimentoegerenciamentodesoluesa seremarmazenadaseexecutadasnobancodedadosdaMicrosoft. Tambmservecomobasededadosparaasdemaisversesdalinha Express. AlmdasversesgratuitasdoVisualStudio,tambmexistemtrsverses pagas do produto: Standard: das verses pagas, a opo mais barata. Tem por objetivo o desenvolvimentodepequenassolueseapenasumprogramadorinterage com o projeto; Professional: essa verso possui as mesmas caractersticas da Standard, adicionandorecursosmaisrobustosparaprojetosdemdiotamanhoe com suporte amplicadoa banco de dados SQL Server 2005; ToolsforOffice:paraodesenvolvimentodecomponentesquesero utilizadosporprodutosdaplataformaOfficeSystem(Excel, Wordeetc.). Possuirecursoslimitadosesuascapacidadesestototalmente direcionadas para o uso apenas com os produtos Office; VisualStudioTeamSytem:possuitodososrecursosdasversesj mencionadas,masampliasobremaneiraacapacidadederecursosdo VisualStudioparatrabalharemequipesdeprojeto.OTeamSystem prope-seafornecerumconjuntocompletodeferramentasparatodoo ciclodedesenvolvimentodesolues,incluindodocumentaesea gestodetestesdoproduto.excelenteparaprojetosdegrandeporte, que envolvem um grande nmero de programadores. Nesse mdulo utilizaemos o produto Visual C# 2005 Express Edition. 2.4 Instalando a verso Express PararealizarainstalaodaversoExpressdoVisualStudio,parao desenvolvimentocomC#,vocprecisaacessarositedaMicrosoftnoseguinte endereo (infelizmente ainda no h verso em portugus do produto): http://msdn2.microsoft.com/pt-br/vstudio/default.aspx Programao Aplicada Microsoft .NET usando C#33 SOCIESC Sociedade Educacional de Santa Catarina H duas formas para realizar a instalao dessa verso: on-line ou off-line. Na versoon-line,vocfarodownloaddeumpequenoprogramaque,aoser inicializado,faraconexocomositedaMicrosofterealizarainstalaoapso download dos componentes necessrios. Para a verso off-line, voc dever efetuar o download de um grande arquivo que, na verdade, uma imagem de CD, grav-lo com o contedo da imagem e depois realizar a instalao a partir do CD gravado. O mtodo mais simples (mas a velocidade depender de sua conexo com a Internet),ainstalaoon-line.importanteressaltarqueaMicrosoftexigeo registro do produto, apesar de no cobrar nenhum licenciamento. Nessecenriodeinstalaoon-line,apsodownloaddoarquivopara instalao,executeoprogramaesigaospassosdoassistentedeinstalao, habilitandooudesabilitandoopesdeacordocomasuafinalidadede desenvolvimento. Para esse mdulo, 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 instalao; 3.Clique no boto Next; 4.Najaneladeaceitedalicenadeuso(End-userLicenseAgreement), marque a frase IacceptthetermsoftheLicenseAgreement e depois, clique no boto Next; Figura 13 Opo de aceite da Licena de Uso 5.Naprximajaneladoassistentedeinstalao,noselecionenenhuma opo e clique no boto Next. As duas opes apresentadas referem-se : MicrosoftMSDN-adocumentaodoproduto;eMicrosoftSQL Programao Aplicada Microsoft .NET usando C#34 SOCIESC Sociedade Educacional de Santa Catarina Server2005Express-obancodedadosquepodeserintegradoao ambiente (figura 14). Escolha a opo do banco de dados (Microsoft SQL Server),jqueestaremospreparandooambienteparaoassuntode banco de dados com C#; Figura 14 Opes para produtos adicionais ao C# Express 6.Aprximajanelasolicitaolocaldearmazenamentodosoftware,paraa instalao.Essaopoimportante,casovocnopossuaespao suficientenodiscorgidoparaainstalaodoprograma.Casopossua espao,mantenhaainformaosugeridaecliquenobotoNext(figura 15). Programao Aplicada Microsoft .NET usando C#35 SOCIESC Sociedade Educacional de Santa Catarina Figura 15 Informaes sobre a pasta de destino do programa de instalao 7.Oprogramadeinstalaoiniciaracpiaeaconfiguraodosistema operacionalparaaexecuodoprograma.Aguardeotrminoda instalao (figura 16); Figura 16 Acompanhamento do processo de instalao Observe o espao necessrio para instalao e o espao disponvel no disco rgido de destino. Programao Aplicada Microsoft .NET usando C#36 SOCIESC Sociedade Educacional de Santa Catarina 8.Quandooprogramadeinstalaoterminaropassoanterior,ajanelade conclusoserapresentada,fornecendoumresumodainstalaoe instrues para registro do produto (figura 17); Figura 17 Tela final da instalao 9.Cliquenafrasesublinhadaem azulRegisterNow,paraqueo programa deinstalaoo(a)encaminhediretamenteparaapginaderegistrodo produto na Internet; 10. Paraefetuar o registro, voc precisadeum Microsoft Passport. Na janela apresentada, efetue o seu login; 11. NaprximapginadositederegistrodaMicrosoft,informeosdados solicitados no formulrio (figura 18); 12. Finalmente, o site de registroapresentaruma janela contendo onmero de srie para registro do produto; Programao Aplicada Microsoft .NET usando C#37 SOCIESC Sociedade Educacional de Santa Catarina Figura 18 Janela de Registro 13.CopieonmeroderegistroeexecuteoVisualC#2005Express(figura 19).Aguardeatqueoprogramadepreparaodaprimeiraexecuo termine; Figura 19 Janela de preparao da primeira execuo 14. Noambientedoprograma,executeocomandoRegisterproductdo menu Help (figura 20); Figura 20 Menu Help Programao Aplicada Microsoft .NET usando C#38 SOCIESC Sociedade Educacional de Santa Catarina 15. Najanelaapresentada,coleonmeroderegistronocampoRegistration KeyecliquenobotoCompleteRegistration(quesomenteser habilitado se houver um nmero digitado no campo) (figura 21); Figura 21 Janela de registro 16. O seu programa est pronto para ser utilizado. 5CONHECENDO O AMBIENTE DO VISUAL C# 2005 EXPRESS Quandovocexecutaoprogramapelaprimeiravez,eleapresentaum conjuntodepainisvazioseumcontedocentraldajanela,contendoinformaes sobrenovidadeseinformaesatualizadasdaMicrosoft(quepoderoestar atualizadasseaconexocomaInternetexistir).Paraqueosdemaispainis apresentemsuasfuncionalidadeseinformaes,necessrioqueumprojetoseja aberto ou criado. AoclicarnaopoCreate:Project...serapresentadaumanovajanela, contendoosmodelosdeaplicaesquevocpoderutilizarparaconstruiroseu Programao Aplicada Microsoft .NET usando C#39 SOCIESC Sociedade Educacional de Santa Catarina programa(figura22).Omodeloaserselecionado,deversercorrespondente finalidade da sua aplicao. Figura 22 Janela de modelos de aplicaes Emnossomdulo,osprojetosquecriaremosserosempreWindows Applications. Mas vamos conhecer os demais modelos disponveis: ModeloDescrio Windows ApplicationVoltadoparaodesenvolvimentodesistemasbaseados em Janelas/Formulrios Class LibraryPermite a construo de uma biblioteca de classes, para reuso em outras aplicaes Console ApplicationParaodesenvolvimentodesoluesemmodo caractere, para o uso em janelas de Prompt do MS-DOS Empty ProjectModelovazio,semainseroautomticadequalquer recurso. til quando desejamos construir um projeto do zero,semqualquerparmetrojinicializado,comonos outros modelos. Starter KitsAMicrosoftfornecevriosStarterKitsparaaceleraro desenvolvimentodeumadeterminadaaplicao.Por padro, o produto j vem instalado com dois kits: Screen Saver e Movie Collection.

Programao Aplicada Microsoft .NET usando C#40 SOCIESC Sociedade Educacional de Santa Catarina UsandooconeSearchonlinetemplates...vocpodeprocurarnositeda Microsoft outros modelos ou Starter kits. Aps escolher o modelo desejado, informe o nome do projeto no campo Name da janela. Aoescolheraopomaiscomum,WindowsApplication,ajanelado ambiente de desenvolvimento do Visual C# tal qual a que mostramos na figura 23: Figura 23 Janela principal com um projeto aberto Najanelaprincipal,vocpodeverificarqueexistemvriasjanelase elementosvisuais.Vamosconhecerrapidamentecadaumdeles.Napartesuperior da janela esto o menu e a barra de ferramentas, que seguem as mesmas regras de qualquerprogramaparaWindows.NoladoesquerdoestopainelToolbox(caixa deferramentas),quepermiteainserodeobjetosdiretamentenoformulrio.No lado direito da janela, dois painis so apresentados: o painel superior o Solution Explorereopainelinferior a janelade Propriedades.Na partecentral dajanela estumformulriovazio,prontoparaserpersonalizado,deacordocomas necessidades de sua aplicao (figura 24). Programao Aplicada Microsoft .NET usando C#41 SOCIESC Sociedade Educacional de Santa Catarina Figura 24 Janela principal e seus componentes O desenvolvimento de solues, usando essa ferramenta, segue as mesmas orientaes para as aplicaes RAD (Rapid Application Development), ou seja, voc desenhaainterfacequedesejaconstruir,alteraaspropriedades,insereobjetos interfaceatravsdoToolboxedepoisassociacdigodeprogramaoaoseventos associados aos objetos. Alm disso, tambm voc poder criar classes e subrotinas para reuso dentro e fora da aplicao. Sevocefetuarumduplocliquenoformulriovazio,nocentrodajanela,o editor decdigodoVisualStudio serapresentado. H,noeditordecdigo,vrias particularidadesimportantesparaoprogramador,exemplo:navegaonocdigo, Intellisense e marcas de reviso. De todos os detalhes do editor, o mais interessante oIntellisense,queforneceinformaesaoprogramador,deacordocomos comandos digitadosno ambientedo editor(figura25). O ambiente do Visual Studio apresenta opes de acordo com o comando envolvido. Programao Aplicada Microsoft .NET usando C#42 SOCIESC Sociedade Educacional de Santa Catarina Figura 25 Janela do editor de cdigo OIntellisenseforneceaoeditordecdigoacapacidadedesugerirvrias opes no contexto do programa, medida que voc digita, uma cortina flutuante apresentadacomositenspossveisaseremutilizadosnadigitao,acelerandoo processo de construo do cdigo. HtambmoHotCompiler,quedestacanocdigoasinstruesque apresentam errosde sintaxe, enquanto voc digitao seu programa. Quando hum erro, o texto sublinhado e, ao passar com o mouse sobre o texto destacado, ser apresentada uma pequena janela com informaes sobre o erro. OVisualC#2005Expresstambmforneceumcompiladorintegradoea capacidade de executar o seu cdigo diretamente do ambiente de programao. Ele permite compilar um arquivo particular ou toda a soluo (um grupo de arquivos que, juntos,formaaaplicao).Umavez compiladasuaaplicao,vocpodeseutilizar dos recursos de depurao de cdigo (debug) do ambiente, para localizar possveis errosdelgica.Finalmente,apsterestabilizadotodosospossveisproblemasde Programao Aplicada Microsoft .NET usando C#43 SOCIESC Sociedade Educacional de Santa Catarina seuprograma,vocpodergerarumaaplicaoaserdistribudaemformade pacote de aplicao. 6 CRIANDO UM SIMPLES PROGRAMA EM C# Nessetpicovamosrealizarospassosdociclodedesenvolvimentodeum sistemasimples,usandooVisualC#2005Express(figura26).Basicamente,os passos so mesmos j mencionados anteriormente: Desenharainterfacequedesejaapresentarparaousurio,utilizandoas opes de objetos do Toolbox; Alteraraspropriedadesdajanelaedosobjetosparaatenderauma funcionalidade especfica; Associar cdigo de programao aos eventos dos objetos, com o objetivo de fornecer funcionalidades ao usurio, 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 no 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 WindowsApplication, informe o nome do projeto de AulaPrtica1 e clique no boto OK; Programao Aplicada Microsoft .NET usando C#44 SOCIESC Sociedade Educacional de Santa Catarina 4.AtravsdoToolbox,insiraumbotoaoformulrio.Suateladeverse apresentar conforme a figura 27; Figura 27 Boto inserido no formulrio 5. Selecioneo boto inseridono formulrioenopainelde Propriedades, altere a propriedade Text para Mensagem, conforme a figura 28; Figura 28 Painel de propriedades 6.Agoraefetueumduplocliquesobreoboto.Opaineldecdigoser apresentado(figura29).Entodigiteoseguintecomandoentreaschaves abaixo do comando private void button1_Click; MessageBox.Show (Exemplo de primeiro programa em C#); Figura 29 Janela de cdigo com o comando inserido 7.O cdigo de seu programa fica assim: namespace AulaPrtica1 { public partial class Form1 : Form { Programao 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.Paratestaroprograma,cliquenobotoStartDebugging,oupressionea tecla F5; 9.A janela do programa ser apresentada. Clique no boto e veja o resultado; 10.Clique no boto Fechar da janela, com o objetivo de parar o programa; 11.Agoravamoscompilaroprogramaparaadistribuio.Executeocomando Build Solution do menu Build, ou pressione a tecla F6; 12.ExecuteocomandoPublishdomenuBuild.Najanelaapresentada, referenteaoAssitentedePublicao,informeapastadedestinoparaqueo programasejadisponibilizado.Essajanelapermitequevocenvieo programageradoparaocomputadorlocal,paraumcomputadordarede,ou umlocaldearmazenamentonaInternet.Informeolocalouutilizeoboto Browsepara localizaruma pastalocalemseucomputadore cliquenoboto Finish; 13. Localizeapastadedestinoinformadanopasso12everifiquequesero criados dois arquivos (um referente ao programa de instalao e outro que o prprioprogramadesenvolvido).Esseopacotedeinstalaodeseu programa, que poder ser disponibilizado para os usurios do sistema. Sntese NestaaulavocestudousobreaimportnciadousodeferramentasIDEparao desenvolvimento.NETetambmconheceuasversesdoVisualStudio, entendendoqualaversomaisadequadaparaotipodeprojetoenvolvido.Alm disso,vocaprendeucomoinstalaroVisualStudioparainiciarosseustrabalhos, Programao Aplicada Microsoft .NET usando C#46 SOCIESC Sociedade Educacional de Santa Catarina bem como obteve as informaes bsicas sobre o ambiente do produto. Finalmente, como primeiro passo na incurso do desenvolvimento em C#, voc executou o ciclo de desenvolvimento RAD, usando um exemplo simples na linguagem C#. Naprximaaulavamosiniciarnossaprimeiraincursoefetivanalinguagem deprogramaoC#.Vamosadiante,poisagoraosassuntosvocomeara apresentar resultados prticos. At a prxima aula. Exerccios Propostos 1)Diante do que voc aprendeu nesta aula, obrigatrio o uso do Visual Studio para o desenvolvimento de aplicaes .NET? Por qu? ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 2)possvelutilizaroutraslinguagensdedesenvolvimento,dentrodoVisual Studio, alm do C#? Se positivo, cite alguns exemplos de linguagem.__________________________________________________________________________________________________________________________________________________________________________________________ 3)Oseuprojeto tempor finalidadeodesenvolvimentodeumaaplicaomdia para a Web. Qual a verso do Visual Studio que voc dever utilizar? ____________________________________________________________________________________________________________________________ Programao Aplicada Microsoft .NET usando C#47 SOCIESC Sociedade Educacional de Santa Catarina Aula 3 TRABALHANDO COM VARIVEIS 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 variveis e expresses.

Contedos da aula Acompanhe os assuntos desta aula, se preferir, ao terminar, assinale o contedo j estudado.Conhecendo os elementos de um programa; Regras de sintaxe da linguagem C#; Trabalhando com variveis; Recursos especiais com variveis strings; Enumeraes, estruturas e Arrays; Construindo expresses. Programao Aplicada Microsoft .NET usando C#48 SOCIESC Sociedade Educacional de Santa Catarina Prezado(a) aluno(a), Bem-vindo(a)nossaterceiraaula.Conformetratamosnasaulas anteriores,alinguagemC#foidesenvolvidaespecificamenteparaa plataforma.NET.ProjetadaporAndersHejlsberg(criadordoDelphi)eScott Wiltamuth,umdeseusprincipaisapelosfacilitaroprocessodemigraode programadoresparaanovaplataforma,bemcomo,aadoodenovos programadores.DefatooprojetodoC#buscouosmelhoresrecursosdas linguagensC,C++eJava,mascomasfacilidadesdoVisualBasicedoDelphi. orientadaaeventos,completamenteorientadaaobjetos,comumaabordagemde construo visual que permite construir programas usando um IDE (conforme vimos naaulaanterior).Oobjetivodestaaulalheapresentarosrecursosiniciaisda linguagemC#,fornecendo-lheaincursonoselementosdalinguagem,porqueque cada elementotem seulugar, entenderoobjetivode cadacomandoeconheceras regras sintticas que a linguagem implementa. Boa aula. 1CONHECENDO OS ELEMENTOS DE UM PROGRAMA C# Antes de voc conhecer as regras sintticas do C# importante que tenha a oportunidadedeanalisarumcdigoexistentenalinguagem.Aestruturada linguagemdeprogramaoprecisaserseguidaparaqueocompiladorinterprete corretamenteoprograma.OVisualStudioreforaasregrasatravsdeseus recursos de validao de sintaxe, o que no permite a compilao de um programa contendo erros. Vamos entender o cdigo C# observando a figura 30: Programao Aplicada Microsoft .NET usando C#49 SOCIESC Sociedade Educacional de Santa Catarina Figura 30 Anlise de cdigo C# De forma geral, todo programa em C# possui 5 elementos principais: rea de declaraes das classes, declarao da criao de namespace, bloco de declarao da classe, ponto de inicializao e a rea de comandos/instrues da linguagem. 1.1 rea de declaraes das classes Asprimeiraslinhasdoprogramapossuemainstruosobrea(s)classe(s) queest(o)emusonaaplicao,atravsdapalavrareservadausing.Deacordo comoque vocdesejafazer noprograma,podeutilizaruma classej existente no .NET Framework e acelerar o processo de construo de seu programa. As palavras quesereferemumaclasseexistente,seguemadocumentaodo.NET Framework.Vocpoderterumexcelentedesempenhonodesenvolvimentode sistemas.NET,seconhecerasprincipaisblbiotecasdeclasses existentesnaplataforma.Almdisso,sevocestudaraindamaisas potencialidadesdisponveisnaplataforma,estarpreparando-separaoutros Programao Aplicada Microsoft .NET usando C#50 SOCIESC Sociedade Educacional de Santa Catarina desafios.Abibliotecadeclassesfornecidano.NETFrameworkextremamente grande,mascomexperinciaelgica,facilmentepoderlocalizareutilizaruma classe especfica para um determinada finalidade. 1.2 Declarao de criao da Namespace Para evitar que ocorram colises entre as classes do usurio e as classes do .NET Framework, possvel a criao de um namespace diretamente no cdigo de programao.Oprincipalobjetivodessadeclaraogarantiraexclusividadedo nomedaclassedentrodahierarquiadenamespacesqueo.NEToferece.Toda aplicaoeclasseconstruda,porpadro,armazenadanonamespaceglobal, dessaforma,todocdigocriadopodeseracessadoporoutrocdigoqueesteja nesse mesmo namespace, apenas utilizando-se o nome da classe. Ento, o uso de namespacegarantequeocdigoserqualificado,permitindoqueocdigopossa ser acessado fora do namespace global. Essa declarao o uso da palavra reservada namespace, acompanhada do nomedanamespaceasercriada,baseadanonomeinformadopeloprogramador,que segue as mesmas regras de declarao de variveis na linguagem. Alm disso, oblocodedeclaraodanamespaceacompanhadodaschavesdeaberturae fechamento e todo o conjunto de instrues deve ficar entre essas chaves. 1.3 Bloco de declarao da classe AdeclaraoclassProgramoinciodaconstruodaclasse.Apalavra reservadaclasseacompanhadapelonomedaclasse,informadapelo programador e quesegue as regras de nomes da linguagem. Nesse caso, como um namespaceestsendocriado,jutilizandoonomeinformadopeloprogramador,a palavra Program o nome atribudo para a classe. Via de regra, o nome das classes sempre comea com letra maiscula. Programao Aplicada Microsoft .NET usando C#51 SOCIESC Sociedade Educacional de Santa Catarina 1.3 Ponto de inicializao da classe Essa declarao a criao de um mtodo da classe Program. Nesse caso, o mtodo nomeado com a palavra Main tem um significado especial, determinando ao compiladorqueoprogramacomeaapartirdesseponto.Oparnteses,apsa palavraMain,determinaparaocompiladorqueadeclaraoummtodo.Toda aplicao.NETdevepossuirummtodoMain,senoaaplicaonoser executada.AlinhadeinstruoMainfundamentalparaaconstruodeum programaemC#.Receberestriesimportantesqueprecisamser seguidasparaqueoprogamainicializecorretamente.Apalavra reservadaMainprecisasempreser iniciadacom aletramaisculaM.Almdisso,precisaserdeclaradadaseguinteforma:publicstaticvoidMain.Emuma aplicaoC#,mltiplasclassespodemexistir,masapenasumadevecontero mtodo Main. Finalmente, quando o mtodo Main finalizado, a aplicao termina. 1.4 rea de instrues/Comandos da linguagem Nesse bloco, o programador insere as instrues e a lgica do programa, que devero ser seguidos durante a execuo do programa. Nesseponto, importante voc conhecer alista de palavras reservadas quenopodemserutilizadasparanomearumavarivelouparaseutilizarcomopartedeumprograma,excetoparaimplementaro comando,de acordo com as regras da linguagem C#. 1.5Palavras reservadas da linguagem C# AspalavrasabaixosoutilizadaspelalinguagemC#esempreso apresentadas em letras minsculas. abstractasbaseboolbreak bytecasecatchcharchecked Programao Aplicada Microsoft .NET usando C#52 SOCIESC Sociedade Educacional de Santa Catarina classconstcontinuedecimaldefault delegatedodoubleelseenum eventexplicitexternfalsefinally fixedfloatforforeachgoto ifimplicitinintinterface internalislocklongnamespace newnullobjectoperatorout overrideparamsprivateprotectedpublic readonlyrefreturnsbytesealed shortsizeofstackallocstaticstring structswitchthisthrowtrue trytypeofuintulongunchecked unsafeushortusingvirtualvoid volatilewhile 2REGRAS DE SINTAXE DA LINGUAGEM C# Conformevocverificounotpicoanterior,aprogramaoC#segueregras especficas. Considere as seguintes regras essenciais para que voc possa construir programas: OC#sensvelaletrasmaisculaseminsculas,dessaforma,uma varivel declarada como Exemplo diferente de exemplo; Ousodeespaosembrancopodeserabundante,poisocompiladoros ignora para a gerao do programa; Mantenha a distribuio do cdigo implementada pelo ambiente do Visual 2005 C# Express. A indentao fundamental para queo cdigo sejade fcil leitura e entendimento; Utilizecomentrios,semprequenecessrio,usandobarrascomuns(//) precedendootextoqueserocomentrio.Emcasodecomentriosque Programao Aplicada Microsoft .NET usando C#53 SOCIESC Sociedade Educacional de Santa Catarina ocupemmaisdeumalinha,utilizeacombinao/*e*/,vejaexemplona figura 31. Figura 31 Exemplo de instrues de comentrios em C# 3TRABALHANDO COM VARIVEIS Agoraquevocobteveconhecimentossobreoselementosdeprogramao dalinguagemC#,oarmazenamentodedadosaprimeiraatividadequeum programador realiza para construir um algoritmo. H, na linguagem C#, uma extensa capacidadeparaoarmazenamentodedados,usandovariveis.Asintaxepadro para a declarao de uma varivel em C# a que mostra a figura 32. Figura 32 Exemplos de declarao de variveis Ento, a sintaxe para declarao de variveis no C# : [modificadores] tipo declaraes; Programao Aplicada Microsoft .NET usando C#54 SOCIESC Sociedade Educacional de Santa Catarina Modificadores(opcional):informaoquedeterminaaformade funcionamentodaencapsulaodavarivel,porexemplo,public,que permite o acesso pblico ou static que mantm o valor da varivel; Tipo: nome de um dos tipos de dados suportados pela linguagem C#; Identificadores:listadedeclaraesdenomesdevariveis (identificadores),separadosporvrgula.Umadeclaraopodetambm conter a atribuio de valor varivel. Lembre-sede que o C# exige que toda varivel precisa ser inicializada antes de ser utilizada. Paracriareutilizarumavarivel,vocprecisaescolherumsignificadoeum nomeapropriadoparaela.Cadavarivelpossuiumnomequetambmpodeser referenciado como identificador de varivel. 3.1 Tipos de dados Alinguagem C#fortemente baseadaemtipos,entopodemos dizerque umalinguagemtipada.Issosignificaquetodoobjetocriadoouutilizadoprecisa, obrigatoriamente,serumtipoespecficodedado,exemplo:uminteiro,ouuma string. Esserecursoumaspectoimportantedentrodoprocessode desenvolvimentodesistemas,porimpactardiretamentenaperformancedo programae no grau de planejamentodaaplicao. De acordo com o tipodedados aplicados em determinada situao, haver perda ou ganho de performance durante a operao, pois poder gerar uma exceo no sistema, se o tipo de dado escolhido armazenarumainformaoqueoriginalmentenohaviasidoplanejada.A linguagemC#possuiduasgrandescategorias detiposdedados:intrnsecoseos tipos definidos pelo usurio. Os tipos intrnsecos so os tipos de dados pr-construdos na linguagem. No casodo.NET, estobaseadosnaespecificaoCTS(CommonTypeSystem)da plataforma.Algunsautorestambmsereferemaostiposintrnsecoscomotipos primitivos, considerando que o C# acessa diretamente as classes bsicas do .NET e ostiposdedados;porexemplo,otipodedadosintdoC#umsinnimopara System.Int32, um tipo de dado primitivo que define um nmero inteiro de 32-bits com sinal. Programao Aplicada Microsoft .NET usando C#55 SOCIESC Sociedade Educacional de Santa Catarina 3.1.1Tipos de dados intrnsecos- Inteiros So 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. TipoImplementaoTipo 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 Programao Aplicada Microsoft .NET usando C#56 SOCIESC Sociedade Educacional de Santa Catarina 3.1.2Tipos de dados intrnsecos Lgicos Humtipodedadobooleanoutilizadoparaotrabalhocomexpressesque precisa representar dado FALSO ou VERDADEIRO. TipoImplementaoTipo Primitivo Bool Pode ter os valores true e false. No compatvel com inteiro. Valor default: false System.Boolean 3.1.3Tipos de dados intrnsecos Caractere Em C#, todosos caracteres(e strings) soarmazenados no padro Unicode eusam16bitsporcaractere.OUnicodeumpadromundialpararepresentao decaracteresepermitearmazenaroscaracteresdetodasaslnguasvivas(como grego, japons, chins e coreano) e algumas mortas (como snscrito). TipoImplementaoTipo Primitivo Char Um nico caractere Unicode de 16 bits. No compatvel 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.4Tipos de dados intrnsecos Ponto flutuante AlinguagemC#suportadoistiposdevariveisparaarmazenarponto flutuante.Programao Aplicada Microsoft .NET usando C#57 SOCIESC Sociedade Educacional de Santa Catarina TipoImplementaoTipo Primitivo Double Ponto flutuante binrio IEEE de 8 bytes(5,0 x 10-324 at 1,7 x 10308) 15 a 16 dgitos decimais de preciso Valor default: 0.0 System.Double Float Ponto flutuante binrio IEEE de 4 bytes(5,0 x 10-45 at 3,4 x 1038) 7 dgitos decimais de preciso Valor default: 0.0 System.Single As operaes de ponto flutuante no geram erros: Umaoperaoquegeraumresultadomuitopequenoparaser representado torna-se zero; Umadivisoporzerocomnmerosdepontoflutuantenogeraerro,produzresultadoinfinito.Vocpodeverificarseovalorinfinitopositivo ou negativo com o mtodo Double.IsInfinity(); Uma operao invlida gera como resultado NaN (no um nmero); Se um dos operadores for NaN, o resultado NaN. 3.1.4Tipos de dados intrnsecos Decimal Essetipoestbemmenossujeitoaerrosdearredondamentoqueocorrem com os formatos binrios. As contas so feitas na base 10. TipoImplementaoTipo Primitivo decimal Ponto flutuante decimal de 128 bits (1,0 x 10-28 at 7,9 x 1028), 28 a 29 dgitos decimais de preciso Valor default: 0.0 System.Decimal Programao Aplicada Microsoft .NET usando C#58 SOCIESC Sociedade Educacional de Santa Catarina 3.1.5Tipos de dados intrnsecos String UmdostiposmaiscomunsemC#ostring,quetambmincluialgumas caractersticas especiais, no comuns nas outras linguagens. As variveis string so alocadas dinamicamente e podem ter de zero a 1 Giga de caracteres. TipoImplementaoTipo Primitivo String String Unicode com at 1 giga de caracteres System.String 3.1.6Tipos de dados - Definidos pelo usurio Comovimos,o.NETFrameworkforneceumgrandeconjuntodetiposde dadospr-construdos,mastambmhpossibilidadedecriarosprpriostiposde dados.Osnovostipossousadosemqualquersituaoondenormalmentevoc usaria um tipo primitivo.TipoDescrio Enum Permite declarar uma seqncia de identificadores associados, mas incompatveis com inteiros e com outras enumeraes. Struct Permite declarar tipos que contm vrios valores, identificados por um nome. class Permite declarar classes. interface Declara uma espcie de classe abstrata, que pode ser implementada por outra classe. Delegate Declara um ponteiro para um mtodo de uma classe. Programao Aplicada Microsoft .NET usando C#59 SOCIESC Sociedade Educacional de Santa Catarina 4 RECURSOS ESPECIAIS COM VARIVEIS STRINGS O tipo de dados String possui algumas potencialidades. O primeiro aspecto acapacidadedeinserirliteraisnasstrings,paraquesejaminterpretadas.Na verdade,socaracteresespeciais,interpretadosouno,deacordocomsua finalidade.Finalmente,podemosutilizaroperaespr-definidasemtodosparaa manipulao de dados, disponveis na linguagem. 4.1Literais (caracteres especiais) Oscaracteresespeciaisquepodemserimplementadosemstrings,esto listados abaixo. Para que desabilite a interpretao dos caracteres na string, o valor de atribuio para a varivel deve ser precedido do smbolo arroba (@). CaracteresPropsito \tTabulao horizontal \rRetorno de carro (carriage return) \vTabulao vertical \fAvano de pgina \nSalto de linha \x Especifica um caractere especial padro ASCII usando dois dgitos hexadecimais (inserido imediatamente ao lado do literal) \u Especifica um caractere especial padro Unicode usando quatro dgitos hexadecimais (inserido imediatamente ao lado do literal) \\Barra invertida \Apstrofo \Aspas \0Zero binrio ou nulo \aToca um alarme Programao Aplicada Microsoft .NET usando C#60 SOCIESC Sociedade Educacional de Santa Catarina 4.2Operaes com variveis string Existem diversas operaes definidas para strings. As principais so: OperaoPropsito == Para comparar valores + Para concatenar 4.3Mtodos AclasseStringqueserefereaotipodedados,forneceumgrandeconjunto de mtodos para a manipulao de string. MtodoPropsito Compare Comparar dois objetos string Concat Concatena uma ou mais strings Copy Copia a string corrente 5ENUMERAES, ESTRUTURAS E ARRAYS Enumeraessoalternativassconstantesefornecemumcaminhopara agrupar constantes de forma lgica. O uso de enumeraes muito til quando uma varivel pode conter apenas um conjunto especfico de valores. Paradeclararumaenumerao,useapalavra-chaveenum,acompanhada do nome da varivel e dos valores iniciais. Enum Nome : TipodeDados Programao Aplicada Microsoft .NET usando C#61 SOCIESC Sociedade Educacional de Santa Catarina { varEnumerador1 = valor, varEnumerador2 = valor } EstruturasemC#permitemaimplementaodevariveiscompostas heterogneas.Soconhecidastambmcomostructures,emingls.Apalavra reservadastructutilizadaparaadeclaraodeumaestrutura.Asintaxedeuma estrutura : Struct nomedaestrutura { // Declaraes das variveis membro. Por exemplo public TipodeDados NomeVariavel; } Assimcomoasenumeraesrepresentamumagrupamentolgicode constantes,arrayssoagrupamentoslgicosdevariveis.Basicamente,ousode arraysaplicadoparaoarmazenamentodevaloresapartirdeumndice.EmC#, umarrayumtipodedadoporreferncia,destaforma,vocpodecriarumarray usando o operador new. A sintaxe para declarao de um array : TipodeDados[] identificador declarao; 6CONSTRUINDO EXPRESSES Asexpressessoconstrudasdeoperadoreseoperandos.Osoperadores de uma expresso indicam quais as operaes aplicadas nos operandos. Exemplos de operadores incluem adies e concatenaes, subtrao, multiplicao e diviso. OC#temmaisoumenososmesmosoperadoresdalinguagemC.Observealista abaixo, ordenada por precedncia (do maior para o menor). TipoOperador Primrios (x) x.y f(x) a[x] x++ x-- new typeof sizeofchecked unchecked Programao Aplicada Microsoft .NET usando C#62 SOCIESC Sociedade Educacional de Santa Catarina TipoOperador Unrios + - ! ~ ++x --x (T)x Multiplicativos * / % Aditivos + - Deslocamento Relacional < > = is Igualdade == != E Lgico & Ou exclusivo lgico ^ Ou Lgico | E Condicional && Ou Condicional || Condicional ?: Atribuio = *= /= %= += -= = &= ^= |= Programao Aplicada Microsoft .NET usando C#63 SOCIESC Sociedade Educacional de Santa Catarina Sntese Nestaaulafizemosnossaprimeiraincursoaocdigodeprogramaoda linguagem C#. Analisamos um cdigo de programao bsico, para que voc tenha o entendimento fundamental das regras de construo de programas na linguagem. Amensagemprincipaldestaaulafoilheapresentarasregraseorientaes para trabalhar com variveis e tipos de dados na linguagem.Alinguagem C#completamentetipada,ouseja,voc precisadeterminaro tipodedadosquedesejatrabalhar,paraobterotimizaoeresultadosadequados s suas solues. Vimostambmumrecursorelevanteprincipalmenteparaaconstruode solues Console (baseadas em caractere): o uso dos recursosde manipulao de Strings. O tipo de dados String permite que voc manipule o contedo da cadeia de caracteresarmazenadanavarivel,usandoumgrandenmerodemtodose literais. Naprximaauladaremosmaisumpassonaincursodalinguagem, conhecendoasregraseorientaesparaaimplementaodelgica,atravsdos fluxos de controle.At l. Exerccios Propostos 1)QualapalavrareservadadoC#utilizadaparainformaraocompiladoras classes que devero ser utilizadas na aplicao? a.() System b.() Namespace c.() Using d.() Class 2)Defina e apresente um exemplo de Modificador. ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ Programao Aplicada Microsoft .NET usando C#64 SOCIESC Sociedade Educacional de Santa Catarina 3)Paraqueservemostiposdedadosdefinidospelosusurios?Apresenteum exemplo. ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 4)Avalie o cdigo abaixo e marque as afirmativas corretas. Console.WriteLine( "{0}\n{1}\n{2}", "Curso", "Microsoft", "C#" ); a.() A instruo apresenta um erro; b.() Apresenta o texto em uma nica linha Curso Microsoft C# c.() Apresenta o texto em duas linhas da seguinte forma: CursoMicrosoft C# d.() Apresenta o texto em trs linhas da seguinte forma: CursoMicrosoftC# Programao Aplicada Microsoft .NET usando C#65 SOCIESC Sociedade Educacional de Santa Catarina Aula 4 CONTROLE DE FLUXO EM C# Objetivos da aula Ao final desta aula, voc dever ser capaz de: Implementar lgica de programao em algoritmos usando declaraes de controle de fluxo dos dados. Contedos da aula Acompanhe os assuntos desta aula, se preferir, ao terminar, assinale o contedo j estudado.Blocos de Cdigo; Operadores; Instrues de controle de fluxo; Instrues IF, IF...ELSE e Switch; Instrues While e Do/While; Instruo For. Programao Aplicada Microsoft .NET usando C#66 SOCIESC Sociedade Educacional de Santa Catarina Prezado(a) aluno(a), Bem-vindo(a) quarta aula do mdulo de programao aplicada com C#. Atomomentonosinteiramosdasregrasdesintaxedalinguageme implementamoo cdigoconvencional emalgoritmos. Nestaaula, vociraprender como construir lgica condicional em seus programas, usando instrues de fluxo de dados.Boa aula! 1BLOCOS DE CDIGO Antesdeiniciaraconstruode umprogramapararesolverumproblema, fundamentalqueseobtenhaumentendimentoclarodoproblemaeseplanejea forma como ser resolvido. Os algoritmos criados para atender um plano de soluo, normalmenteseutilizamdeblocosdecdigoparaconduzirasinformaesdentro dascondiesimpostaspeloproblema.Porisso,muitocomumousodelgica booleananosalgoritmos,pois,usandoinstruesdecontroledefluxodedados, podemos determinar as condies que sero avaliadas durante o processamento do progamaequaloprocedimentoquedeverserrealizado,deacordocomo resultado do teste lgico aplicado. Cadaconjuntodeinstruesparaatenderumadeterminadacondioda lgicaimplementadanoalgoritmochamadodeblocodecdigo.Normalmente, paracadaresultadoesperadodotestelgico,humconjuntodeinstruesque sero executadas pelo programa. 2OPERADORES Asexpressesutilizadasemlgicacondicionalsoconstrudasde operadoreseoperandos.Osoperadoresdeumaexpressoindicamquaisas operaesaplicadasnosoperandos.Exemplosdeoperadoresincluemadiese concatenaes,subtrao,multiplicaoediviso.OC#temmaisoumenosos mesmosoperadoresdalinguagemC.Observeatabelaabaixo,ordenadapor precedncia (do maior para o menor). Programao Aplicada Microsoft .NET usando C#67 SOCIESC Sociedade Educacional de Santa Catarina TipoOperador Primrios (x) x.y f(x) a[x] x++ x-- new typeof sizeofchecked unchecked Unrios + - ! ~ ++x --x (T)x Multiplicativos * / % Aditivos + - Deslocamento Relacional < > = is Igualdade == != E Lgico & Ou exclusivo lgico ^ Ou Lgico | E Condicional && Ou Condicional || Condicional ?: Atribuio = *= /= %= += -= = &= ^= |= Programao Aplicada Microsoft .NET usando C#68 SOCIESC Sociedade Educacional de Santa Catarina 3INSTRUES DE CONTROLE DE FLUXO A linguagem C#oferece suportes instrues convencionaispara o controle de fluxo de dados e os blocos de cdigo a serem construdos. 3.1Estruturas de seleo Asestruturasdeseleopermitemdeterminarqualoblocodecdigoque dever ser executado, de acordo com o resultado de um teste o lgico. A linguagem C# oferece trs tipos de estruturas de seleo:ainstruoIF:executaumdeterminadoblocodecdigo,seuma condio for verdadeira, caso contrrio no executa o cdigo; a declarao IF...ELSE: uma extenso da instruo IF, pois permite que um outro bloco de cdigo possa ser executado, caso a condio seja falsa;ainstruoSWITCH:permitequevriosblocosdecdigoestejamem condiodeexecuo,deacordocomovalordeumaexpresso.Essa instruopermitequevoctenhavriascondieslgicase,deacordo comoseuresultado,disparaaexecuodeumblocoespecficoparao resultado obtido. 3.2Instrues de repetio AlinguagemC#oferecequatrotiposdeestruturasderepetio.Otipode instruoutilizadaquandooprogramadordesejaexecutardeterminadoblocode cdigo,deacordocomumacondiolgicaemant-loemexecuoatquea condio lgica mude ou deixe de atender condio estabelecida. While: executaobloco de cdigo enquantouma condio for verdadeira. O teste executado ao INCIO; Do/While:executaoblocodecdigoenquantoumacondiofor verdadeira. O teste executado ao FINAL; For:oblocodecdigoexecutadodeterminadonmerodevezes, especificado na condio da instruo e baseado em um contador interno. Programao Aplicada Microsoft .NET usando C#69 SOCIESC Sociedade Educacional de Santa Catarina 4INSTRUES IF, IF...ELSE E SWITCH Ainstruoifdeusocomumnaslinguagensdedesenvolvimentode sistemas. Seu objetivo executar condicionalmente algum cdigo. Seguindo a teoria deEstruturadeDados,adeclaraoifmudaaexecuodoprogramadeacordo com um valor baseado em uma condio booleana. Sua sintaxe em C# : if (expresso) comando1; [else Comando2;] Detalhando a estrutura do comando: Expresso:umaexpressopodeserimplicitamenteconvertidaparaum valordotipobool.Severdadeiro,ocomando1executado,senoo comando2 (caso esteja presente) ser executado; Comando1:Adeclaraoquedeveserexecutadacasoaexpresso retornar verdadeira; Comando2:Adeclaraoquedeveserexecutadacasoaexpresso retornar falsa. Observaes: Aexpressodeveretornarumvalorbooleano.Osnmerosinteiros no podem ser utilizados como se fosse booleano, como no C/C++; Aclusulaelseopcionaleindicaoquedeveserfeitocasoa expresso seja falsa; Casosejanecessrioutilizarvrioscomandos,useumblococom chaves { }; Existe a sintaxe else if para encadear vrias decises. Observe que o comando switch, descrito adiante, pode ser utilizado com strings e podeserumaalternativaquandoosencadeamentosdeIFso muito complexos. A sintaxe do else if : if (condicao1) comando1; else if (condicao2) comando2; else if (condicao3) Programao Aplicada Microsoft .NET usando C#70 SOCIESC Sociedade Educacional de Santa Catarina comando3; ... Else comandoN; Ainstruoswitchusadaparacompararumaexpressoaumasriede constantes. basicamente uma extenso da declarao if, considerando que pode: controlarmltiplostestesemumasimplesdeclarao,verificarumaexpresode teste baseada em vrios valores e executar cdigo quando uma expresso de teste atende a um dos valores que voc deseja testar.importanteobservarqueasintaxedoswitchemC#diferentedasintaxe noC++.CasovocdesejecontrolarosaltoentreavalidaodoCASE1parao CASE2 no C#, o CASE1 no pode conter qualquer cdigo executvel no seu corpo. O C++ no possui a capacidade de saltar entre um case e outro (por exemplo, uma declarao goto). Sua sintaxe em C# : switch (expresso) { constante1; comando1; break; constante2; comando2; break; constanteN; comandoN; break; [default: comandoX;] } Observaes: Voc pode associar mais de uma constante a cada bloco de cdigo; Os blocos de cdigo devem ser mutuamente exclusivos, garantido pela presena de uma clusula break (ou goto); O bloco default chamado caso nenhuma das opes seja tomada; Voc pode usar qualquer tipo por valor ou string na expresso. Programao Aplicada Microsoft .NET usando C#71 SOCIESC Sociedade Educacional de Santa Catarina Abaixo, um exemplo de cdigo usando a declarao switch: using System; class ExemploSwitch { static void Main() { Console.Write("Adivinhe meu nmero (1-5): "); int input = Convert.ToInt32(Console.ReadLine()); switch (input) { case 1: Console.WriteLine("Errado!.\n"); break; case 2: case 3: Console.WriteLine("Nem 2 nem 3 est correto.\n"); break; case 4: goto case 1; case 5: Console.WriteLine("CERTO!\n"); break; default: Console.WriteLine("No um valor vlido!\n"); break; } } } Programao Aplicada Microsoft .NET usando C#72 SOCIESC Sociedade Educacional de Santa Catarina 5INSTRUES WHILE E DO/WHILE Um tipo de loop em C# o while,responsvel por executar uma declarao (ouumconjuntodedeclaraes)atqueumaespecificadaexpressoretorneum valor falso.while (expresso) declarao class ExemploWhile { static void Main() { System.Console.Write("Digite quit para sair: "); string text = System.Console.ReadLine(); while (text != "quit") { System.Console.Write("Digite quit para sair: "); text = System.Console.ReadLine(); } } } Ainstruodo...whileexecutaumadeclarao(ouumconjuntode declaraes)repetidamenteatqueumaespecificadaexpressoretorneumvalor false. Diferente do loop while, esse loop efetua o teste aps a execuo do corpo do loop. do declarao while (expresso) class ExemploDoWhile { static void Main() { string text; do Programao Aplicada Microsoft .NET usando C#73 SOCIESC Sociedade Educacional de Santa Catarina { System.Console.Write("Digite quit para sair: "); text = System.Console.ReadLine(); } while (text != "quit"); } } 6INSTRUO FOR o loop mais bsico e o favorito dos programadores. Simplesmente executa umadeclarao(ouumblocodedeclaraes)repetidamenteatqueaexpresso de teste retorne o resultado false.for ([inicializadores]; [expresso]; [iteraes]) declaraes class ExemploFor { static void Main() { System.Console.Write("Quantas tentativas voc deseja?"); int Max = int.Parse(System.Console.ReadLine()); for (int loopIndex = 1; loopIndex