© CasadoCódigo Todos os direitos reservados e protegidos pela Lei nº9.610, de 10/02/1998. Nenhumapartedestelivropoderáserreproduzida,nemtransmitida,sem autorização prévia por escrito da editora, sejam quais forem os meios: fotográficos,eletrônicos,mecânicos,gravaçãoouquaisqueroutros. CasadoCódigo Livrosparaoprogramador RuaVergueiro,3185-8ºandar 04101-300–VilaMariana–SãoPaulo–SP–Brasil CasadoCódigo Introdução Comosempredigonaaberturadetodososmeuslivros, ensinareaprender são tarefas que andam juntas e, para que seja alcançado o objetivo em cada uma delas, é necessário muita dedicação e estudo constante. Não há má- gicanoaprendizado,mashámuitadeterminaçãoporpartedaquelequequer aprender. Este livro apresenta um pouco do que o .NET pode oferecer em aplica- ções voltadas ao desktop, fazendo uso da linguagem C# e do Visual Studio como ambiente (IDE – Integrated Development Environment) para o desen- volvimento.Cadarecursoapresentadoaquiéconceituadoeexpostopormeio deexemplospráticos,osquaissãotrazidoscomoobjetivodeaguçarasuacu- riosidade. Certamente,estelivropodeserusadocomoumagrandeferramentaem disciplinasquetrabalhamodesenvolvimentoparaambientesgráficoseinte- grados (IDE), quer seja por acadêmicos ou professores. Isso porque ele é o resultadodaexperiênciaquetenhoemministraraulasdessadisciplina,então tragoparacáanseiosedúvidasdosalunosqueestudamcomigo. Oobjetivodestetrabalhoétorná-loumaferramentapresenteeconstante noensinoeaprendizadonodesenvolvimentodeaplicaçõesparadesktop,fa- zendo uso de C#, mais precisamente e de forma direcionada às disciplinas ministradas em cursos que envolvam informática e computação, como Sis- temas de Informação, Ciência da Computação, Processamento de Dados, e Análise e Desenvolvimento de Sistemas. Para isso, neste livro trago defini- çõeseobservaçõesreferentesàspartesquecompõemodesenvolvimentode aplicaçõesdesktopedalinguagemC#. Todoodesenvolvimentoérealizado comauxíliodoVisualStudio2013. i CasadoCódigo Talvez surjam dúvidas em relação às versões do IDE, mas o que abor- damos aqui é o básico para você se iniciar na programação para ambientes visuais.Aliás,nãoseráobstáculoalgumcasovocêtenhaacessoaumaversão diferente(anteriorousuperior)doqueatrabalhada.Issoporqueosconceitos básicosapresentadosenecessáriosquevocêtenhaestãodisponíveisemtodas asversõesexistentes. Olivroétododesenvolvidoemoitocapítulos,todoscommuitaprática,e deumaconclusãodostópicosvistos.Nasequência,sãoapresentadospeque- nosresumosdoqueétrabalhadoemcadaumdestescapítulos. O repositório com todos os códigos-fonte utilizados no li- vro podem ser encontrados em: https://github.com/evertonfoz/ livro-windows-forms-casa-do-codigo. Estou trabalhando em um blog, como laboratório para meu próximo livro. Acesse http: //evertoncoimbra.wix.com/asp-net-mvc-e-ef econtribua. Capítulo1–Asprimeirasimplementações: estruturasequencial Ostrêsprimeiroscapítulosdestelivroaplicamasestruturasbásicasque toda linguagem oferece: sequencial, condicional e de repetição. Dessa ma- neira, neste primeiro capítulo são apresentados problemas que podem ser resolvidosfazendousodeumaestruturasequencial. Duranteasimplemen- taçõespropostas,princípiosefundamentosrelacionadosàplataforma.NET, àlinguagemC#eaoVisualStudiotambémsãotrabalhadoseapresentados. Todos as soluções serão baseadas em uma interface gráfica com o usuário, nomeadanaplataformacomoWindowsFormsApplication. Capítulo2–Evoluindonacomplexidade: estruturacondicional Dando sequência, este capítulo apresenta novos problemas que podem serresolvidospormeiodaaplicaçãodeestruturascondicionais,tambémco- nhecidas como estruturas de seleção. Para essas implementações, busca-se apresentarnovosrecursosparaaplicaçõesWindowsForms,assimcomouma evoluçãonalinguagemC#,comnovosrecursosetécnicas.Umdessesrecur- sos e técnicas refere-se à validação de valores informados pelo usuário, nos controlesquepermiteminteração. ii CasadoCódigo Capítulo3–Resolvendoproblemasmaiscomplexos: estruturade repetição Existemsituaçõesnasquaisumproblemaexigeouapresentacomoreso- luçãoumconjuntodeinstruçõesquedevemserexecutadaspormaisdeuma vez. Para essas situações, é feito o uso de uma estrutura de repetição que, assim como a condicional, possui variações de sua implementação. Dessa maneira,esteterceirocapítuloapresentaaúltimadastrêsestruturasbásicas para uma linguagem de programação, trazendo problemas que poderão ser resolvidoscomousodessetipodeestrutura, usandosuasvariações. Novos controleserecursostambémsãoapresentados,comoaleituraeescritadeum arquivotexto,econtrolesparainteraçãocomconjuntosdedados. Também, aaplicaçãodeOrientaçãoaObjetos(OO)começaasermostradanestecapí- tulo. Capítulo4–Váriosprojetosemumasolução:aplicandoconceitos relacionadosaoMVCeOrientaçãoaObjetos Noscapítulosiniciais, apreocupaçãofoinoconhecimentodosrecursos básicosparadesenvolvimentodeaplicaçõesWindowsForms, dalinguagem C#edoVisualStudio, ondeosprojetoscriadoseramindependentes. Desta maneira, estecapítuloapresentarecursos, conceitosetécnicasmaisavança- dos,possibilitandoacriaçãodeumasoluçãocomváriosprojetos,delegando responsabilidadesacadaumdelesetornandoasoluçãoumaúnicaaplicação. Nessalinha,éapresentadooMVC(Modelo-Visão-ControleouModel-View- Controller), um modelode desenvolvimento– quepodeser vistocomo um padrão–quepermitequecadacamada(noexemplo,cadacamadarefere-se aumprojeto)realizeespecificamenteoqueédesuaresponsabilidade. Com vistasàimplementaçãodeumasoluçãoemMVC,técnicasrelacionadasaOri- entaçãoaObjetossãoapresentadas,assimcomoousodecoleções(collections) eassociaçãoentreasclasses. Capítulo5–AcessoadadospormeiodoADO.NET Até o quarto capítulo, os dados utilizados pela aplicação são obtidos e fornecidos no mesmo momento em que ela é executada, não havendo pos- sibilidadederecuperarfuturamenteosdadosinformadosemumaexecução iii CasadoCódigo anterior. Umaexceçãoparaessasituaçãosedánocapítulo3,ondeépossível persistirosdadosemumarquivodetextoserecuperá-losemqualquerexe- cuçãofuturadaaplicação. Entretanto,normalmenteapersistênciadedados é realizada em uma base de dados, e o .NET oferece toda uma arquitetura paraessafuncionalidade,queéoADO.NET.Aqui,sãoapresentadosrecursos eferramentasoferecidospelaplataforma, eoVisualStudioquepermitama persistênciaerecuperaçãodedadosemumabasededados,permitindoapli- cartodooconteúdojáapresentadoatéestecapítulo.Obancodedadosusado nestelivroéoSQLServerExpressEdition. Capítulo6–UtilizandoDataSettipadoparaacessoabasededados ComoconhecimentodoADO.NET,apresentadonoCapítulo5,noqual oacessoadadosérealizadopormeiodeclassesdaAPIeinstruçõesSQL,é possívelsabercomoainteraçãocomobancodedadosocorre. Estecapítulo avançaeapresentaque,paraacessarumabasededados,éfeitousodeumre- cursochamadodeDataSetTipado.ODataSetéintroduzido,primeiramente, semousodetabelasexistentesumumabasededados. Emseguida,sãotra- balhadosrecursosquebuscamsubsidiarumaagilidadenodesenvolvimento, comoacriaçãodeumformulárioquerepresenteoCRUD(Create,Retrieve, UpdateandDelete),comoperaçõesdearrastaresoltar. Capítulo7–ConhecendoaLanguageINtegratedQueryeoWin- dowsPresentationFoundation Quando foi apresentado o ADO.NET, as consultas foram realizadas fa- zendousodeinstruçõesSQL,escritascomoumastring.Depois,comaapre- sentaçãodoDataSetTipado,essasmesmasconsultasforamtransferidaspara métodos, o que levou a uma aproximação à Orientação a Objetos. Este ca- pítuloapresentaoLanguageINtegratedQuery(LINQ)comoferramentapara realização dessas consultas, que podem ser realizadas em diversas fontes de dados,incluindobasesdedados. ComoLINQ,épossívelfazerusodeobje- tosemsuasintaxe,permitindousoderecursosdoIDE,comooIntelliSense. ParaaplicaroLINQ,tambéméfeitousodoWindowsPresentationFoundation (WPF),paraimplementaçãodainterfacegráficacomousuário. iv CasadoCódigo Capítulo8–ApresentandooEntityFrameworkcomoferramenta paraoMapeamentoObjetoRelacional Apersistênciadedados,apresentadaemcapítulosanterioresaeste,ére- alizadapormeiodoADO.NET,quersejafazendousodeinstruçõesSQLou decomponentesqueencapsulamestasinstruções(comooDataSetTipado). ComoEntityFramework(EF),épossíveltrabalhardiretamentecomobjetos, não sepreocupando em como aaplicação seconectará ao banco ecomo os dadosserãocapturadosoupersistidos.Ousodesseframeworkpossibilitaao programador abstrair e trabalhar sempre com objetos. Para a aplicação dos exemplos,ocapítulofazusotambémdoWPFparainteraçãocomousuário, quetrazumaimplementaçãodoCRUD. Capítulo9–Osestudosnãoparamporaqui Com este capítulo, concluímos este livro destacando todos os assuntos quevimosatéaqui,juntodeestímulosparaquevocêcontinuesuajornadade aprendizagemeaplicaçãodoC#. Caso tenha alguma dúvida ou sugestão, procure a comunidade do livro paratirardúvidas. Elaestádisponívelemhttps://groups.google.com/forum/ #!forum/livro-windows-forms-casa-do-codigo. Lá podemos discutir mais sobreostemastratadosaqui.Vocêserámuitobem-vindo! v CasadoCódigo Sobre o autor EvertonCoimbradeAraújoatuanaáreadetreinamentoedesenvolvimento. ÉtecnólogoemprocessamentodedadospeloCentrodeEnsinosuperior deFozdoIguaçu,possuimestradoemCiênciadaComputaçãopelaUFSCe doutoradopelaUNIOESTEemEngenhariaAgrícola. É professor da Universidade Tecnológica Federal do Paraná (UTFPR), campusMedianeira, ondelecionadisciplinasnoCursodeCiênciadaCom- putaçãoeemespecializações. JáministrouaulasdeAlgoritmos,TécnicasdeProgramação,Estruturade Dados,LinguagensdeProgramação,OrientaçãoaObjetos,AnálisedeSiste- mas,UML,JavaparaWeb,JavaEE,BancodeDadose.NET. Possui experiência na área de Ciência da Computação, com ênfase em AnáliseeDesenvolvimentodeSistemas,atuandoprincipalmentenosseguin- testemas:DesenvolvimentoWebcomJavae.NETePersistênciadeObjetos. Oautorépalestranteemsemináriosdeinformáticavoltadosparaomeio acadêmicoeempresarial. vii
Description: