Professional Documents
Culture Documents
Desenvolvimento para dispositivos mveis com Visual Studio 2008 - Windows Mobile 6 - C Sharp
Desenvolvimento para dispositivos mveis com Visual Studio 2008 - Windows Mobile 6 - C Sharp
Trabalho
de
concluso
de
curso,
apresentando como exigncia parcial para obteno do diploma de graduao em Sistemas de Informao, da Faculdade de Tecnologia de So Vicente - FATEF
So Vicente 2008
1
Junior, Reinaldo Mancuso. Desenvolvimento para dispositivos mveis com Visual Studio 2008 - Windows Mobile 6 - C Sharp. Reinaldo Mancuso Junior - So Vicente, 2008. 213 pags. Trabalho de Concluso de Curso (Graduao) Faculdade de Tecnologia de So Vicente - FATEF, 2008. Curso: Sistemas de Informao Orientador: Prof. Adriano S. Miranda.
Desenvolvimento para dispositivos mveis com Visual Studio 2008 - Windows Mobile 6 - C Sharp
So Vicente 2008
3
AGRADECIMENTOS
Agradeo aos meus pais Reinaldo Mancuso e Aparecida Luzia da Silva Mancuso pelo esforo para garantir minha formao e por me mostrar sempre o caminho certo, aos meus irmos Carlos Eduardo da Silva Mancuso e Janaina Luzia Mancuso Reis dos Santos por me inspirar a lutar com todas as foras em busca do meu objetivo, pois so exemplos de perseverana em busca de um ideal.
Tambm agradeo a toda minha famlia e amigos que compreenderam esse processo de recluso e afastamento, se mostrando compreensveis e me apoiaram nos pequenos bons momentos compartilhados nesses ltimos quarto anos.
Agradeo aos professores que se dispuseram durante todo o curso e foram tolerantes com a maravilhosa turma de Bacharelado em Sistemas de Informao, que tive o prazer de conviver durante esses anos.
Agradeo a Deus por me conceder a ddiva de ser pai e de estar ao lado de uma pessoa como a Eliane dos Santos Mancuso, minha amada esposa, que sempre amiga e que me ajuda nos momentos difceis.
E, por ltimo, mas no menos relevante, fica aqui registrado um agradecimento especial ao professor e orientador Adriano Miranda por acreditar em meu potencial e por nos instruir busca do saber convencional e do emprico.
DEDICATRIA
professores e todos aqueles que em algum momento me incentivaram na busca perene do saber contnuo. 5
EPGRAFE
O estudo, a busca da verdade e da beleza so domnios em que nos consentido sermos crianas por toda a vida. Albert Einstein 6
SUMRIO
INTRODUO .......................................................................................................... 20
OBJETIVO .......................................................................................................................... 22 JUSTIFICATIVA ................................................................................................................... 23 METODOLOGIA .................................................................................................................. 24 ESTRUTURA DO TRABALHO................................................................................................. 25
10.1. ESTRUTURA DA FRAMEWORK.NET ............................................................................. 84 10.2. ENTENDENDO A ESTRUTURA DA ARQUITETURA EM CAMADAS........................................ 85 10.3. CLR (COMMON LANGUAGE RUNTIME) ........................................................................ 85 10.4. CTS (COMMON TYPES SYSTEM) ................................................................................ 85 10.5. CLS (COMMON LANGUAGE SPECIFICATION) ............................................................... 86 10.6. BCL (BASE CLASS LIBRARY) ..................................................................................... 86 10.7. MSIL (MICROSOFT INTERMEDIATE LANGUAGE) ........................................................... 89 10.8. ADO.NET ................................................................................................................ 89 10.8.1. Providers ........................................................................................................................... 89 10.8.2. Relao de Providers ........................................................................................................ 90 10.8.3. Objetos dos Provedores .................................................................................................... 91
14. TIPOS.................................................................................................................. 99
14.1. INTEGRAIS (INTEIROS) ............................................................................................... 99 14.1.1. Exemplo de declarao: .................................................................................................. 100 14.2. PONTO-FLUTUANTE (FRACIONRIO) ......................................................................... 100 14.2.1. Exemplo de declarao: .................................................................................................. 101 14.3. CARACTERES E STRINGS ......................................................................................... 101 14.3.1. Exemplo de declarao: .................................................................................................. 102
14.3.2. Funes para Strings ...................................................................................................... 102 14.3.3 Exemplos de utilizao: ................................................................................................... 103 14.4. BOOL (BOOLEANO).................................................................................................. 103 14.4.1. Exemplo de declarao: .................................................................................................. 103 14.5. DATA (DATETIME) ................................................................................................... 103 14.5.1. Exemplo de declarao: .................................................................................................. 104 14.6. CONVERSO DE TIPOS ............................................................................................ 104 14.6.1. Exemplo de converso: ................................................................................................... 105 14.7. MTODOS DE CONVERSO ...................................................................................... 105 14.7.1. Exemplo de converso: ................................................................................................... 107
10
20.1.3IF... ELSE IF ........................................................................................................................ 127 20.1.4. Exemplo prtico da utilizao do comando if................................................................. 127
20.1.4.1. Cdigo do boto ..................................................................................................................... 130
20.2. SWITCH CASE ......................................................................................................... 131 20.2.1. Exemplo prtico da utilizao do comando Switch ....................................................... 131
20.2.1.1. Cdigo do boto ..................................................................................................................... 135 20.2.1.2. Cdigo completo do exemplo Switch Case ............................................................................ 136
21.2. W HILE .................................................................................................................... 146 21.2.1. Exemplo prtico da utilizao do comando While ......................................................... 147
21.2.1.1. Cdigo do boto Executar ...................................................................................................... 150
11
22.5.7. - Explicao do cdigo do evento do Grid Cliente .......................................................... 180 22.6. TELA DE CADASTRO DE PRODUTO ............................................................................ 181 22.6.2. Cdigo do boto Inserir .................................................................................................. 185
22.6.2.1 - Explicao do cdigo do boto inserir .................................................................................. 185
22.6.6. - Explicao do cdigo do evento do Grid Produto ......................................................... 191 22.6.7. Cdigo do boto Buscar.................................................................................................. 191
22.6.7.1 - Explicao do cdigo do boto Buscar .................................................................................. 192
22.7. TELA DE CADASTRO DE VENDA ................................................................................ 193 22.7.1. Cdigo do boto Inserir Item .......................................................................................... 196
22.7.1.1 - Explicao do cdigo do boto Inserir Item .......................................................................... 196
22.8. PROCEDIMENTOS DE PREENCHIMENTO DOS COMBOBOX ........................................... 199 22.8.1. Cdigo do Procedimento do ComboBox de Cliente ........................................................ 199
22.8.1.1. - Explicao do cdigo do Procedimento do ComboBox de Cliente ...................................... 200
22.8.3. Criao da Conexo - Tela de Vendas............................................................................. 202 22.9. TELA PRINCIPAL ...................................................................................................... 203 22.9.1. Cdigo dos botes para chamada das telas ................................................................... 205
13
LISTA DE FIGURAS
FIGURA 1 - SISTEMA DA INDIANA EM SMARTPHONE ............................................................................. 28 FIGURA 2 - FOTOS DA LOJA DO FUTURO DO GRUPO PO DE ACAR....................................................... 28 FIGURA 3 - DIAGRAMA DE FLUXO DE DADOS - NVEL 0 ......................................................................... 32 FIGURA 4 - DIAGRAMA DE FLUXO DE DADOS - NVEL 1 ......................................................................... 33 FIGURA 5 - MODELO DE DADOS - LGICO .......................................................................................... 34 FIGURA 6 - DICIONRIO DE DADOS - ENTIDADE CLIENTE........................................................................ 35 FIGURA 7 - DICIONRIO DE DADOS - ENTIDADE PRODUTO ..................................................................... 35 FIGURA 8 - - DICIONRIO DE DADOS - ENTIDADE VENDA ....................................................................... 35 FIGURA 9 - DICIONRIO DE DADOS - ENTIDADE ITEM_VENDA ................................................................ 35 FIGURA 10 - PGINA NA INTERNET DOS DESENVOLVEDORES DE TECNOLOGIA MICROSOFT ........................... 36 FIGURA 11 - PGINA COM DETALHES SOBRE O VISUAL STUDIO 2008....................................................... 37 FIGURA 12 - PGINA COM MAIS DETALHES SOBRE O VISUAL STUDIO ........................................................ 37 FIGURA 13 - DIRECIONAMENTO PARA ESCOLHA DO IDIOMA ................................................................... 38 FIGURA 14 - PGINA PARA ESCOLHA DO IDIOMA .................................................................................. 38 FIGURA 15 - PGINA PARA REALIZAO EFETIVA DO DOWNLOAD............................................................. 39 FIGURA 16 - CONFIRMAO DE DOWNLOAD ....................................................................................... 39 FIGURA 17 - TELA PARA ESCOLHA DO DESTINO DA IMAGEM ISO.............................................................. 40 FIGURA 18 - TELA DO GERENCIADOR DE DOWNLOAD DA MICROSOFT ...................................................... 40 FIGURA 19 - TELA DE MONITORAMENTO DE DOWNLOAD ....................................................................... 41 FIGURA 20 - ARQUIVO ISO, APS DOWNLOAD .................................................................................... 41 FIGURA 21 - ALERTA DE SEGURANA DO WINDOWS ............................................................................. 42 FIGURA 22 - TELA DE CONFIRMAO DE REINCIO DO WINDOWS ............................................................ 42 FIGURA 23 - TELA PARA EXECUTAR A INSTALAO ................................................................................ 43 FIGURA 24 - TELA DE ALERTA AOS DIREITOS DO PROGRAMA ................................................................... 43 FIGURA 25 - TELA DE CONFIGURAES DE INSTALAO DO DAEMON ....................................................... 44 FIGURA 26 - TELAS DE CONFIRMAO DE INSTALAO .......................................................................... 44 FIGURA 27 - TELA DE FINALIZAO DA INSTALAO ............................................................................. 45 FIGURA 28 - REA DE NOTIFICAO (ICON TRAY) ................................................................................ 46 FIGURA 29 - ESCOLHA DAS OPES PARA MONTAR IMAGEM 1................................................................ 46 FIGURA 30 - ESCOLHA DAS OPES PARA MONTAR IMAGEM 2................................................................ 46 FIGURA 31 - TELA DE LOCALIZAO DO ARQUIVO ISO .......................................................................... 47 FIGURA 32 - EXECUO DO DVD VIRTUAL ......................................................................................... 47 FIGURA 33 - TELA DE INSTALAO DO VISUAL STUDIO .......................................................................... 49 FIGURA 34 - COPIANDO OS RECURSOS NECESSRIOS ............................................................................. 49 FIGURA 35 - TELA DE CONFIRMAO DE CARREGAMENTO COMPLETO DOS RECURSOS .................................. 49 FIGURA 36 - TELA PARA ACEITAO DOS TERMOS DE USO ...................................................................... 50 FIGURA 37 - TELA DE CONFIGURAO DA INSTALAO .......................................................................... 50 FIGURA 38 - TELA DE INSTALAO DOS COMPONENTES ......................................................................... 51 FIGURA 39 - TELA DE SUCESSO DA INSTALAO.................................................................................... 51 FIGURA 40 - TELA DE ABERTURA (SPLASH SCREEN) .............................................................................. 52 FIGURA 41 - TELA DE ESCOLHA DA LINGUAGEM PADRO ........................................................................ 52 FIGURA 42 - CONFIGURAO DO AMBIENTE COM A LINGUAGEM C SHARP ................................................ 53 14
FIGURA 43 - TELA INICIAL DO VISUAL STUDIO 2008............................................................................. 54 FIGURA 44 - FIXANDO O VISUAL STUDIO NO MENU INICIAR ................................................................... 55 FIGURA 45 - DESTAQUE DAS PARTES DO MENU INICIAR E CONE DO VISUAL STUDIO FIXADO ........................ 56 FIGURA 46 - AMBIENTE INTEGRADO DE DESENVOLVIMENTO ................................................................... 57 FIGURA 47 - DESTAQUE DO BOTO AUTO HIDE ................................................................................... 58 FIGURA 48 - ACESSO AO MENU FILE PARA CRIA NOVO PROJETO .............................................................. 59 FIGURA 49 - DETALHE EM DESTAQUE DO MENU FILE ............................................................................ 60 FIGURA 50 - TELA COM AS CONFIGURAES DO PRIMEIRO PROJETO ........................................................ 61 FIGURA 51 - ESCOLHA DO DEVICE (EMULADOR) .................................................................................. 61 FIGURA 52 - TELA DO DEVICE NO AMBIENTE DO VISUAL STUDIO 2008 .................................................... 62 FIGURA 53 ESPECIFICAES E VERSO DA FRAMEWORK...................................................................... 62 FIGURA 54 - MENU VIEW - ACESSO S JANELAS .................................................................................. 63 FIGURA 55 - DETALHE DA TELA COM O BOTO E JANELA DE PROPRIEDADES ............................................... 63 FIGURA 56 - PROPRIEDADES DO BOTO ............................................................................................. 64 FIGURA 57 - ILUSTRAO DO INTELLISENSE ......................................................................................... 65 FIGURA 58 - ALTERNANDO ENTRE LAYOUT E CDIGO ........................................................................... 67 FIGURA 59 - EMULADORES DISPONVEIS ............................................................................................. 67 FIGURA 60 - CONEXO COM EMULADOR............................................................................................ 68 FIGURA 61 - EMULADOR RODANDO .................................................................................................. 68 FIGURA 62 - BOTO PARA RODAR A APLICAO ................................................................................... 68 FIGURA 63 - TELA COM EMULADORES DISPONVEIS............................................................................... 69 FIGURA 64 - PROGRAMA AL MUNDO RODANDO ............................................................................... 70 FIGURA 65 - FINALIZAO DO PROGRAMA NO EMULADOR ..................................................................... 70 FIGURA 66 - OPES DO ESTADO DO EMULADOR ................................................................................. 71 FIGURA 67 - AVISO SOBRE PERDA DE CONEXO COM O EMULADOR.......................................................... 71 FIGURA 68 - SAINDO DO VISUAL STUDIO 2008 ................................................................................... 71 FIGURA 69 - DE VOLTA A START PAGE - PROJETO LISTADO .................................................................... 72 FIGURA 70 - IMAGEM DA CAIXA DE DIALOGO NO EMULADOR ................................................................. 74 FIGURA 71 - LISTA DE BOTES ......................................................................................................... 75 FIGURA 72 - LISTA DE CONES DE MESSAGEBOXICON............................................................................ 77 FIGURA 73 - LISTA DE BOTES QUE PODEM SER DEFINIDOS COMO PADRO ............................................... 78 FIGURA 74 - ARQUIVO PARA INSTALAO DO WINDOWS MOBILE 6 ........................................................ 79 FIGURA 75 TELA DE PREPARAO DA INSTALAO ............................................................................. 79 FIGURA 76 - TELA DE BOAS VINDAS DA INSTALAO.............................................................................. 80 FIGURA 77 - TELA COM A LISTA DE PR-REQUISITOS ............................................................................. 80 FIGURA 78 - TELA PARA ACEITAR OS TERMOS DE INSTALAO ................................................................. 81 FIGURA 79 - TELA PARA PREENCHIMENTO DOS DADOS PESSOAIS OU DA EMPRESA ....................................... 81 FIGURA 80 - TELA PARA ESCOLHA DO LOCAL DE INSTALAO .................................................................. 82 FIGURA 81 - TELA PARA CONFIRMAO DA INSTALAO ........................................................................ 82 FIGURA 82 TELA DE PROGRESSO DA INSTALAO ............................................................................... 83 FIGURA 83 TELA PARA FINALIZAR INSTALAO .................................................................................. 83 FIGURA 84 - ESTRUTURA DA FRAMEWORK.......................................................................................... 84 FIGURA 85 - INTERFACE DE PROGRAMAO DE APLICATIVOS DO ADO .................................................... 90 FIGURA 86 - ESTRUTURA DOS OBJETOS ADO...................................................................................... 91 FIGURA 87 ILUSTRAO DO MODELO CONECTADO ............................................................................ 92 FIGURA 88 - ILUSTRAO DO MODELO DESCONECTADO ....................................................................... 93 FIGURA 89 - HIERARQUIA DE TIPOS ................................................................................................... 99 15
FIGURA 90 - CRIAO DE UM NOVO PROJETO .................................................................................... 109 FIGURA 91 - ESCOLHA DO TIPO DE PROJETO ...................................................................................... 109 FIGURA 92 - EXEMPLO DO LAYOUT DA TELA ...................................................................................... 111 FIGURA 93 - ALTERAES DOS DEMAIS BOTES ................................................................................. 112 FIGURA 94 - CRIAO DE UM NOVO PROJETO .................................................................................... 116 FIGURA 95 - ESCOLHA DO TIPO DE PROJETO ...................................................................................... 116 FIGURA 96 - EXEMPLO DO LAYOUT DA TELA ...................................................................................... 117 FIGURA 97 - CRIAO DE UM NOVO PROJETO .................................................................................... 121 FIGURA 98 - ESCOLHA DO TIPO DE PROJETO ...................................................................................... 121 FIGURA 99 - EXEMPLO DO LAYOUT DA TELA ...................................................................................... 122 FIGURA 100 - CRIAO DE UM NOVO PROJETO.................................................................................. 128 FIGURA 101 - ESCOLHA DO TIPO DE PROJETO .................................................................................... 128 FIGURA 102 - EXEMPLO DO LAYOUT DA TELA .................................................................................... 129 FIGURA 103 - CRIAO DE UM NOVO PROJETO.................................................................................. 132 FIGURA 104 - ESCOLHA DO TIPO DE PROJETO .................................................................................... 132 FIGURA 105 - EXEMPLO DO LAYOUT DA TELA .................................................................................... 134 FIGURA 106 - OPES DO BOTO DIREITO NO CDIGO ....................................................................... 140 FIGURA 107 - OPES DE INSERT SNIPPET... .................................................................................... 140 FIGURA 108 - ESTRUTURAS DISPONVEIS EM CODE SNIPPET ................................................................. 141 FIGURA 109 - CDIGO GERADO A PARTIR DO CODE SNIPPET................................................................ 141 FIGURA 110 - CRIAO DE UM NOVO PROJETO.................................................................................. 142 FIGURA 111 - ESCOLHA DO TIPO DE PROJETO .................................................................................... 142 FIGURA 112 - EXEMPLO DO LAYOUT DA TELA .................................................................................... 144 FIGURA 113 - PROGRAMA DE EXEMPLO DO FOR RODANDO.................................................................. 145 FIGURA 114 - CRIAO DE UM NOVO PROJETO.................................................................................. 147 FIGURA 115 - ESCOLHA DO TIPO DE PROJETO .................................................................................... 147 FIGURA 116 - EXEMPLO DO LAYOUT DA TELA .................................................................................... 149 FIGURA 117 - CRIAO DE UM NOVO PROJETO ................................................................................. 151 FIGURA 118 - ESCOLHA DO TIPO DE PROJETO .................................................................................... 152 FIGURA 119 - MENU VIEW / OPO SOLUTION EXPLORER.................................................................. 152 FIGURA 120 - JANELA PARA ADICIONAR ITENS APLICAO ................................................................. 153 FIGURA 121 - ESCOLHENDO NOVOS ITENS APLICAO ...................................................................... 153 FIGURA 122 - TELA GERADA AUTOMATICAMENTE PARA CRIAO DE UM DATASET .................................... 154 FIGURA 123 - ESTRUTURA DA APLICAO ........................................................................................ 154 FIGURA 124 - SERVER EXPLORER BASE DESCONECTADA .................................................................... 155 FIGURA 125 - SERVER EXPLORER - BASE CONECTADA ......................................................................... 155 FIGURA 126 - CRIAO DE TABELAS ................................................................................................ 155 FIGURA 127 - TELA PARA CRIAR NOVA TABELA................................................................................... 156 FIGURA 128 - MODELO PROPOSTO ................................................................................................. 156 FIGURA 129 - TABELA CLIENTE....................................................................................................... 157 FIGURA 130 - TABELA PRODUTO .................................................................................................... 158 FIGURA 131 - TABELA VENDA ........................................................................................................ 158 FIGURA 132 - TABELA ITEM_VENDA ............................................................................................... 159 FIGURA 133 - CRIAO DOS RELACIONAMENTOS ............................................................................... 160 FIGURA 134 - TELA DE CONFIGURAO DA CHAVE ESTRANGEIRA ........................................................... 161 FIGURA 135 - TELA DE SUCESSO DE INCLUSO DA CHAVE ESTRANGEIRA .................................................. 161 FIGURA 136 - TELA DE GERENCIAMENTO DOS RELACIONAMENTOS......................................................... 161 16
FIGURA 137 - TELA DE CONFIGURAO DA CHAVE ESTRANGEIRA ........................................................... 162 FIGURA 138 - TELA DE SUCESSO DE INCLUSO DA CHAVE ESTRANGEIRA .................................................. 163 FIGURA 139 - TELA DE GERENCIAMENTO DOS RELACIONAMENTOS......................................................... 163 FIGURA 140 - TELA DE CONFIGURAO DA CHAVE ESTRANGEIRA ........................................................... 164 FIGURA 141 - TELA DE SUCESSO DE INCLUSO DA CHAVE ESTRANGEIRA .................................................. 164 FIGURA 142 - TELA DE GERENCIAMENTO DOS RELACIONAMENTOS......................................................... 165 FIGURA 143 - COPIAR BASE PARA PASTA TEMPORRIA ........................................................................ 165 FIGURA 144 - ACESSO AS CONFIGURAES DO EMULADOR .................................................................. 166 FIGURA 145 - CONFIGURAO DA PASTA COMPARTILHADA.................................................................. 166 FIGURA 146 - PASSOS PARA ACESSA A PASTA DO STORAGE CARD .......................................................... 166 FIGURA 147 - COPIANDO O ARQUIVO DE DADOS ................................................................................ 167 FIGURA 148 - ALTERANDO O ENDEREO DE COMPILAO .................................................................... 167 FIGURA 149 - CONFIGURAO DO ENDEREO DE COMPILAO............................................................. 168 FIGURA 150 - NOVO FORMULRIO ................................................................................................. 168 FIGURA 151 - TELA PARA NOMEAR O FORMULRIO ............................................................................ 169 FIGURA 152 - TELA DE CADASTRO DE CLIENTE .................................................................................. 169 FIGURA 153 - OBJETO DE CONEXO E DATA SET (PBLICOS ) ............................................................... 172 FIGURA 154 - INSERINDO O NAMESPACE DO SQL CE ........................................................................... 170 FIGURA 155 - CDIGO DO BOTO INSERIR ......................................................................................... 171 FIGURA 156 - CDIGO DO BOTO LISTAR ......................................................................................... 174 FIGURA 157 - CDIGO DO BOTO APAGAR....................................................................................... 176 FIGURA 158 - CDIGO DO BOTO ATUALIZAR ................................................................................... 177 FIGURA 159 - CDIGO DO BOTO BUSCAR ....................................................................................... 179 FIGURA 160 - CDIGO DO EVENTO DA LINHA SELECIONADA ................................................................. 180 FIGURA 161 - NOVO FORMULRIO ................................................................................................. 181 FIGURA 162 - TELA PARA NOMEAR O FORMULRIO ............................................................................ 181 FIGURA 163 - TELA DE CADASTRO DE PRODUTO ................................................................................ 182 FIGURA 164 - OBJETO DE CONEXO E DATA SET (PBLICOS ) ............................................................... 184 FIGURA 165 - CDIGO DO BOTO INSERIR ........................................................................................ 185 FIGURA 166 - CDIGO DO BOTO LISTAR ......................................................................................... 186 FIGURA 167 - CDIGO DO BOTO APAGAR....................................................................................... 188 FIGURA 168 - CDIGO DO BOTO ATUALIZAR ................................................................................... 189 FIGURA 169 - CDIGO DO EVENTO DA LINHA SELECIONADA ................................................................. 191 FIGURA 170 - CDIGO DO BOTO BUSCAR ....................................................................................... 191 FIGURA 172 - TELA PARA NOMEAR O FORMULRIO ............................................................................ 193 FIGURA 173 - TELA DE CADASTRO DE CLIENTE .................................................................................. 194 FIGURA 174 - CDIGO DO BOTO INSERIR ITEM ................................................................................ 196 FIGURA 175 - CDIGO DO BOTO LISTAR ......................................................................................... 197 FIGURA 178 - OBJETO DE CONEXO ................................................................................................ 202 FIGURA 179 - - NOVO FORMULRIO ............................................................................................... 203 FIGURA 181 - TELA PRINCIPAL ....................................................................................................... 204
17
LISTA DE QUADROS
QUADRO 1 LISTA DE ARGUMENTOS MESSAGEBOXBUTTON ................................................................. 76 QUADRO 2 LISTA DE CONES DE MESSAGEBOXICON ........................................................................... 77 QUADRO 3 - NAMESPACES .............................................................................................................. 88 QUADRO 4 PROVEDORES DE ACESSO .............................................................................................. 90 QUADRO 5 OBJETOS DE MANIPULAO DE DADOS ............................................................................. 91 QUADRO 6 PALAVRAS RESERVADAS DO C SHARP .............................................................................. 95 QUADRO 7 - TIPOS INTEGRAIS ........................................................................................................ 100 QUADRO 8 TIPOS FRACIONRIOS ................................................................................................. 101 QUADRO 9 TIPO FRACIONRIO FINANCEIRO ................................................................................... 101 QUADRO 10 TIPOS PARA CARACTERES .......................................................................................... 102 QUADRO 11 - FUNCIONALIDADES PARA STRINGS ............................................................................... 102 QUADRO 12- TIPO BOOLEANO (VERDADEIRO OU FALSO) ..................................................................... 103 QUADRO 13 TIPO DE DATA E HORA ............................................................................................. 104 QUADRO 14 CONVERSO DE TIPOS .............................................................................................. 105 QUADRO 15 TIPOS ACEITOS NA CONVERSO .................................................................................. 106 QUADRO 16 - PRINCIPAIS OPERADORES ........................................................................................... 108 QUADRO 17 LISTA DE PROPRIEDADES DO EXEMPLO DE OPERADORES .................................................. 110 QUADRO 18 LISTA DE PROPRIEDADES DO EXEMPLO DE VETORES ........................................................ 117 QUADRO 19 LISTA DE PROPRIEDADES DO EXEMPLO DE VETORES ........................................................ 122 QUADRO 20 PRINCIPAIS OPERADORES LGICOS E DE COMPARAO ................................................... 124 QUADRO 21 LISTA DE PROPRIEDADES DO EXEMPLO DE IF .................................................................. 129 QUADRO 22 LISTA DE PROPRIEDADES DO EXEMPLO DE SWITCH.......................................................... 133 QUADRO 23 ILUSTRA O CICLO DENTRO DO FOR NO EXEMPLO DO COMANDO SWITCH CASE ...................... 139 QUADRO 23 LISTA DE PROPRIEDADES DO EXEMPLO DE FOR ............................................................... 143 QUADRO 24 LISTA DE PROPRIEDADES DO EXEMPLO DE FOR ............................................................... 148 QUADRO 25 LISTA DE PROPRIEDADES DA TELA DE CADASTRO ............................................................ 171 QUADRO 26 LISTA DE PROPRIEDADES DA TELA DE PRODUTO ............................................................. 184 QUADRO 27 - LISTA DE PROPRIEDADES DA TELA DE VENDA ................................................................. 195 QUADRO 28 LISTA DE PROPRIEDADES DA TELA PRINCIPAL................................................................. 205
18
RESUMO
Os aspectos abordados neste trabalho tm como objetivo apresentar as ferramentas para desenvolvimento de aplicaes que funcionem dentro de um ambiente mvel, utilizando as tecnologias Microsoft Visual Studio 2008 e o Kit de Desenvolvimento para Windows Mobile, so apresentados os conceitos da linguagem de programaco C# (C Sharp) que normatizada pela Associao Europia de Fabricantes de Computadores European Computer Manufacturers Association (ECMA 334). No decorrer do trabalho apresentado o ambiente do Visual Studio 2008 e suas principais caractersticas: criao de projetos, os componentes de uma aplicao Mvel e explicados os cdigos utilizados nos exemplos prticos. Esses exemplos rodam nos emuladores, que so ambientes que simulam as caractersticas de alguns dispositivos e suas funcionalidades. O emulador elegido para testar os programas que tem por finalidade elucidar a sintaxe do C#(Sharp) foi o Windows Mobile Professional 6, que emula um Pocket PC Phone e tem todas as funcionalidades do prprio aparelho.Tambm ser criado uma aplicao bsica que utilizar instrues SQL para comunicar-se com a base de dados, que nesse caso o SQL Server Compact Edition 2005. Nas telas que foram desenvolvidas possvel analisar os cdigos, tendo as suas respectivas explicaes linha a linha. Ainda so apresentadas razes pelas quais as empresas adotam o Windows Mobile para rodar as suas aplicaes, foram citados dois casos muito interessantes: O da Indiana S/A que trabalha com um sistema operando externamente, ficando limitado apenas por uma conexo com a internet e o do Po de Acar que utiliza na Loja do Futuro essa tecnologia, oferecendo conforto e mobilidade aos seus clientes. Por essa razo esses modelos de negcio tm crescimento significativo no mercado de dispositivos mveis e o Visual Studio 2008, Windows Mobile 6, o Software Development Kit(SDK) combinados com uma linguagem de programao .NET, um banco de dados robusto e portvel como o SQL Server CE e muita criatividade, formam um conjunto vencedor para atender essa demanda.
19
INTRODUO
O presente trabalho em sua totalidade tem como principal objetivo disseminar conhecimento, adquirido no decorrer do perodo como discente no curso de bacharelado em sistemas de informao e, atravs das tecnologias utilizadas em seu desenvolvimento, justapor conceitos absorvidos de cada disciplina que tenha sentido em seu contexto. inquestionvel a pluralidade de concepes acerca do aprendizado e de suas vrias facetas; introduzidas no espao tecnolgico, auxiliam o aprendiz em sua plena formao. No entanto, iniciativas acadmicas corroboram que, mesmo de maneira invisvel, existe um ciclo de aprendizado que projeta os mais investigativos a futuros pesquisadores, e que existe benefcios para quem aprende e oferece sabedoria. Com essa experincia singular possvel transcender s expostas no cotidiano escolar, pois exige do educando que seja, em isolados momentos, autodidata. Segundo o pensador Paulo Freire o educando, na concepo bancria da educao, apenas recipiente do saber do educador; contudo, novas buscas e experimentos produzem materiais e ou novas vises da aplicabilidade de tecnologias na rea de sistemas.
Em lugar de comunicar-se, o educador faz "comunicados" e depsitos que os educandos, meras incidncias, recebem pacientemente, memorizam e repetem. Eis a a concepo "bancria" da educao, em que a nica margem de ao que se oferece aos educandos a de receberem os depsitos, guard-los e arquiv-los. Margem para serem colecionadores [...] Educador e educandos se arquivam na medida em que, nesta distorcida viso da educao, no h criatividade, no h transformao, no h saber. S existe saber na inveno, na reinveno, na busca inquieta, impaciente, permanente, que os homens fazem no mundo, com o mundo e com os outros. (Freire, 1987, p 33)
20
Tendo como referncia o saber investigativo, ao invs de adotar os princpios da concepo bancria da educao, o trabalho em questo apresentar como resultado de pesquisa, a criao de contedo tcnico que abordar a utilizao de um ambiente de desenvolvimento integrado, o conhecimento de uma linguagem de programao com exemplos de utilizao e um kit de desenvolvimento para dispositivos mveis. Em sua estrutura elucidativa e ilustrativa o trabalho apresentar os princpios criao de aplicaes para rodar (funcionar) em dispositivos mveis com Windows Mobile instalado. Em funo desse trabalho ser desenvolvida uma pequena aplicao, mas para que isso seja possvel ser necessrio instalar um Ambiente de
Desenvolvimento Integrado Integrated Development Environment (IDE), sendo um ambiente utilizado ao desenvolvimento de software, no nosso caso, o Visual Studio 2008 Professional Edition.
21
OBJETIVO
Como citado na introduo, o conjunto de informaes dispostas de forma organizada, intenta em compartilharem os conceitos das disciplinas condizentes com o contedo abordado. Por meio de explicaes e exemplos prticos ser conhecida a sintaxe da linguagem C Sharp, que normatizada pela Associao Europia de Fabricantes de Computadores European Computer Manufacturers Association (ECMA 334), bem como o seu ncleo de execuo. A plataforma de desenvolvimento tambm ser detalhada, pois o Visual Studio 2008 d total suporte ao Windows Mobile na criao e testes nos emuladores, que so ambientes que simulam as caractersticas de alguns dispositivos e suas funcionalidades.
22
JUSTIFICATIVA
A evoluo constante das tecnologias mveis, assim como o crescimento desenfreado de dispositivos, motiva as empresas de desenvolvimento a levarem as suas aplicaes para prximo de seus clientes, e sem dvida, essa uma excelente razo para adotarem o desenvolvimento para esses equipamentos. Como uma considervel parte do mercado de dispositivos utiliza como sistema operacional o Windows Mobile e existe uma presena evidente da plataforma .NET da Microsoft e, no perodo dessa pesquisa, no existia muito contedo e literatura dirigida ao desenvolvimento mobilidade, esse tema fora escolhido.
23
METODOLOGIA
As informaes foram reunidas de pesquisa em livros, artigos, apostilas, internet e, o que mais contribuiu, de fato, foi experincia em projetos. A vida acadmica intensamente ativa, com participaes em palestras e eventos na rea de TI (Tecnologia da Informao), forosamente, incentiva a criao de contedo tcnico voltado a um pblico peculiar. Com o mesmo teor, os procedimentos inquiridos na elaborao desse trabalho, foram realizados; pesquisas esclareceram dvidas e embasaram o desdobramento das explicaes nos captulos adiante.
24
ESTRUTURA DO TRABALHO
Como j citado a estrutura do trabalho ser a de um livro, a contar do momento em que sero apresentados os conceitos de desenvolvimento no Visual Studio 2008, Windows Mobile 6 e Linguagem C# (C Sharp). Tambm ser criada uma pequena aplicao com quatro tabelas para demonstrar os princpios de banco de dados, tais como: insero, deleo, seleo e atualizao. Veremos ainda o relacionamento entre as tabelas e um Apndice com os comandos bsicos da Linguagem de Consulta Estruturada - Structured Query Language (SQL- ANSI). Mas antes desse desenvolvimento sero abordados alguns tpicos de anlise de sistemas: Diagrama de Fluxo de Dados, Modelo de Entidade e Relacionamentos, Dicionrio de Dados. Na primeira parte veremos a anlise do sistema com a delimitao de escopo do exemplo a ser apresentado ao final da segunda etapa, na segunda parte sero conhecidos o ambiente de desenvolvimento, a linguagem de programao da Microsoft o C Sharp e Windows Mobile 6 e, para finalizar, o conceito de integrao do ambiente aos dados ser mostrado com a criao de duas telas de cadastro com recursos de banco de dados.
25
A popularizao dos dispositivos mveis crescente no Brasil devido ao aumento continuo das redes de telefonia, fazendo com que os consumidores sintam a necessidade de estarem atualizados e acompanhando o mercado. Mas nas empresas que a sua presena tem um crescimento significativo com recursos de vdeo-conferncia; sincronismo de mensagem com a caixa de e-mails da empresa; aplicativos personalizados; transmisso de fotos, de vdeos, mensagens; navegador de internet, integrao com Excel, Word, Power Point, recursos que convertem o telefone para um computador de mo. O Windows Mobile atende perfeitamente ao requisito exigente das empresas, pois o principal fator de deciso a segurana dos dados; ao armazenar informaes no Windows Mobile possvel criptograf-las com chaves de at 256 bits. Outro atrativo que tem despertado o interesse do pblico que utiliza veculos, presente em alguns aparelhos, o Sistema de Posicionamento Global Global Position System (GPS), alm de milhares de mini-aplicativos, tais como: antivrus; jogos; agendas personalizadas; aplicativos para clculo financeiro, de
reconhecimento de voz, para esportes entre tantos. Um endereo recomendado para a comunidade de Mobilidade 1 o site: WinCEBr@sil.
26
O custo benefcio est relacionado com a atuao e o seguimento da empresa no mercado, a exemplo disso podemos comparar dois casos distintos: o da Indiana, BI disponvel no Smartphone 2, que se preocupou com a automao de vendas, ganho de produtividade e abrangncia geogrfica; e o caso da Loja do Futuro do Grupo Po de Acar3 que, alm da automao dos processos, quis proporcionar uma experincia nica aos clientes com carrinhos inteligentes que tm sistema de navegao para mostrar a localizao dentro da loja, etiquetas de preo eletrnicas e at um quiosque para consultar receitas e imprimi-las para levar para casa. Em ambos os casos a tecnologia mvel est presente, uma com limtrofe definida no mbito da loja, e a outra com possibilidades delimitadas, apenas, pela rea de cobertura dos sinais de telefonia e satlites. Ento, um estudo de viabilidade auxilia os desenvolvedores e gerentes de projeto a avaliarem, no apenas para se criar uma curva ascendente de atualizao, mas para demonstrar atravs de estudo, se os custos so vlidos aos benefcios oferecidos empresa. Abaixo vemos as imagens dos casos apresentados.
2 3
27
A figura 1 ilustra o sistema de Inteligncia de negcios, Business Intelligence (BI), da Indiana Seguros S/A citado na relao de custo - benefcio
28
Os dispositivos mveis que utilizam Windows Mobile se diferenciam pelas suas caractersticas e funcionalidades; ainda existe uma grande confuso na distino entre os tipos de dispositivos. Uma forma que a Microsoft utiliza para distingui-los na concepo do Sistema Windows Mobile, que especifico para cada caso. importante que atentemos para as especificaes dos dispositivos, pois ao realizarmos downloads de suplementos, cada equipamento tem as suas prprias configuraes e software.
Vejamos as informaes obtidas no site oficial da prpria Microsoft4 para Windows Mobile:
Os Pocket PC Phones vm com uma caneta que pode ser utilizada para tocar a tela. Alm disso, nos Pocket PC Phones, o logotipo da bandeira do Windows aparece na parte superior esquerda da tela inicial.
Os Smartphones no possuem uma tela acionada por toque e nem uma caneta. Na tela inicial, o logotipo da bandeira do Windows aparece na parte inferior esquerda. Os Smartphones podem ter tanto teclados QWERTY quanto teclados de 12 teclas.
29
A partir desse ponto criaremos o modelo lgico do sistema, no um sistema completo, mas como comentado anteriormente o conceito de aplicabilidade da lgica de desenvolvimento com as tecnologias citadas e sua integrao com a base de dados. Como faremos apenas um exemplo de como desenvolver no Visual Studio 2008 para dispositivos mveis e com a linguagem C#, trataremos de criar um modelo freqentemente utilizado em dispositivos mveis por empresas. O modelo que ser desenhado de atuao dentro da rea de vendas, utilizado para cadastrar pedidos e pr-cadastro de potenciais clientes. O modelo elegido simples, porm adequado ao aprendizado de conceitos iniciais na plataforma e tecnologias optadas para esse sistema. Criaremos um modelo de dados baseado em cliente, produto, venda e uma tabela de resoluo com os itens das vendas.
30
Por se tratar de um cenrio meramente ilustrativo no ser criado um estudo de viabilidade, mas pontuaremos algumas consideraes em relao ao desenvolvimento do sistema de exemplo. O projeto visa desenvolver um sistema para atuar em campo, ou seja, ser ferramenta na captao de vendas e pr-cadastro de clientes. Aos clientes j estabelecidos, oferecer a rapidez nos pedidos e, aos no clientes, oferecer um pr-cadastro, a fim de t-los como clientes. O aplicativo ser instalado em dispositivos mveis, o que permite ao representante da empresa, visitas in-loco e execuo de pedidos, que podem ser sincronizados com o servidor de vendas, ou ainda, transmitir os dados para um Sistema Integrado de Gesto - Enterprise Resource Planning (ERP). importante ressaltar que um caso meramente ilustrativo para aplicar os conceitos aprendidos no decorrer dos captulos, dessa forma no ser criado um sistema completo com todos os recursos de um caso real, mas faremos ao menos duas telas utilizando os conceitos de banco de dados e instrues da Linguagem de Consulta Estruturada - Structured Query Language (SQL).
31
Cadastra Venda
Dados Venda
Resposta
VENDEDOR
Cadastra Cliente Resposta
Mobile System
Dados Cadastrados
D2 - VENDAS
D1 - CLIENTES
Dados Cadastrados
Dados Cliente
32
D1 - CLIENTE
Dados Consulta
Consulta
Resposta
VENDEDOR
2
Cadastrar Cliente No Cadastrado
1
Consultar Cliente Insere Venda
5
Consultar Produto Consulta Produto Resultado consulta
4
Inserir Itens Venda
3
Insere Itens Inserir Venda
Dados Cadastrados
Dados Consulta
Dados Item
Resposta
33
O modelo em questo foi adotado por ser muito comum para esse tipo de aplicao. Mesmo sendo um modelo simples, poderemos conhecer os conceitos bsicos de banco de dados. Abaixo a figura 5 mostra o modelo com os relacionamentos e cardinalidade.
2.4.1. Nota Elucidativa: Chaves Primrias e Estrangeiras PK Primary Key (Chave Primria). A funo essencial da chave primria de uma tabela (entidade) identificar unicamente as suas linhas para que no ocorra duplicidade. FK Foreign Key (Chave Estrangeira). quando um atributo (campo) de uma tabela (entidade) est ligado chave primria de outra tabela. Serve para relacionar campos comuns em tabelas distintas e garantir, por exemplo, que uma venda pertence a um cliente pr-determinado.
34
35
Para realizarmos o download do Visual Studio 2008 Professional Edition, acessaremos a pgina da Rede de Desenvolvedores da Microsoft Developer Network (MSDN BRASIL). Em seguida seguiremos o caminho dos hiperlinks, ou simplesmente, links. Essa informao pode no parecer til aos que tm instinto e ateno na navegao de pginas na internet, porm, aos demais, algumas vezes pode ser complicada a tarefa de encontrar a informao desejada de forma rpida e objetiva. Portanto, de forma explicativa e ilustrada, faremos o download seguindo os passos descritos abaixo. Na primeira pgina clicaremos no link em destaque Visual Studio.
5
- Microsoft
http://msdn2.microsoft.com/pt-br/default. aspx
36
Na segunda pgina, podemos conhecer mais sobre a plataforma de desenvolvimento clicando no boto Saiba Mais, ou ento, prosseguirmos atravs do boto Baixe a Avaliao com o nosso objetivo e seguirmos para a prxima etapa.
37
Na quarta pgina, atravs do boto Download it now, ocorrer o direcionamento prxima pgina do download.
Na quinta pgina escolheremos o idioma. Apesar de existir a opo Brasil (Portugus), notaremos que na seguinte e ltima pgina, onde realizaremos, finalmente, o download; no existe o respectivo arquivo.
38
Na ltima pgina so apresentados nove idiomas para download, optaremos pelo idioma Ingls.
Aps clicar na opo escolhida, ser apresentada, rapidamente, a janela para realizarmos o download. Clique em sim para a janela fechar e iniciar o download.
39
Escolha um local para armazenar o arquivo no formato.ISO, que na verdade um conjunto de arquivos compactados e no um acrnimo ou sigla.No devemos esquecer que so 3,3 Gigabytes, ento precisamos de espao em disco. Nas pginas a seguir, aprenderemos como criar (montar) uma unidade virtual e, a partir dessa imagem ISO, instalar o Visual Studio 2008.
Devemos permitir a instalao do ActiveX, o Download Manager (Gerenciador de Download) da Microsoft, para gerenciar a transferncia do arquivo ISO. Clicando em Details (Detalhes), poderemos monitorar o progresso do download.
40
Aps acabar o download, no local escolhido para armazenar o arquivo ISO, veremos um arquivo como a imagem abaixo
O Software pode ser obtido em carter de estudo e pesquisa, atravs de download em verso Trial (verso para teste com um perodo limitado) e utilizado por um perodo limitado em trs meses, tempo necessrio ao aprendizado dos conceitos apresentados nesse trabalho.
41
Para instalarmos o Visual Studio 2008, como comentado anteriormente, precisamos montar uma unidade virtual. O Daemon Tool ideal para emular unidades de Disco Compacto Compact Disc (CD) e Disco Digital de Vdeo Digital Video Disc (DVD) virtual, a sua utilizao simples. O software gratuito e obtido no
6
A instalao bem simples, mas requer o reinicio do Sistema Operacional. Aps clicar sobre o cone de instalao do Daemon, basta ignorar o aviso de segurana do Windows, nesse caso no h risco real, e clicar em Executar.
Devemos clicar em Yes para reiniciar o Sistema Operacional para prosseguirmos com a instalao.
http://www.daemon-tools.cc
42
Aps o reinicio veremos uma tela como a figura 23, selecione Logged Install (Daemon Tools Will create an installation log called daemon log), em seguida clique em Install.
Na tela abaixo, figura 25, podemos escolher o diretrio de instalao, entre outras opes. Mas deixaremos por padro as opes apresentadas.
43
Na figura 26 vemos duas telas: a primeira inicia a instalao, clicaremos em Next; na prxima tela, devemos clicar novamente em Next e aguardar o fim da instalao.
44
Agora clicaremos no boto Close para sair da instalao, nesse momento o Daemon j est instalado e pronto para montar imagens ISO. O prximo passo montar o disco virtual do Visual Studio 2008.
45
Para criarmos uma Unidade Virtual de um DVD, tendo como origem uma imagem ISO, utilizaremos o Daemon Tools instalado anteriormente.
do Daemon Tools
Escolha a opo Virtual CD/DVD-ROM, depois Dispositivo 0:[F] Vazio e a opo Montar Imagem, como detalhado nas imagens, conforme figura 29 e figura 30 respectivamente.
46
Em seguida abrir uma tela para procurarmos a Imagem ISO, basta localizar o arquivo, selecion-lo e clicar em abrir.
Caso no abra automaticamente a tela de instalao do Visual Studio 2008, devemos abrir o Meu computador, clicar com o boto direito no cone do DVD, nesse caso especfico, a unidade DVD1(F:) e escolher a opo Reproduo automtica. Conforme mostra a figura 32.
47
Antes da instalao do Visual Studio 2008 importante conhecer os requisitos mnimos e recomendados para que no tenhamos problema ao final desse processo.
O Visual Studio 2008 requer uma configurao mnima para a instalao, como segue abaixo:
Sistema Operacional (Windows Server 2003; Windows Vista; Windows XP); Computador com processador de 1.6 GHz ou mais rpido; 384 MB de Memria RAM ou mais (768 MB de Memria RAM ou mais para o Windows Vista);
2.2 GB de espao em disco rgido de 5400 Rotaes por Minuto (RPM); Resoluo de vdeo de 1024 x 768 pontos ou superior; Leitor de Disco Digita de Vdeo Digital Video Disc (DVD).
Algumas caractersticas ou recursos do Visual Studio 2008 necessitam de acesso internet. Como por exemplo, imagens de emuladores do Windows Mobile7.
Acesse: http://msdn.microsoft.com/pt-br/windowsmobile/default(en-us).aspx
48
5.2. INSTALAO
Clique em Install Visual Studio 2008, como mostra a figura 33, logo abaixo.
O programa de instalao copiar os recursos necessrios para uma pasta temporria, como ilustra a figura 34.
49
Selecione a opo I have read and accept the license terms. Nesse momento confirmada a leitura e aceitao dos termos da licena para uso da IDE. Clique em Next.
Precisamos escolher o tipo de instalao e a unidade para gravar os arquivos. Deixaremos as configuraes apresentadas na tela, conforme a figura 37, logo abaixo.
50
Nesse momento so instalados todos os requisitos e componentes necessrios para o funcionamento do Visual Studio 2008.
51
Aps clicar em Finish na tela anterior figura 39, ser mostrada a Tela de aberura (SplashScreen) figura 40 do Visual Studio 2008 e aberta uma tela para escolha da linguaguem que ficar como padro ao desenvovimento dos projetos na IDE.
Escolheremos a linguagem C# ao desenvolvimento do nosso sistema, que ser a base para esse trabalho.
52
O Visual Studio 2008 configura o ambiente de desenvolvimento para ser utilizado pela primeira vez.
53
6. PRIMEIROS CONTATOS
Abaixo vemos a tela do Visual Studio 2008, no decorrer do trabalho conheceremos detalhadamente o seu ambiente, componentes e ferramentas.
6.1. START PAGE Podemos notar que essa tela dividida em quatro partes: Recent Projects, MSDN Visual C# Headlines, Getting Started e Visual Studio Headline.
6.1.1. Recent Projects Apresenta uma lista com os projetos mais recentes, podemos abrir existentes ou criar um novo projeto.
6.1.2. MSDN Visual C# Headlines Carrega links da internet com novidades relacionadas linguagem C#.
54
6.1.3. Getting Started Acesso ao help on-line sobre a linguagem C#, onde encontramos muita informao til e atual.
6.1.4. Visual Studio Headline Acesso ao portal do Microsoft Developer Network (MSDN), onde tambm encontramos muita informao e novidades do Visual Studio 2008.
Para abrir o Visual Studio 2008 nas prximas vezes, deveremos acessar o Menu Iniciar, clicar em Todos os Programas, na opo Microsoft Visual Studio 2008 e em seguida em Microsoft Visual Studio 2008.
Podemos facilitar esse acesso; clique com o boto direito no cone do Visual Studio 2008 e escolha a opo: Fixar no Menu Iniciar,conforme figura 44.
55
O Menu Iniciar dividido por uma linha que o separa em duas partes como ilustra a figura 45; na parte inferior esto localizados os programas mais utilizados (definidos pelo Windows) e, na superior, os programas que fixamos, como explicado anteriormente.
Linha divisria
Figura 45 - Destaque das partes do Menu Iniciar e cone do Visual Studio Fixado
Agora temos o cone do Visual Studio 2008 disponvel no Menu iniciar, como ilustra a figura 45.
Antes de iniciarmos os nossos exemplos, importante conhecermos a IDE e suas partes mais relevantes. Abaixo temos uma imagem que ilustra as partes do Visual Studio, destacadas e explicadas.
56
Barra de Menu
Barra Standard
Barra Device
Barra de Layout
Auto Hide
6.3.1. Barra de Menus Nela encontramos os principais menus de controle e configurao do Visual Studio 2008.
6.3.2. Barra Standard Atravs dessa barra podemos: abrir, fechar, rodar (debug) os projetos; alm de abrir algumas janelas, tais quais: Solution Explorer, Properties Windows, Toolbox, Start Page entre outras funes.
57
6.3.5. Solution Explorer Podemos visualizar atravs desse painel todos os arquivos da soluo.
desenvolvimento de sistemas.
6.3.8. rea de Design Local onde so colocados os componentes e criado o Layout (desenho).
6.3.9. Auto Hide Recurso interessante nas janelas Toolbox, Properties e Solution Explorer, todas possuem esse boto para ocultar a janela (Auto Hide). Clicando no boto a janela ser ocultada automaticamente quando no estiver em uso, o melhor testar esse recurso na prtica.
58
7. PRIMEIRO PROJETO
Para nos familiarizarmos com a linguagem C# e com a IDE vamos desenvolver pequenos projetos, dessa forma aplicaremos conceitos de lgica de programao na evoluo e entendimento da sintaxe da linguagem. importante ressaltar que o desenvolvimento ser voltado para dispositivos mveis, mas o Ambiente Integrado de Desenvolvimento Visual Studio 2008 perfeitamente capaz de gerar aplicaes Console, Web, Desktop e WebService nas mais diversas linguagens tais quais: C++, VB, J SHARP, COBOL, todas .NET. No Visual Studio 2008 tambm podemos criar Modelo de Objeto de Componente Component Object Model (COM e COM+), Biblioteca de Ligao Dinmica Dynamic Link Library (DLL) e Addins (pequenos aplicativos) para o pacote Office 2007. Antes de comearmos na integra os nossos exerccios, necessitamos de um local para salvarmos os exemplos. Crie no disco C:/ uma pasta com o nome TCC. Caso tenha mais de uma partio, crie essa pasta nessa outra partio, pois mais seguro e, provavelmente, se evitar problemas futuros. Vamos ao que interessa clique em File/New/Project. As figura 48 e 49 ilustram os passos criao desse primeiro projeto.
59
Nessa etapa escolheremos o tipo de projeto, nome, localizao dos arquivos e nome da soluo. Para isso siga o exemplo abaixo, a figura 50 tambm ilustra as configuraes do nosso primeiro programa, o famoso: Alo Mundo! Essa Aplicao ser salva no diretrio E:\TCC, mas poderamos salvar perfeitamente em qualquer outro local no computador e com qualquer nome para o projeto. Criaremos com as seguintes caractersticas: Project Types: Visual C# - Smart Device; Visual Studio installed templates: Smart Device; Name: Ola_Mundo_Pocket_PC_2003; Location: E:/TCC; Solution Name: Ola_Mundo_Pocket_PC_2003.
60
Aps todas as pr-configuraes: tipo, device, nome, diretrio; apresentada a tela abaixo.
Escolheremos em Templates: Device Application e Target plataform: Pocket PC 2003, depois clique no boto Ok. Devemos configurar a nossa aplicao como a figura 51, logo a seguir.
61
Vejamos a figura 52, onde podemos observar pela primeira vez a tela do Pocket PC.
Como a primeira aplicao criada, colocaremos um simples boto que aps clicado emitir uma caixa de alerta com a mensagem: Al Mundo! Quando passamos o mouse em cima dos componentes mostrada uma caixa com algumas especificaces e verso do componente. Estamos utlizando a verso 3.5 da FrameWork. Como ilustra a figura 53.
62
Agora colocaremos um boto no formulrio do Emulador. Caso a caixa de ferrametas (Toolbox) no esteja visvel, clicaremos em View/Toolbox ou (Ctrl+W,X) que um atalho. Control + W e depois X. Com o boto j inserido, configuraremos algumas propriedades do boto. Caso a janela de propriedades no esteja visvel, iremos em: View/Properties Windows ou (Ctrl+W,P) que um atalho. Control + W e depois P.
Clicando duas vezes (duplo-clique) sobre esse boto, teremos acesso as linhas de cdigo do nosso programa.
63
Notaremos que o Visual Studio 2008 gerou automaticamente algumas linha de cdigo que sero utilizadas pelo programa principal. Nessas linhas veremos: a declarao de alguns namespaces do Visual Studio 2008, sendo esses instanciados pelos usings (nem sempre utilizamos todos os usings); o namespace criado com o mesmo nome do programa; a classe publica do formulrio; a inicializao do componente; uma funo sem retorno (void) com a ao especfica do nosso boto. Quando clicarmos no boto, esse disparar o evento Click que o argumento da funo: private void btnDisparaAcao_Click (object sender, EventArgs e) que retornar a mensagem: Ol Mundo!, atravs do mtodo : MessageBox.Show do namespace System.
64
7.1. INTELLISENSE
Ao comear a digitar os comandos no Visual Studio 2008 e pressionarmos a combinao de teclas CTRL + Barra de espao, apresentado o complemento das classes, mtodos e propriedades. Esse recurso conhecido como Intellisense no exclusividade do Visual Studio 2008, utilizado por vrias linguagens em diversas IDEs, mas bastante til.
Digitaremos MessageBox e pressionaremos a combinao de teclas apresentada na dica anterior e veremos uma imagem semelhante com a ilustrao abaixo.
Para utilizar alguns recursos da Compact Framework precisamos utilizar o namespace especfico, mas sempre que formos utilizar algum recurso novo, sero relacionados os usings necessrios. 65
7.2. NAMESPACES
Os namespaces nativos da Compact Framework so arquivos de biblioteca de ligao dinmica conhecida como Dynamic Link Library (DLL), que tem a funo de encapsular regras de negcio, cdigos e dados que no podem ser acessados diretamente. Podemos criar novos namespaces com funes distintas para hierarquizar o escopo de conjunto de cdigos, funes, classes e at mesmo outros namespaces.
namespace Ola_Mundo_Pocket_PC_2003 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnDisparaAcao_Click(object sender,EventArgs e) { MessageBox.Show("Ol Mundo"); } } }
66
Dica: CTRL + TAB = Alterna entre Layout e Cdigo. Mostra-nos uma caixa com a miniatura das telas da aplicao: cdigo, layout, Start Page, como mostra a figura 58.
A figura 59 mostra os emuladores disponveis na instalao padro do Visual Studio 2008, mais a frente instalaremos o Windows Mobile 6 Profissional, que depois de instalado aparecer junto com os demais emuladores.
desejado, para o primeiro exemplo o emulador que ser usado o Pocket PC 2003.
67
A figura 60 ilustra a conexo do Computador com o Emulador, onde deve aparecer a mensagem Connection succeeded.
68
Na tela seguinte escolheremos o emulador, nesse caso: Pocket PC 2003 SE Emulator e em seguida clicaremos no boto Deploy. Essa tela sempre aparecer depois de Inicializar a aplicao, para que essa tela no aparea necessrio retirar a seleo da caixa, como ilustra a figura 63.
Na primeira aplicao o Visual Studio 2008 iniciar a instalao dos arquivos para emular a nossa aplicao. Caso o Windows seja em portugus, a instalao dos arquivos ser feita no seguinte diretrio:
C:\Arquivosdeprogramas\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE
Na figura 64 a seguir, observamos a aplicao rodando. Para test-la basta clicar no boto , que disparar o evento Click desse boto que por sua vez
chama a mensagem: Ol Mundo em uma caixa de mensagem do prprio Windows Mobile, como ilustra a figuras 64.
69
Para finalizar a aplicao no emulador, acessaremos o Menu File e escolheremos a opo Exit. Logo em seguida ser aberta uma janela (figura 65) para escolhermos em que estado o emulador dever abrir na prxima vez ou se queremos conservar o estado atual.
70
Clicaremos em no; ser mostrada outra janela (figura 67) de dilogo informando que a conexo foi perdida e que devemos atentar quando inicializarmos novamente o emulador.
Para sairmos da aplicao no Visual Studio 2008, acessaremos o Menu File e a opo Close Solution.
71
Voltaremos para a primeira tela do Visual Studio 2008, conforme a figura 69 logo abaixo e na Start Page veremos o nosso projeto listado na janela Recent Projects.
Foi criada uma lista com os projetos mais recentes, na nossa lista consta apenas o projeto Ola_Mundo_Pocket_PC_2003, pois criamos apenas esse projeto. Podemos ainda, na aba Recent Projects, abrir ou criar um novo projeto. Caso queiramos abandonar definitivamente a utilizao do Visual Studio 2008, basta acessar o menu File e em seguida a opo Exit.
O projeto foi desenvolvido em um Emulador nativo do Visual Studio 2008, mas nos demais projetos utilizaremos o Windows Mobile 6 Professional. Um captulo ser dedicado instalao de seu Kit de Desenvolvimento de Software - Software Development Kit (SDK). Podemos realizar 8download de Imagens de Emuladores Adicionais, Devices e SDKs.
http://msdn.microsoft.com/pt-br/windowsmobile/default(en-us).aspx
72
8. CAIXAS DE DILOGO
Dedicaremos um pequeno captulo para tratar das mensagens, conhecermos as mensagens essencial, pois representam a interface de comunicao entre o usurio e a aplicao. Por essa razo de suma importncia reservar um tempo para dominar esse recurso e comunicar-se bem com o usurio final das aplicaes.
As caixas de dilogo so janelas com mensagens exibidas pelo sistema, ou seja; mensagens pr-definidas pelo desenvolvedor e que tm por finalidade: perguntar, alertar ou confirmar sobre aes do usurio, para facilitar essa comunicao o Visual Studio 2008 tem na Framework a classe Messagebox. A classe Messagebox do namespace System.Windows utilizada para interagir com o usurio, podemos configur-la de diversas formas para que essa comunicao seja mais eficiente. Conheceremos as muitas configuraes dessa classe, seus respectivos mtodos e propriedades.
O principal mtodo da classe Messagebox o mtodo Show, em suas sobrecargas podemos exibir diferentes mensagens. A caixa de dilogo pode ser configurada para exibir: a mensagem em si, um rtulo, botes, cones, e ainda definir o boto padro da caixa de dilogo.
A seguir vemos uma imagem de uma caixa de dilogo, aps clicarmos no boto Ok, e tambm analisaremos o seu respectivo cdigo:
73
Aps clicarmos no boto veremos uma caixa de mensagem que exibir uma mensagem conforme a imagem anterior. A seguir temos a mensagem separada e explicada em detalhes.
74
Classe: Messagebox Classe nativa de System Windows; Mtodo: Show - Exibe um caixa de mensagem; Mensagem: Mensagem ou Pergunta - Exibe a mensagem dentro da caixa;
Rtulo: Rtulo da caixa - Exibe um rtulo na barra de ttulo da caixa; Botes: MessageBoxButtons - Exibe os botes, conforme as configuraes pr-definidas;
75
Caixa de Mensagem
Opo
AbortRetryIgnore botes Abort, Retry e Ignore. Exibe na caixa de mensagem um boto OK. Para essa opo o boto OK OK aparece na parte superior do lado direito, nas demais aparece
posicionado junto da mensagem. Exibe na caixa de mensagem os OKCancel botes Ok e Cancel. Podemos
confirmar ou cancelar a ao. Exibe na caixa de mensagem os RetryCancel botes Retry e Cancel. Exibe na caixa de mensagem os YesNo botes Yes e No. Podemos aceitar ou rejeitar a ao. Exibe na caixa de mensagem os YesNoCancel botes Yes, No e Cancel. Podemos aceitar, rejeitar ou cancelar a ao.
Quadro 1 Lista de Argumentos MessageBoxButton
76
Lista os icones da enumerao do MessageBoxIcon. No Quadro 2 consta a lista de cones com a sua descrio.
Imagem
Nome do membro
Descrio
O caixa de mensagem exibe um cone Asterisk. O caixa de mensagem exibe um ponto de exclamao cone. O caixa de mensagem exibe um cone Hand. Nenhum cone exibido. O caixa de mensagem exibe um ponto de
interrogao cone.
Quadro 2 Lista de cones de MessageBoxIcon
77
8.4.ENUMERAO MESSAGEBOXDEFAULTBUTTON
Lista os icones da enumerao do MessageBoxDefaultButton. O boto definido como padro recebe o foco logo que a caixa de mensagem aberta, podemos optar entre trs botes, como ilustra a figura 73. bvio que a quantidade de botes que surgiro na caixa, depende da enumerao de MessageBoxButton, portanto, a opo padro adota o mesmo ndice dos botes da caixa de mensagem.
78
Aps realizar o
Windows Mobile 6, tambm pode ser instalada a verso Standard para conhecermos outro tipo de dispositivo mvel preparado para rodar aplicaes desenvolvidas no Visual Studio 2008, mas nesse trabalho instalaremos apenas o Professional. Devemos clicar com o boto direito do mouse em cima do cone que representa o executvel de instalao do SDK, conforme figura 74, e escolher a opo: Instalar.
Ento se abrir uma tela conforme a figura 75. Aguarde a preparao da instalao.
79
Logo em seguida surgir a tela de boas vindas, conforme a figura 76, nessa tela deve-se clicar em Next para prosseguir com a instalao.
requisitos permitida, mas alguns recursos podem no funcionar corretamente. O ideal realizar o download dos requisitos que esto destacados como Not Installed (No Instalado).
80
Na prxima tela deve-se selecionar a opo Accept e depois em Next, conforme figura 78 abaixo.
Na tela seguinte, confirmamos o nome do usurio e da Organizao. Devemse preencher os respectivos campos e depois clicar em Next.
, mas
deixaremos a instalao utilizar o local padro, como apresentado na figura 80, a seguir. 81
As telas abaixo mostram o progresso e sucessivamente a finalizao da instalao do SDK; deve-se clicar em Finish para finalizar a instalao. A partir desse momento temos disponvel, na criao dos projetos, em Target plataform, o Windows Mobile 6 Professional. Para disponibilizar a verso Standard necessria a instalao do respectivo SDK.
82
83
A Compact Framework de certa forma uma verso reduzida ou compacta da .NET Framework. Atravs de suas classes possvel desenvolver para dispositivos mveis da mesma maneira que para aplicativos Windows Desktop, mas com algumas limitaes em relao .NET Framework. A forma de execuo e caractersticas da .NET Compact Framework seguem o mesmo princpio da .NET Framework completa, portanto, conheceremos as suas principais caractersticas.
84
Na primeira camada escolhemos umas das linguagens suportadas pela Framework para desenvolver as aplicaes; para cri-las acessaremos a Biblioteca de Classes Base - Base Class Library (BCL) que est na segunda camada; em seguida o programa ser compilado e gerar a Linguagem Intermediria (IL) parte da terceira camada; e para rodar definitivamente a aplicao utilizaremos a prxima camada que a quarta camada para verificar e validar as especificaes do Sistema Comum de Tipos - Common Types System (CTS) e da Especificao Comum de Linguagem - Comum Common Language Specification (CLS).
O CLR ambiente de execuo para as aplicaes .NET. As aplicaes no rodam diretamente no runtime do Windows, ao rodar uma aplicao o runtime .NET assume o controle da aplicao, faz o gerenciamento da memria, coleta de lixo, tratamento de erros e controle de verso. Esse tempo de execuo por ser compartilhado utilizado por todas as linguagens suportadas pelo .NET, e toda a definio de tipos so utilizadas comumente entre essas linguagens.
O Sistema de Tipos tambm faz parte do CLR, sendo esse responsvel pela compatibilidade dos tipos de dados entre as linguagens. Os tipos so derivados da classe Object e cada definio deve ser herdada dessa classe raiz, independente da linguagem utilizada. 85
A definio de tipo ser idntica, isso no significa que as declaraes das variveis tambm sero iguais em todas as linguagens, cada uma tem a sua particularidade no que diz respeito sintaxe, mas para utilizar qualquer benefcio desse sistema de tipos necessrio fazer referncia s classes, que so na verdade um conjunto de arquivos de biblioteca, conhecidos como DLL.
A camada com especificaes comuns de dados define um conjunto de regras. Indiferente da linguagem, essas regras so seguidas para posteriormente gerarem a IL. Por essa razo que podemos criar aplicaes em diversas linguagens e gerar um cdigo nico, interpretado de forma clara pela .NET Framework.
A idia em torno da Biblioteca de Classes simples, porm poderosa. Reutilizar classes e componentes em desenvolvimento de sistemas requisito mnimo em orientao a objetos e, de forma simples, oferecido com praticidade pela BCL. Essa biblioteca estruturada de modo hierrquico, onde se pode fazer desde uma simples conexo a dados, como tambm controlar entrada e sada I/O, gerenciamento de memria, sistema de janelas. Essa estrutura dividida em Namespaces. No Quadro 3 veremos alguns desse namespaces e as suas descries.
86
Namespaces Contm algumas classes de baixo nvel usadas para trabalhar com System tipos primitivos, operaes de
gerenciamento
pilhas,
filhas
listas
Log System.Diagnostics
de
Event,
medio
de de
desempenho,
gerenciamento
trabalhar com grficos, chamadas System. Drawing GDI+, que se encontra neste
namespace. Biblioteca para lidar com entrada e System.IO sada, gerenciamento de arquivos. Bibliotecas para programao de System.Net redes, sockets. System.Reflection Biblioteca necessria para gerar
87
cdigo em tempo de execuo, descobrir tipo de variveis. System.RuntimeInteropServices, System.Runtime.Remoting System.Security: Fornece bibliotecas para interagir com cdigo no-gerenciado. Criptografia, permisso e todo o suporte referente segurana. System.Threading Biblioteca multithread Biblioteca sobre tudo relacionado System.Web Web, como Webservices, ASP.NET. Bibliotecas para o desenvolvimento System.Widows.Forms de aplicaes Windows tradicionais. Biblioteca que permite a interao System.XML com documentos XML.
Quadro 3 - Namespaces
para
aplicaes
88
A Linguagem Intermediria da Microsoft gerada quando uma aplicao compilada, no importando em qual linguagem foi desenvolvida essa aplicao. Diferente de outras linguagens como C++ e Delphi que geram cdigo assembly especfico do processador, qualquer que seja a linguagem .NET ser gerada a IL, devemos lembrar que para ser uma linguagem compatvel deve aderir s especificaes da CLS e CTS.
10.8. ADO.NET
A classe de Objetos de Dados - ActiveX Data Objects .NET(ADO.NET) parte da BCL e proporciona o acesso a fontes de dados. Atravs da ADO.NET possvel conectar-se a estas fontes de dados e recuperar, manipular e atualizar os dados que contm. Os componentes que formam a arquitetura do ADO.NET so: Data Source, Data Provider e o DataSet.
Data Source: banco de dados fsico ou um arquivo XML; Data Provider: criar as conexes e processar comandos; Dataset: uma ou mais origem de dados (data source) na memria.
10.8.1. Providers O acesso realizado diretamente por classes nativas, conhecidos como Providers, para cada banco de dados especfico utilizado um provedor diferente; os mais comuns so: OleDb, ODBC, SQL, Oracle e MySql.
89
10.8.2. Relao de Providers O Quadro 4 lista os provedores de dados que esto includos na .NET Framework.
Provedores
SQL Server Utiliza o namespace System.Data.SqlClient. Para fontes de dados compatveis com OLE DB. Utiliza o OLE DB namespace System.Data.OleDb. Para fontes de dados compatveis com ODBC DB. Utiliza ODBC o namespace System.Data.Odbc. Para fontes de dados Oracle 8.1.7 ou superior. Utiliza o Oracle namespace System.Data.OracleClient.
Quadro 4 Provedores de Acesso
90
Os provedores necessitam de objetos para manipularem os dados. O Quadro 5 descreve os quatro principais objetos que compem um Provedor
Objeto
Connection
especficos.
Command DataReader
Executa um comando contra uma fonte de dados. Somente para leitura a partir de uma fonte de dados. Preenche um DataSet e resolve atualizaes com a fonte
DataAdapter de dados.
Quadro 5 Objetos de manipulao de dados
91
o modelo de acesso tradicional; A conexo com o Sistema Gerenciador de Banco de Dados(SGBD) alocada enquanto durar as operaes de manipulao dos dados; Apresenta maior desempenho que o modelo desconectado, mas pode acarretar deficincia na escalabilidade;
11.1.2. Como funciona o modelo conectado: Abrir conexo, Executar comandos, utiliza o reader, fecha o reader e fecha a conexo.
92
No modelo desconectado os dados so obtidos e armazenados em memria; O namespace System.Data contm as classes que representam as entidades do mundo relacional: Tabela= DataTable Campo= DataField Linha = DataRow Relacionamento = DataRelation ;
Uma vez em memria os dados so manipulados e em seguida as alteraes concretizadas, atravs da abertura de uma nova conexo; Somente no momento da leitura e persistncia a conexo aberta com o Sistema Gerenciador de Banco de Dados (SBGD).
Abrir a conexo, preencher o DataSet, fechar a conexo, manipular o DataSet, abrir a conexo, atualizar dados, fechar a conexo.
93
Existem restries no momento da declarao de variveis e, uma em especial, a utilizao de palavras reservadas da linguagem C#. O Quadro 6 descreve todas as palavras que no podero nomear varivel alguma.
Legenda : 2 - C# 2.0 - 3 - C# 3.0 Abstract Break Catch Const Delegate Explicit Enum Float Goto In into3 new operator params As by3 char continue do event false for group3 int is null out private Base Byte Checked Decimal Double Extern Finally Foreach IF Interface Lock namespace Override protected Bool Case Class Default descending3 Else Fixed from3 Implicit Internal Long Object orderby3 Public 94
95
13. VARIVEIS
No desenvolvimento de aplicaes precisamos utilizar um espao reservado na memria para armazenar, por um dado perodo, informaes que sero utilizadas posteriormente. A rea de que estamos tratando mais conhecida como varivel, pois seu contedo pode ser alterado no decorrer do fluxo do programa. As variveis nas linguagens de programao obedecem a especificaes e pr-definies, no caso do C# essas caractersticas so gerenciadas pelo sistema de tipos CTS. A fim de preservar a integridade da aplicao existem regras para definir o contedo que cada varivel armazenar, um texto diferente de um valor numrico, assim como um nmero inteiro diferente de um fracionrio. Para simplificar a declarao e utilizao correta dos tipos, conheceremos os tipos mais comuns e os operadores que podem alterar o contedo das variveis, bem como converses de tipos e algumas funes.
Deve conter apenas letras, dgitos e o caractere de sublinhado (_); O primeiro caractere deve ser obrigatoriamente uma letra, o caractere _ tambm permitido, mas no recomendado; Existe diferena de minsculas e maisculas (Case Sensitive). Nome, nome, NOME so variveis distintas; Palavras reservadas do C# tambm no podem ser utilizadas como identificadores para variveis; Mximo de 255 caracteres.
96
importante salientar que a declarao de uma varivel sutilmente diferente de definio de uma varivel. Na declarao das variveis informamos seu nome e tipo. Como exemplo, declararemos uma varivel chamada valor, do tipo inteiro:
Int valor;
Na definio, tambm conhecida como inicializao, definimos o contedo que ser armazenado no espao de memria, ou seja; na varivel. No exemplo abaixo declaramos a varivel na primeira linha e na segunda a inicializamos:
int valor; valor = 100;
13.3. CONSTANTES
Como vimos, a variveis permitem a alterao do seu contedo durante a execuo da aplicao; quando existe a necessidade de utilizar um valor que no ser alterado em todo o escopo da aplicao, utilizamos as constantes. Para definir uma constante devemos atribu-la atravs da palavra-chave: const. Abaixo vemos um exemplo de declarao e definio (inicializao):
const int valor = 100;
97
Caso tentemos alterar o seu valor durante a execuo da aplicao, causaremos um erro interno de compilao.
const int valor = 100; valor = 200; --- (causar um erro de compilao)
Dica: No regra, mas geralmente usam-se padres para nomear variveis. Tambm no recomendado utilizar acentuao em nomes de variveis, classes e mtodos. Para nomes de classes, mtodos; usaremos a notao Pascal, onde cada palavra iniciada em letra maiscula:
Como boa prtica, usaremos as variveis sempre em letras minsculas; para variveis com nomes compostos usaremos o padro Camel, onde a primeira palavra fica em minscula e as demais com a primeira letra em maiscula:
int valorAtual; CalcularSalario;
98
14. TIPOS
A partir deste ponto conheceremos os principais tipos e exemplos de declarao, mas no decorrer dos exemplos nos habituaremos com esses tipos e seus valores. Os tipos sero divididos em categorias para melhor entendimento: integrais, ponto-flutuante, decimal e booleano. A figura 89 ilustra a hierarquia de tipos da .NET Framework.
Tipos que no apresentam parte fracionria, o Quadro 7 lista os tipos, faixa de valores e tamanho em bits.
99
Tipo sbyte byte (sem sinal) short ushort (sem sinal) int uint (sem sinal) long -128 at 127 0 at 255
Faixa de Valores
0 at 18.446.744.073.709.551.615
Quadro 7 - Tipos Integrais
64 bits
long eleitoresBrasil;
Tipos capazes de armazenar a parte fracionria de um nmero, abaixo seguem os Quadros com os tipos, faixa de valores e tamanho em bits. A preciso define quanto nmeros sero apresentados aps a vrgula; caso exceda o mximo permitido, ser arredondado para o prximo inteiro. No Quadro 8 notamos que o tipo Double mais preciso quando tratamos com nmeros que exijam maior exatido em seu resultado final.
100
Ainda temos um tipo dedicado s aplicaes financeiras, que utilizam nmeros muito extensos e precisam de extrema preciso. Segue suas
Tipo decimal
Preciso 28 dgitos
So tipos preparados para armazenar caracteres (texto), o tipo char armazena um caractere isolado, enquanto o tipo string armazena um conjunto de caracteres. Cada caractere ocupa em C# 16 bits e todos os caracteres tm um valor equivalente em Unicode.
101
No C#, encontramos diversas funcionalidades para manipulao de strings. Podemos verificar a quantidade de caracteres de uma string, alterar maisculas, remover ou substituir parte de uma string. Abaixo vemos o Quadro 11 com alguns mtodos para strings.
Funcionalidade Insere uma substring a partir da posio especificada. Converte uma string para maisculas. Converte uma string para minsculas. Remove caracteres a partir de uma posio. Substitui as ocorrncias de uma substring por outra escolhida. Retorna a quantidade de caracteres de uma string. Remove espaos de uma string
Quadro 11 - Funcionalidades para Strings
102
O valor de sada ser = Total, pois foi removido todo o restante do texto foi removido a contar da posio 5.
So tipos preparados para armazenar apenas os valores true ou false a uma varivel. Este tipo ocupa apenas um bit de memria e seu valor inicial, caso no seja inicializada a varivel true.
Tipo Bool
Tamanho 64 bits
14.5. DATA (DATETIME) So tipos preparados para armazenar valores de datas e horrios. A funo DateTime.Now retorna a data e hora com o seguinte formato: dia/ms/ano hora/minutos/segundos. 103
Existem inmeras funes para manipulao de data e hora, como por exemplo: Adicionar dias, meses, anos, segundos, minutos, horas a uma determinada varivel.
Tipo datatime
Tamanho 8 bit
Alm dos tipos apresentados acima, temos um tipo raiz que primitivo e responsvel pelos demais tipos. Dentro da Biblioteca de Classes os tipos derivam do tipo object.
A converso de tipos em qualquer que seja a linguagem necessria para que um tipo seja transformado em outro sem que aconteam erros inesperados, mas existem critrios para que o valor de uma varivel possa ser alterado. Os tipos de menor faixa podem ser convertidos sem problemas para os de maior faixa de valores, o contrrio no possvel. No Quadro a seguir vemos as principais converses implcitas pr-definidas. Converses implcitas podem ocorrer
em diversas situaes, incluindo chamadas de mtodos e instrues de atribuio de valores a variveis ou propriedades. 104
Tipo sbyte Byte short ushort int uint long char float ulong
Converte em short, int long, float, double ou decimal short, ushort int, uint, long, ulong, float, double ou decimal int, long float, double ou decimal int, uint long, ulong, float, double ou decimal long, float double ou decimal long, ulong float, double ou decimal decimal float, double ushort, int uint, long, ulong, float, double ou decimal double decimal float, double
Quadro 14 Converso de Tipos
O .NET dispe de uma classe do namespace system utilizada para converso de tipos, atravs da classe Convert podemos realizar converso entre tipos. O Quadro 15 a seguir apresenta os mtodos e a sua respectiva descrio:
105
Descrio Converte um determinado valor para um valor boolean. Converte um determinado valor para um inteiro de 8 bits. Converte um determinado valor para um caractere unicode. Converte um determinado valor para um DateTime. Converte um determinado valor para um nmero Decimal. Converte um determinado valor para um valor de nmero de ponto flutuante com a preciso do tipo Doubl.
ToInt16 ToInt32
Converte um determinado valor para um inteiro de 16 bits. Converte um determinado valor para um inteiro de 32 bits (compatvel com int).
ToInt64
ToSingle
Converte um determinado valor para um valor numrico de ponto flutuante com preciso do tipo Single (compatvel com float).
ToString ToUInt16
Converte um determinado valor para um formato String. Converte um determinado valor para um inteiro de 16 bits (compatvel com ushort).
ToUInt32
ToUInt64
106
107
15. OPERADORES
Os operadores so utilizados para efetuar clculos matemticos, comparao de valores e para atribuir valores s variveis. Na tabela a seguir conheceremos os principais operadores. A seguir o Quadro 16 mostra os principais operadores.
Operador + * / = % *= /= %= += -=
Descrio Adiciona duas ou mais variveis. Subtrai duas ou mais variveis. Multiplica duas ou mais variveis. Divide um nmero por outro. Atribui valor a uma varivel. Retorna o resto de uma diviso. Multiplica e atribui o resultado. Divide e atribui o resultado. Divide e obtm o resultado Soma e atribui o resultado. Subtrai e atribui o resultado.
Quadro 16 - Principais Operadores
Como usar x=4; y=2; z= x+y; z = 6 x=4; y=2; z= x-y; z = 2 x=4; y=2; z= x*y; z = 8 x=4; y=2; z= x/y; z = 2 salarioMinimo = 412.25 x=10; y=4; z=x%y; z=2; x*=2; Equivale: x = x*2 x/=2; Equivale: x = x/2 x%=2; Equivale: x = x%2 x+=2; Equivale: x = x+2 x-=2; Equivale: x = x-2
108
Para vermos na prtica como funcionam os operadores, faremos um programa de exemplo. Primeiramente abriremos o Visual Studio 2008, clicaremos em File/New/Project. Escolheremos Smart Device Project, daremos o nome de prjOperadores, como a figura 90 a seguir:
Clique em OK. Na prxima tela configuraremos as propriedades como ilustra a figura 91, e confirmaremos no boto OK.
109
Objeto Form1
Valor frmOperadores False Operadores 20;64 Nmero A: 20;81 20;110 Nmero B: 20;127 155;70 + 155;100 155;130 / 155;160 * 155;190 Mod 20;225 Resultado:
Label1
Location Text
TextBox1 Label2
TextBox2 Button1
Button2
Location Text
Button3
Location Text
Button4
Location Text
Button5
Location Text
Label3
Location Text
110
A tela dever ficar como a figura 92; alteraremos as propriedades conforme o Quadro 17. O programa ilustra a utilizao de operadores, executando de forma simples clculos, aps preenchermos os campos dos nmeros A e B
Digitaremos o seguinte cdigo no boto clique no boto onde ser inserido o cdigo. 15.2.1. Cdigo do boto:
private void button1_Click(object sender, EventArgs e) { // Declarao das Variveis int x; int y; int resultado; // Atribui o valor digitado no campo: textBox1 varivel x // Tambm realizada a converso para inteiro x = int.Parse(textBox1.Text); // Atribui o valor digitado no campo: textBox2 varivel y y = int.Parse(textBox2.Text); // Atribuio da soma de x+y varivel resultado resultado = x + y; // Apresentao do valor da varivel resultado no label3 // Tambm realizada a converso para string label3.Text = resultado.ToString(); }
111
Nos demais botes, colocaremos o mesmo cdigo; alteraremos apenas a linha do resultado, de acordo com os respectivos botes.
112
16. COMENTRIOS
No cdigo exibido na aplicao anterior, percebem-se algumas linhas precedidas por duas barras(//), que em C# representa um comentrio. As linguagens de programao, para auxiliar os desenvolvedores, dispem de comentrios que nada mais so que partes dentro do cdigo que no sero executadas, servem apenas para explicar linhas de cdigo.
Dica: Para que no futuro o cdigo seja entendido por outro programador, recomendado que se comente a utilizao de cada linha dentro de uma aplicao.
113
17. VETORES
Os vetores, tambm conhecidos em programao como arrays, so estruturas dimensionais de dados simples e nos permitem armazenar mais de um valor em uma mesma varivel. O acesso ao valor dentro dessa varivel realizado pelo seu ndice que pode ser numrico ou texto. Devemos entender o ndice como a posio que o valor ocupa dentro do array.
Conforme a citao anterior, os arrays iniciam sempre no ndice zero (0) e so agrupados com um nmero fixo. No entraremos no mrito de arrays
multidimensionais e nem nos Jaggeds que representam arrays de arrays. A seguir veremos como: declarar, criar, armazenar e acessar um vetor.
Para declararmos um array primeiramente escolhemos o tipo de dado e, em seguida, colocamos abertura e fechamento de colchetes ([]). Por ltimo, definiremos o nome da varivel:
string [] frutas;
114
O array est criado, no entanto, no foi inicializado com nenhum valor. Antes de atribuirmos os valores ao novo array indispensvel o operador new, definindo assim o nmero de elementos que o array armazenar. O nmero de elemento deve ficar entre os colchetes, a seguir vemos um exemplo de inicializao com 05 elementos para o array frutas.
frutas = new string [5];
Para armazenarmos valores no vetor utilizamos os seus ndices, mas vale lembrar que os vetores em C# iniciam em zero (0) e que, ainda no comentado, a sua ltima posio ou elemento o tamanho do prprio vetor menos um (1), em seguida associamos o valor de uma varivel ou constante, que desejamos armazenar em uma determinada posio do vetor, com o sinal de igual. // armazena a string goiaba no ndice zero
frutas[0] = "goiaba";
Para acessarmos um valor dentro de um array utilizado o ndice, por exemplo, se formos acessar o contedo do ndice um (1), apenas passaramos o nome da varivel e o respectivo ndice. O exemplo abaixo retorna o contedo: morango.
string frutaEscolhida = frutas[1];
115
Para vermos na prtica como funcionam os vetores, faremos um programa de exemplo. Primeiramente abriremos o Visual Studio 2008, clique em File/New/Project. Escolheremos Smart Device Project, daremos o nome de vetorDimensional, como a figura 94 a seguir:
Clicaremos em OK. Na prxima tela configuraremos as propriedades como ilustra a figura 95, e confirmaremos no boto OK.
116
Objeto Form1
Valor frmVetores False Vetores lsbMostraValores 61; 34 131; 128 btnListaVetor 79; 188 Executar
listBox1
Button1
A tela dever ficar como a figura 96; alteraremos as propriedades conforme o Quadro 18. O programa trata da utilizao de vetores, bem simples, mas demonstra na prtica a sua utilizao.
117
Digitaremos o seguinte cdigo no boto duplo clique no boto onde ser inserido o cdigo.
/* faz um loop que vai de zero(0) at o tamanho do array menos um(1)*/ for (int i = 0; i <= (frutas.Length -1); i++) { // mostra o contedo na caixa de mensagem MessageBox.Show(frutas[i]); // Adiciona em uma lista os valores do array lsbMostraValores.Items.Add(frutas[i]); } }
A seguir vemos uma forma de declarar, criar e armazenar os valores em um vetor em uma nica linha. Utilizaremos o mesmo vetor, apresentado no exemplo anterior, para facilitar a comparao entre os modos de declarao.
118
18. ENUMERADORES
Para entendermos bem como funciona o conceito de enumeradores, vamos pensar em uma lista limitada de opes que fazem parte do mesmo escopo, como por exemplo: tipos de telefone; logo, pensamos em alguns tipos relacionados ao contexto, como: residencial, celular, recado, trabalho. Ao invs de criarmos vrias constantes para definir esses tipos utilizamos enumeradores. Com esse raciocnio fundamentado, podemos consider-los como estruturas de dados que facilitam a leitura do cdigo, permitindo a definio de constantes nomeadas para um conjunto de valores. Segue a demonstrao do enumerador citado anteriormente, com os tipos de telefone listados como itens dentro do corpo da enumerao.
enum tipoTelefone { residencial, celular, recado, trabalho }
Os enumeradores representam os tipos de dados contidos dentro da sua estrutura, podemos ento declarar variveis do tipo do enumerador, da mesma forma que declaramos qualquer outro tipo. Para declararmos simples, como aprendemos no captulo que trata da declarao de variveis, definimos o tipo e depois o nome da varivel.
119
Para atribuir um valor de enumerao muito simples, utilizamos o mesmo raciocnio. Colocamos a varivel e depois do sinal de igualdade lhe atribumos o valor. A nica diferena que faremos referncia ao tipo de dado do enumerador, sucedido por um ponto, que permitir acesso lista do enumerador.
Podemos converter os valores dos enumeradores para string ou inteiro, nos possibilitando a recuperao do seu valor literal ou de seu ndice, que seguem a mesma concepo dos vetores, ou seja, comeam sempre em zero (0). Podemos ainda atribuir valores ao item dentro do enumerador, contudo no teremos mais o seu valor de ndice, apenas o valor atribudo. Vale ressaltar que o valor apresentado depende da utilizao, converso e recuperao dessa informao.
120
Para vermos na prtica como funcionam os enumeradores, faremos um programa de exemplo. Primeiramente abriremos o Visual Studio 2008, clicaremos em File/New/Project. Escolheremos Smart Device Project, daremos o nome de prjEnumeradores, como a figura 97 a seguir:
Clicaremos em OK. Na prxima tela configure as propriedades como ilustra a figura 98, e confirmaremos no boto OK.
121
Objeto Form1
Button1
A tela dever ficar como a figura 99; alteraremos as propriedades conforme o Quadro 19.
122
Digitaremos o seguinte cdigo no boto duplo clique no boto onde ser inserido o cdigo.
Nesse exemplo existe uma particularidade, a declarao do enumerador no realizada no mesmo escopo do cdigo do boto, mas fora dele. Podemos declarlo abaixo do ltimo using, ficando com visualizao global e disponvel em toda classe dentro do projeto.
// Declarao do Enumerador enum tipoTelefone { residencial, celular, recado, trabalho = 34 }
123
Os operadores lgicos so aplicados para comparao de valores dentro das estruturas condicionais, podemos utilizar mais de uma condio nas tomadas de deciso, os operadores lgicos so usados para auxiliar nos critrios de avaliao das condies apresentadas. Operadores de juno de condies como o E representado pelos smbolos &&(E comercial) e o operador OU representado pelos smbolos || (duplo pipe) atuam em expresses de lgica composta. Abaixo vemos no Quadro 20 os principais operadores.
Funo Igualdade No igualdade Maior que Menor que Maior ou igual Menor ou igual Operador de negao Operador E Operador OU
124
Em qualquer linguagem de programao as estruturas condicionais, sem dvida, so as mais utilizadas. Isso ocorre pelo fato da existncia de validar o dado antes de utiliz-lo dentro da programao, tambm so utilizadas para direcionar o fluxo em rotinas, funes, entre outros. Vamos conhecer algumas estruturas e sua respectiva sintaxe.
20.1.IF, IF... ELSE, IF... ELSE IF Podemos executar seletivamente parte de um programa atravs da declarao if. uma condio boolean, isto , verdadeira ou falsa. Se a condio for verdadeira, ento, a declarao executada; se a condio falsa a declarao ignorada.
20.1.1. IF A sua forma mais simples mostrada a seguir, onde inserida uma condio e um bloco de comandos para serem executados, conforme o resultado da condio booleana. Os comandos de estruturas condicionais precisam de um parmetro de comparao, o Quadro de operadores utilizado para essa finalidade. Exemplo:
// Declarao das variveis int x = 10; int y = 20; // Compara as condies de X e Y if (x < 10 || y == 20) // Caso verdadeiro retorna mensagem MessageBox.Show("Mensagem");
125
Agora vemos sua estrutura completa. Compara se a condio verdadeira e executa o primeiro bloco de comandos, caso seja diferente executa o segundo bloco de comandos.
// Declarao das variveis int x = 10; int y = 20; // Compara as condies de X e Y if (x < 10 || y == 20) // Caso verdadeiro retorna mensagem MessageBox.Show("Mensagem"); else // Caso falso retorna outra mensagem MessageBox.Show("Outra mensagem");
Na forma geral de declarao do comando if necessrio que exista a abertura e fechamento dos blocos de comandos, esse escopo delimitado por chaves {} . Todos os comandos de um determinado bloco de comandos, obrigatoriamente, devem estar entre os delimitadores, isso serve para todos os blocos de comandos dentro da estrutura. As condies de comparao devem estar entre parnteses (), como ilustra o trecho a seguir.
if(condio) { comandos para execuo } else { outro bloco de comandos } para execuo
126
20.1.3IF... ELSE IF
Em algumas situaes precisamos testar duas ou mais condies diferentes, para isso utilizamos a estrutura do if de outra forma. Igualmente s demais declaraes, utilizamos delimitadores para bloco de comandos e, para cada bloco, finalizamos com ponto e vrgula.
if(condio) { comandos para execuo; } else if(outra condio) { comandos para execuo; } else if(mais outra condio) { comandos para execuo; } else { comandos para execuo;; }
Para vermos na prtica como funciona o comando if, faremos um programa de exemplo. Primeiramente abriremos o Visual Studio 2008, clicaremos em File/New/Project. Escolheremos Smart Device Project, daremos o nome de prjEstruturaIf, como a figura 100 a seguir:
127
Clicaremos em OK. Na prxima tela configuraremos as propriedades como ilustra a figura 101, e confirme em no boto OK.
128
Objeto Form1
TextBox1
Name Location
Button1
A tela dever ficar como a figura 102; alteraremos as propriedades conforme o Quadro 21.
129
Digitaremos o seguinte cdigo no boto um duplo clique no boto onde ser inserido o cdigo.
A utilizao do switch substitui em muitos casos inmeros laos de if; podemos testar uma determinada varivel para inmeras possibilidades de valores ou ainda executar um conjunto de comandos que dependem diretamente do valor vindo de uma varivel. Os blocos de comandos so delimitados pela instruo break, que fora a parada do ciclo dentro do switch, se a condio for admitida. No h limites para a quantidade de cases dentro do comando switch, mas o ltimo valor deve ser o default (padro), para as ocorrncias que nenhuma clusula case contenha o valor testado. Podemos utilizar no comando switch tanto variveis numricas como tambm variveis do tipo string.
Switch (dia) { case 0: nomeDia = Domingo; break; case 1: nomeDia = Segunda; break; ... case 6: nomeDia = Sbado; break; default: nomeDia = Nenhum dia escolhido; break; }
Para vermos na prtica como funciona o comando switch, faremos um programa de exemplo. Primeiramente abriremos o Visual Studio 2008, clicaremos em File/New/Project. Escolheremos Smart Device Project, daremos o nome de prjSwitchCase, como a figura 103 a seguir: 131
Clicaremos em OK. Na prxima tela configuraremos as propriedades como ilustra a figura 104, e confirme em no boto OK.
132
Objeto Form1
Valor frmSwitchCase False SwitchCase lblNome 20;40 Digite o seu nome: txtNome 20;63 lblMes 20;105 Ms de Aniversrio cbbMeses 20;128 100; 22 btnExecutar 138; 121 Executar lblResultado 20;177 204;66
Label1
TextBox1
Name Location
Label2
ComboBox1
Button1
Label3
133
A tela dever ficar como a figura 105; alteraremos as propriedades conforme o Quadro 22.
Esse exemplo funcionar da seguinte forma. Os meses sero preenchidos automaticamente, atravs de um mtodo que ser chamado na parte de inicializao do programa: Abaixo das linhas:
namespace prjSwitchCase { public partial class frmSwitchCase : Form {// Digite o mtodo a partir deste ponto
Coloque o cdigo do mtodo preencheCombos para que o preenchimento dos meses ocorra automaticamente no Combobox de Meses.
public void preencheCombos() { // Array com os meses string[] meses = {"Janeiro", "Fevereiro","Maro", "Abril","Maio","Junho", "Julho","Agosto","Setembro", "Outubro","Novembro","Dezembro" }; // Aqui feito um loop at o total de meses e preenchido o //combo de meses com cada conteudo do ndice for (int i = 0; i <= (meses.Length - 1); i++) { cbbMeses.Items.Add(meses[i]); } }
134
E para ser carregado junto com o carregamento do formulrio, chamaremos na parte de inicializao. Caso existam dvidas, o cdigo completo est nas duas pginas seguintes. A seguir tambm veremos um exemplo do comando for.
public frmSwitchCase() { InitializeComponent(); preencheCombos(); }
Agora, digitaremos o seguinte cdigo no boto daremos um duplo clique no boto onde ser inserido o cdigo. 20.2.1.1. Cdigo do boto
, para isso
private void btnExecutar_Click(object sender, EventArgs e) { if (txtNome.Text.Equals(""))// Verifica se nome est vazio { MessageBox.Show("Digite o seu nome"); txtNome.Focus();// Caso vazio, campo nome recebe o foco return; // Caso vazio, sai e fica com o foco no campo nome. } string nome; // Declarao de varivel que guardar o nome nome = txtNome.Text; // Campo de texto passa valor varivel switch (cbbMeses.SelectedIndex) // Pega o ndice para comparar { case 0: // Caso seja zero executa os comandos mostra mensagem lblResultado.Text = nome + " ,\nVoc escolheu: " + Convert.ToString(cbbMeses.SelectedItem);// Pega valor do item break; // pausa case 1: // Funcionamento dos demais cases igual ao primeiro lblResultado.Text = nome + " ,\nVoc escolheu: " + Convert.ToString(cbbMeses.SelectedItem); break;
//...Complete os outros meses do case: 2 ao 11
case 12: lblResultado.Text = nome + " ,\nVoc escolheu: Convert.ToString(cbbMeses.SelectedItem); break; default: MessageBox.Show("Escolha um ms."); break; } }
" +
Devemos clicar no boto (Start Debugging) ou clicar na tecla de atalho F5, para inicializar a nossa aplicao. 135
namespace prjSwitchCase { public partial class frmSwitchCase : Form {// Digite o mtodo a partir deste ponto public void preencheCombos() { string[]meses={ "Janeiro","Fevereiro","Maro", "Abril","Maio","Junho", "Julho","Agosto","Setembro", "Outubro","Novembro","Dezembro" }; for (int i = 0; i <= (meses.Length - 1); i++) { cbbMeses.Items.Add(meses[i]); } } public frmSwitchCase() { InitializeComponent(); preencheCombos(); } private void btnExecutar_Click(object sender, EventArgs e) { if (txtNome.Text.Equals("")) { MessageBox.Show("Digite o seu nome"); txtNome.Focus(); return; } string nome; nome = txtNome.Text; switch (cbbMeses.SelectedIndex) { case 0: lblResultado.Text = nome + " ,\nVoc escolheu: Convert.ToString(cbbMeses.SelectedItem); break;
" +
136
case 1: lblResultado.Text = nome + " ,\nVoc escolheu: Convert.ToString(cbbMeses.SelectedItem); break; case 2: lblResultado.Text = nome + " ,\nVoc escolheu: Convert.ToString(cbbMeses.SelectedItem); break; case 3: lblResultado.Text = nome + " ,\nVoc escolheu: Convert.ToString(cbbMeses.SelectedItem); break; case 4: lblResultado.Text = nome + " ,\nVoc escolheu: Convert.ToString(cbbMeses.SelectedItem); break; case 5: lblResultado.Text = nome + " ,\nVoc escolheu: Convert.ToString(cbbMeses.SelectedItem); break; case 6: lblResultado.Text = nome + " ,\nVoc escolheu: Convert.ToString(cbbMeses.SelectedItem); break; case 7: lblResultado.Text = nome + " ,\nVoc escolheu: Convert.ToString(cbbMeses.SelectedItem); break; case 8: lblResultado.Text = nome + " ,\nVoc escolheu: Convert.ToString(cbbMeses.SelectedItem); break; case 9: lblResultado.Text = nome + " ,\nVoc escolheu: Convert.ToString(cbbMeses.SelectedItem); break; case 10: lblResultado.Text = nome + " ,\nVoc escolheu: Convert.ToString(cbbMeses.SelectedItem); break; case 11: lblResultado.Text = nome + " ,\nVoc escolheu: Convert.ToString(cbbMeses.SelectedItem); break; case 12: lblResultado.Text = nome + " ,\nVoc escolheu: Convert.ToString(cbbMeses.SelectedItem); break; default: MessageBox.Show("Escolha um ms."); break; } } } }
" +
" +
" +
" +
" +
" +
" +
" +
" +
" +
" +
" +
137
As estruturas de repetio so utilizadas para repetir partes de cdigo ou linhas isoladas; tambm conhecidos como loop tem como funo repetir diversas vezes essas partes selecionadas de cdigo, at que uma condio seja verdadeira. Veremos um exemplo clssico dentro de lgica de programao para ilustrar essas estruturas, a famosa tabuada.
21.1. FOR O comando for a estrutura mais simples de repetio dentro do C Sharp, sua sintaxe segue as mesmas caractersticas do C/C++. Declaramos uma varivel para fazer o controle do loop. Deve ser inicializada com um valor; ter uma condio para sair da estrutura de repetio e uma expresso para incrementar ou decrementar o valor de inicializao.
for (int i = 0; i < length; i++) { comandos }
Acima vemos a declarao do comando for, onde i uma varivel do tipo inteiro que inicializada em zero; o valor de i condicionado ao tamanho (length) da expresso, que pode ser a quantidade de um array como no exemplo apresentado no comando Switch Case ou um valor definido como limite para a finalizao do loop. No exemplo do comando Switch Case, testamos a quantidade dentro do conjunto, onde i deve ser menor ou igual quantidade de itens dentro do array e -1, para no estourar o loop, pois temos 12 itens, mas o ndice comea em zero, logo quando chegar em 12 ele sai do loop sem causar erro. 138
Abaixo veremos um Quadro ilustrando o ciclo dentro da estrutura for utilizada no exemplo de Switch Case.
for (int i = 0; i <= (meses.Length - 1); i++) { cbbMeses.Items.Add(meses[i]); }
Linhas Passagens de i int i = 0 i <= (meses.Length - 1) i++ adicionadas no Combo 1 2 3 4 5 6 7 8 9 10 11 12 13 0 1 2 3 4 5 6 7 8 9 10 11 12 0 <= 11 1 <= 11 2 <= 11 3 <= 11 4 <= 11 5 <= 11 6 <= 11 7 <= 11 8 <= 11 9 <= 11 10 <= 11 11 <= 11 12<=11 0+1 1+1 2+1 3+1 4+1 5+1 6+1 7+1 8+1 9+1 10+1 11+1 Janeiro Fevereiro Maro Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro
Sai do loop
139
O Visual Studio 2008 tem um recurso interessante que oferece a incluso de estruturas, caso no nos lembremos de sua sintaxe. Com o boto direito em qualquer parte do cdigo aberta uma janela com algumas opes, como a figura 106, escolheremos a opo Insert Snippet...
Em seguida veremos uma imagem, como mostra a figura 107, escolheremos a opo Visual C#.
Outra tela ser aberta com os exemplos de estruturas disponveis, escolheremos o for, como ilustra a figura 108.
140
Aps escolhermos a opo for, veremos o cdigo gerado como mostra a figura 109.
Para vermos na prtica como funciona o comando for, faremos um programa de exemplo. Primeiramente abriremos o Visual Studio 2008, clicaremos em File/New/Project. Escolheremos Smart Device Project, daremos o nome de prjEstruturaFor, como a figura 110 a seguir:
141
Clicaremos em OK. Na prxima tela configuraremos as propriedades como ilustra a figura 111, e confirme em no boto OK.
142
Objeto Form1
Valor frmTabuada False Tabuada lblTitulo 35;5 Escolha um n para a tabuada txtNumero 35;34 btnExecutar 87; 34 Executar btnLimpar 162; 34 Limpar lst_Numeros 35;67 193;184
Label1
TextBox1
Name Location
Button1
Button2
LisBox1
A tela dever ficar como a figura 112, altere tambm as propriedades conforme o Quadro 23.
143
Digitaremos o seguinte cdigo no boto duplo clique no boto onde ser inserido o cdigo.
144
Digitaremos o seguinte cdigo no boto duplo clique no boto onde ser inserido o cdigo.
145
21.2. WHILE
O comando while utiliza sempre uma condio lgica para controle, testando a veracidade dessa condio; de forma literal podemos entender esse comando de forma simples. De uma forma direta podemos entender a sua funcionalidade, pois enquanto no satisfazer a condio testada ele no interrompe o seu fluxo. Devemos atentar para um detalhe muito importante, deve existir uma condio para ser examinada, seno o fluxo pode entrar no que conhecido como loop infinito.
Exemplo 1: Dentro do while se a condio for falsa o bloco de comandos no ser executado:
int x = 0; while (x < 3) { x++;
comandos;
}
Exemplo 2: Na outra forma usamos a clusula do, assim a iterao executada pelo menos uma vez e a condio avaliada ao final do bloco de cdigo
int x = 0; do { comandos } while (i < 10);
146
Para vermos na prtica como funciona o comando While, faremos um programa de exemplo. Primeiramente abriremos o Visual Studio 2008, clicaremos em File/New/Project. Escolheremos Smart Device Project, daremos o nome de prjEstruturaWhile, como a figura 114 a seguir:
Clicaremos em OK. Na prxima tela configure as propriedades como ilustra a figura 115, e confirmaremos no boto OK.
147
Objeto Form1
Label1
lblVerde 19;11 Verde: lblVermelho 19;43 Vermelho: lblAzul 19;73 Azul: pnlCor 19; 96 207;35 lsbNumeros 19; 137 btnExecutar 87; 251 Executar
Label2
Label3
Panel1
ListBox1
Name Location
Button1
148
A tela dever ficar como a figura 116; alteraremos as propriedades conforme o Quadro 24.
No exemplo criado iremos utilizar o padro de cores primrias (do ponto de vista cientfico) vermelho, verde e azul Red, Green e Blue (RGB) para fazer com que o loop criado a partir da estrutura while, possa colorir um painel gradativamente. Atravs da combinao das cores criaremos um efeito de transio de cores no painel e, ao mesmo tempo, veremos uma lista carregando os valores de tons azuis. Tambm poderemos acompanhar o fluxo do while pelos labels com o rtulo das respectivas cores e para ficar mais interessante o contador da cor azul estar no ttulo do formulrio. Os comentrios no cdigo explicam como foi criado o programa. Devemos aproveitar para alterar as caractersticas do programa e testar as muitas possibilidades.
149
Digitaremos o seguinte cdigo no boto duplo clique no boto onde ser inserido o cdigo.
// adiciona um item de "b" dentro da lista lsbNumeros.Items.Add(b); // this = ao prprio formulrio - mostra mensagem this.Text = " While - " + "Azul: " + b; // Mostra b no label lblAzul.Text = "Quantidade de Azul: // Atualiza o valor com Update(); lblAzul.Update(); // Mostra g no label lblVerde.Text = "Quantidade de Verde: // Atualiza o valor com Update(); lblVerde.Update(); // Mostra r no label lblVermelho.Text = "Quantidade de Vermelho: // Atualiza o valor com Update(); lblVermelho.Update(); // Colore o painel com as cores RGB pnlCor.BackColor = Color.FromArgb(r, g, b); // Atualiza a cor do painel com Update(); pnlCor.Update(); } } " + r; " + g; " + b;
150
O primeiro passo na criao do sistema, aps estudarmos os conceitos da linguagem C# e do ambiente do Visual Studio 2008, a criao do modelo de dados. Usaremos o mesmo modelo apresentado no Modelo de Entidade e Relacionamento. Utilizaremos o prprio Visual Studio 2008 para desenvolver esta etapa.
Primeiramente
abriremos
Visual
Studio
2008,
clicaremos
em
File/New/Project. Escolheremos Smart Device Project, daremos o nome de prjAplicacaoVenda, como a figura 117 a seguir:
Clicaremos em OK. Na prxima tela configure as propriedades como ilustra a figura 118, e confirmaremos no boto OK.
151
Precisaremos visualizar a janela do Solution Explorer, para isso iremos barra de menus e abriremos o de nome View e escolheremos a quarta opo, como ilustra a figura 119. Utilize o boto Auto Hide da janela para deix-la fixada.
Com o boto direito do mouse no nome da aplicao prjAplicacaoVenda, escolheremos a opo Add e a sub-opo New Item...Como na figura 120.
152
Uma nova janela ser aberta, nela selecionaremos a opo em Templates: Database File e daremos o nome de baseVendas.sdf, que um arquivo de dados, como mostra a figura 121.
Feito isso, a base de dados criada em branco, a figura 123 ilustra o arquivo j criado. Na prxima etapa, vamos criar as tabelas com os respectivos campos, seguindo o Modelo de Entidade e Relacionamento
153
Uma tela ser aberta para criarmos um dataset - figura 122, clicaremos em Cancel, o objetivo somente a criao do arquivo de dados.
Abaixo vemos a estrutura da aplicao com todos os arquivos e, em destaque, o arquivo de dados.
Base de dados
Com a base de dados criada, daremos um duplo clique em cima do cone que o representa, dessa maneira abriremos o painel do Server Explorer, outra forma acessar a barra de menus e abrir o de nome View e escolher a terceira opo.
154
No painel do Server Explorer clicaremos no cone do arquivo da base de dados baseVendas.sdf para deix-la ativa, caso o x vermelho no suma, devemos clicar com o boto direto e escolher a opo refresh.
Em seguida clicaremos com o boto direito em cima de Tables e escolheremos a opo Create Table, como ilustra a figura 126.
155
Uma janela ser aberta, como vemos na figura 127. Agora podemos criar as tabelas e os campos com as suas propriedades.
Como j sabemos criar as tabelas no Visual Studio 2008, vamos criar as tabelas: Cliente, Produto, Venda e item_Venda. A figura 128 mostra o modelo proposto.
156
A tabela Cliente ter os seguintes campos: cd_Cliente, nm_Cliente e cd_Telefone_Cliente. Na figura 129 podemos ver a estrutura dos campos. No campo cd_Cliente devemos configurar a opo Identity para True, assim o cdigo ser incrementado automaticamente.Tambm deve ser alterada a propriedade Primary Key para Yes do mesmo campo.
A tabela Produto ter os seguintes campos: cd_Produto, nm_Produto, qt_Produto e vl_Produto. Na figura 130 podemos ver a estrutura dos campos. No campo cd_Produto devemos configurar a opo Identity para True, assim o cdigo ser incrementado automaticamente. Tambm deve ser alterada a propriedade Primary Key para Yes do mesmo campo. 157
A tabela Cliente ter os seguintes campos: dt_Venda, cd_Venda, cd_Cliente e vl_Total. Na figura 131 podemos ver a estrutura dos campos. No campo Deve ser alterada a propriedade Primary Key para Yes do campo dt_Venda e cd_Venda.
158
tabela
Cliente
ter
os
seguintes
campos:
cd_Item,
cd_Produto,
qt_Produto_Vendido, dt_Venda, cd_Venda e cd_Cliente. Na figura 132 podemos ver a estrutura dos campos. No campo cd_Item devemos configurar a opo Identity para True, assim o cdigo ser incrementado automaticamente.Tambm deve ser alterada a propriedade Primary Key para Yes do mesmo campo.
159
Com as tabelas j criadas, vamos indicar o relacionamento, sempre respeitando o modelo existente. Para relacionar as tabelas devemos clicar com o boto direito do mouse em cima da tabela que receber a chave estrangeira e escolher a opo Table Properties, como na figura 133.
Na tela que se abrir, escolheremos a opo Add Relations, no campo Relation Name colocaremos o nome fkCliente, pois estamos na Tabela Venda e o campo cd_Cliente chave estrangeira nesta tabela. Depois devemos indicar os campos que tero relao em Primary Key Table Column e Foreign Key Table Column e, em seguida, clicar no boto Add Relation. A figura 134 ilustra as configuraes.
160
Se ocorrer tudo certo, a tela abaixo, figura 135, confirma a incluso da chave estrangeira.
Abaixo vemos na figura 136, em Manage Relations, o relacionamento adicionado e a sua descrio.
161
O mesmo procedimento da figura 133 deve ser feito, mas com a tabela Item_Venda. Na tela que se abrir, escolheremos a opo Add Relations, no campo Relation Name colocaremos o nome fkProduto, pois estamos na Tabela Item_Venda e o campo cd_Produto chave estrangeira nesta tabela. Depois devemos indicar os campos que tero relao em Primary Key Table Column e Foreign Key Table Column e, em seguida, clicar no boto Add Relation. A figura 137 ilustra as configuraes.
Se ocorrer tudo certo, a tela abaixo, figura 138, confirma a incluso da chave estrangeira.
162
Abaixo vemos na figura 139, em Manage Relations, o relacionamento adicionado e a sua descrio.
O mesmo procedimento da figura 133 deve ser feito, mas com a tabela Item_Venda. Na tela que se abrir, escolheremos a opo Add Relations, no campo Relation Name colocaremos o nome fkVenda, pois estamos na Tabela Item_Venda e os campos dt_Venda e cd_Venda fazem parte de uma chave estrangeira nesta tabela. Uma observao importante que neste caso especfico, temos mais de um campo compondo a chave estrangeira, isso conhecido como chave composta.
163
Depois devemos indicar os campos que tero relao em Primary Key Table Column e Foreign Key Table Column e, em seguida, clicar no boto Add Relation. A figura 140 ilustra as configuraes.
Se ocorrer tudo certo, a tela abaixo, figura 141, confirma a incluso da chave estrangeira.
Abaixo vemos na figura 142, em Manage Relations, o relacionamento adicionado e a sua descrio.
164
Antes de criarmos a tela de cliente, para facilitar o acesso aos dados, vamos copiar a base de dados para dentro do Emulador, para que isso seja possvel vamos configurar no emulador um carto de armazenamento virtual (storage card), que representa um carto de memria de dispositivos mveis. Podemos escolher qualquer pasta para criarmos esse espao de
armazenamento. Quando o projeto foi criado o Visual Studio 2008 o salvou em: D:\TCC\prjAplicacaoVenda, mas a base de dados fica dentro de uma subpasta com o mesmo nome do projeto: prjAplicacaoVenda. Devemos copiar o arquivo baseVendas.sdf e colar em outra pasta, por exemplo dentro de C:/Temp, como ilustra a figura 143.
165
Na tela do emulador escolheremos no Menu file e a opo Configure, como mostra a figura 144.
A figura 145 apresenta como deve ficar a configurao de pasta compartilhada (Shared folder), que ser dentro do emulador, o carto de memria virtual. Devemos apont-la para C:\Temp.
No menu iniciar do Windows Mobile do emulador acessaremos o File Explorer, depois Storage Card e finalmente veremos o arquivo baseVendas.sdf.
166
Ainda dentro do emulador e com o arquivo selecionado, acessaremos o Menu(do lado direito), Edit e depois Copy, como na figura 147, o arquivo agora est na rea de memria. Criaremos uma pasta em My Device com o nome AplicacaVenda e colaremos o arquivo baseVenda.sdf. O projeto tambm ser compilado no mesmo diretrio.
Como comentado, alteraremos o endereo de compilao da aplicao, dessa forma o executvel gerado e a base de dados estaro dentro do emulador. Com o boto direito no Solution Explorer, escolheremos a opo Properties. A figura 148 mostra a tela que se abrir; na aba Devices, deve ser alterada a pasta de sada. Devemos clicar no boto para abrir a tela de configurao.
167
Aps a abertura da tela devemos alterar o local de sada no Emulador (Device) para Root Folder (Pasta Raiz) e Subdiretrio para o endereo da pasta que foi criada, nesse caso, \AplicacaoVenda. A figura 149 ilustra essas alteraes.
Com o boto direito na aplicao prjAplicacaoVenda, no conhecido Solution Explorer, criaremos um novo formulrio e o nomearemos como frmCliente. Para inseri-lo simples, escolheremos Add e depois Windows Form, como na figura 150 e na figura 151 vemos a tela para nome-lo.
168
O seu layout deve ficar como na figura 152, logo abaixo. E devemos configurar as propriedades como no quadro 25.
Objeto frmCliente
169
Label1
lblNome 3; 4 Nome: txtNome 3; 24 234; 21: lblTelefone 3; 56 Telefone: txtTelefone 65; 55 172; 21 btnInserir 3; 94 74;24 HighlightText Inserir btnAtualizar 83; 94 72; 24 HighlightText
TextBox1
Label2
TextBox2
Button1
Button2
170
Text Button3 Name Location Size BackColor Text DataGrid1 Name Location Size Button4 Name Location Size BackColor Text TextBox3 Name Location Size Button4 Name Location Size BackColor Text
Atualizar btnApagar 161; 94 76; 24 HighlightText Apagar gridCliente 3; 124 234; 128 btnListar 178; 231 59; 21 HighlightText Listar txtBusca 3; 261 172; 21 btnBuscar 181; 261 56; 21 HighlightText Buscar
171
Para que possamos ter acesso aos dados necessitamos criar uma conexo, essa conexo se tornar publica dentro do cadastro de cliente. Tambm ser criado um Data Set pblico para armazenar os dados carregados atravs dos objetos de acesso como o Data Adapter e Command, que acessam a base de dados pelos comandos SQL enviados base. Abaixo da abertura de classe: public partial class frm : Form digitaremos os cdigos das linhas 16 e 17. Na linha 16 criada uma conexo e passado o endereo fsico da base de dados, lembrando que foi alterado para dentro do emulador, como ilustra a figura 153; e na linha 17 criado um Data Set pblico. Precisamos fazer uma referncia para utilizar o SQL CE e declarar os namespaces: System.Data.SqlServerCe e System.IO, linhas 9 e 10.
Para fazer a referncia ao namespace System.Data.SqlServerCe preciso seguir o seguinte procedimento: Boto direito na soluo que est no Solution Explorer e em Add Reference, na tela que se abrir figura 154, escolheremos o namespace System.Data.SqlServerCe e clicaremos em OK.
172
Digitaremos o seguinte cdigo no boto duplo clique no boto onde ser inserido o cdigo. 22.5.2. Cdigo do boto Inserir
173
Linha 58 abre a conexo; Linhas 59 e 60 passamos os valores dos campos da tela para os parmetros; Linha 61- executa o comando; Linha 62 mostra uma mensagem de confirmao; Linha 63 e 64 limpa os campos; Linha 67 caso ocorra erro gerada uma exceo e o fluxo do programa vai para essa linha. criada a varivel err do tipo Exception que guardar o erro ocorrido;
Linha 69 mostra a mensagem de erro; Linha 72 criado o bloco finally que ser executado mesmo que nada ocorra; Linha 74 fecha a conexo; Linha 76 direciona o foco para o campo nome, para podermos cadastrar um novo cliente.
Digitaremoso seguinte cdigo no boto duplo clique no boto onde ser inserido o cdigo.
174
Linha 82 criada uma varivel do tipo string com o comando SQL; Linha 83 criado um objeto de acesso / comando (Data Adapter) e passado os valores do SQL e da Conexo;
Linha 85 - o bloco try {} tenta executar tudo que estiver delimitado entre as chaves, nesse exemplo: da linha 87 at a 90; caso acorra erro vai para catch {} e executa a exceo;
Linha 87 limpa Data Set (Tabela em memria); Linha 88 abre a conexo; Linha 89- preenche o Data Set (mtodo Fill), com os valores do SQL (consulta), criando assim uma tabela em memria;
Linha 90 carrega os dados no grid, tendo como origem a tabela em memria do Data Set.
Linha 93 caso ocorra erro gerada uma exceo e o fluxo do programa vai para essa linha. criada a varivel err do tipo Exception que guardar o erro ocorrido;
Linha 95 mostra a mensagem de erro; Linha 98 criado o bloco finally que ser executado mesmo que nada ocorra; Linha 100 fecha a conexo.
Digitaremos o seguinte cdigo no boto duplo clique no boto onde ser inserido o cdigo.
175
176
Linha 118 e 119 (formam uma linha s) - passamos o valor do campo cd_Cliente da linha atual do grid na tabela Cliente que est em memria e convertemos para string, pois o que vem do grid um object. Toda essa linha convertida para inteiro, pois o campos cd_Cliente desse tipo na base de dados;
Linha 120 - executa o comando; Linha 121 mostra uma mensagem de confirmao; Linha 124 caso ocorra erro gerada uma exceo e o fluxo do programa vai para essa linha. criada a varivel err do tipo Exception que guardar o erro ocorrido;
Linha 126 mostra a mensagem de erro; Linha 129 criado o bloco finally que ser executado mesmo que nada ocorra;
Digitaremos o seguinte cdigo no boto clique no boto onde ser inserido o cdigo.
177
178
Digitaremos o seguinte cdigo no boto clique no boto onde ser inserido o cdigo.
179
Linha 190- preenche o Data Set (mtodo Fill), com os valores do SQL (consulta), criando assim uma tabela em memria;
Linha 191 carrega os dados no grid, tendo como origem a tabela em memria do Data Set.
Linha 194 caso ocorra erro gerada uma exceo e o fluxo do programa vai para essa linha. criada a varivel err do tipo Exception que guardar o erro ocorrido;
Linha 196 mostra a mensagem de erro; Linha 199 criado o bloco finally que ser executado mesmo que nada ocorra; Linha 201 fecha a conexo.
Daremos um duplo clique no gridCliente onde ser inserido o abaixo - figura 160. O cdigo abaixo utilizado para carregar os campos toda vez que clicarmos em qualquer linha da Grade de Cliente (gridCliente).
180
Com o boto direito na aplicao prjAplicacaoVenda, no conhecido Solution Explorer, criaremos um novo formulrio e o nomearemos como frmProduto. Para inseri-lo simples, escolheremos Add e depois Windows Form, como na figura 161 e na figura 162 vemos a tela para nome-lo.
O seu layout deve ficar como na figura 163, logo abaixo. E devemos configurar as propriedades como no quadro 26.
181
Objeto frmCliente
Valor frmProduto False Cadastro de Produtos Control lblProduto 3; 2 Produto: txtProduto 3; 19 234; 21: lblValor 82; 49 Valor:
Label1
TextBox1
Label2
182
TextBox2
txtTValor 137; 47 100; 21 btnInserirProduto 3; 94 74;24 HighlightText Inserir btnAtualizar 83; 94 72; 24 HighlightText Atualizar btnApagar 161; 94 76; 24 HighlightText Apagar gridProduto 3; 124 234; 128
Button1
Button2
Button3
DataGrid1
183
Button4
btnListar 176; 229 59; 21 HighlightText Listar txtBusca 3; 261 172; 21 txtBuscaProduto 3; 266 173; 21 HighlightText Buscar
TextBox3
Button4
22.6.1. Conexo e Data Set Pblico Na linha 16 criada uma conexo e passado o endereo fsico da base de dados, lembrando que foi alterado para dentro do emulador, como ilustra a figura 164; e na linha 17 criado um Data Set pblico. Tambm precisamos fazer uma referncia para utilizar o SQL CE e declarar os namespaces:
184
Digitaremos o seguinte cdigo no boto duplo clique no boto onde ser inserido o cdigo. 22.6.2. Cdigo do boto Inserir
185
Linhas 34 e 35 passamos os valores dos campos da tela para os parmetros; Linha 36- executa o comando; Linha 37 mostra uma mensagem de confirmao; Linha 38 e 39 limpa os campos; Linha 42 caso ocorra erro gerada uma exceo e o fluxo do programa vai para essa linha. criada a varivel err do tipo Exception que guardar o erro ocorrido;
Linha 44 mostra a mensagem de erro; Linha 47 criado o bloco finally que ser executado mesmo que nada ocorra; Linha 49 fecha a conexo; Linha 51 direciona o foco para o campo nome, para podermos cadastrar um novo cliente.
Digitaremos o seguinte cdigo no boto duplo clique no boto onde ser inserido o cdigo.
186
Linha 56 criada uma varivel do tipo string com o comando SQL; Linha 57 criado um objeto de acesso / comando (Data Adapter) e passado os valores do SQL e da Conexo;
Linha 59 - o bloco try {} tenta executar tudo que estiver delimitado entre as chaves, nesse exemplo: da linha 61 at a 64; caso acorra erro vai para catch {} e executa a exceo;
Linha 61 limpa Data Set (Tabela em memria); Linha 62 abre a conexo; Linha 63- preenche o Data Set (mtodo Fill), com os valores do SQL (consulta), criando assim uma tabela em memria;
Linha 64 carrega os dados no grid, tendo como origem a tabela em memria do Data Set.
Linha 67 caso ocorra erro gerada uma exceo e o fluxo do programa vai para essa linha. criada a varivel err do tipo Exception que guardar o erro ocorrido;
Linha 69 mostra a mensagem de erro; Linha 72 criado o bloco finally que ser executado mesmo que nada ocorra; Linha 74 fecha a conexo.
Digitaremos o seguinte cdigo no boto duplo clique no boto onde ser inserido o cdigo.
187
Linha 80 verifica se existe alguma linha na Grade de Produtos (gridProduto); Linha 82 - caso o resultado da linha 106 seja verdadeira mostra uma mensagem; Linha 83 sai do fluxo com o comando return; Linha 85 criada uma varivel do tipo string com o comando SQL, o sinal de interrogao (?) o parmetro que representa cada campo dentro do comando;
Linhas 87 - adicionado o parmetro do campo cliente; Linha 89 - o bloco try {} tenta executar tudo que estiver delimitado entre as chaves, nesse exemplo: da linha 91 at a 95; caso acorra erro vai para catch {} e executa a exceo;
188
Linha 92 e 93 (formam uma linha s) - passamos o valor do campo cd_Produto da linha atual do grid na tabela Produto que est em memria e convertemos para string, pois o que vem do grid um object. Toda essa linha convertida para inteiro, pois o campos cd_Produto desse tipo na base de dados;
Linha 94 - executa o comando; Linha 95 mostra uma mensagem de confirmao; Linha 98 caso ocorra erro gerada uma exceo e o fluxo do programa vai para essa linha. criada a varivel err do tipo Exception que guardar o erro ocorrido;
Linha 100 mostra a mensagem de erro; Linha 103 criado o bloco finally que ser executado mesmo que nada ocorra;
Digitaremos o seguinte cdigo no boto clique no boto onde ser inserido o cdigo.
189
190
Daremos um duplo clique no gridProduto onde ser inserido o abaixo - figura 169. O cdigo abaixo utilizado para carregar os campos toda vez que clicarmos em qualquer linha da Grade de Produto (gridProduto).
Digitaremos o seguinte cdigo no boto clique no boto onde ser inserido o cdigo.
191
Linha 153 criada uma varivel do tipo string com o comando SQL, a clusula like dentro do comando, combinada com o caractere coringa % (o que preceder ou suceder o texto digitado), busca toda ocorrncia no campo de busca;
Linha 156 - criado um objeto de acesso / comando (Data Adapter) e passado os valores do SQL e da Conexo;
Linha 158 - o bloco try {} tenta executar tudo que estiver delimitado entre as chaves, nesse da linha 160 at a 163; caso acorra erro vai para catch {} e executa a exceo;
Linha 160 limpa Data Set (Tabela em memria); Linha 161 abre a conexo; Linha 162- preenche o Data Set (mtodo Fill), com os valores do SQL (consulta), criando assim uma tabela em memria;
Linha 163 carrega os dados no grid, tendo como origem a tabela em memria do Data Set.
Linha 165 caso ocorra erro gerada uma exceo e o fluxo do programa vai para essa linha. criada a varivel err do tipo Exception que guardar o erro ocorrido;
Linha 167 mostra a mensagem de erro; Linha 170 criado o bloco finally que ser executado mesmo que nada ocorra; Linha 172 fecha a conexo.
192
Com o boto direito na aplicao prjAplicacaoVenda, no conhecido Solution Explorer, criaremos um novo formulrio e o nomearemos como frmVenda. Para inseri-lo simples, escolheremos Add e depois Windows Form, como na figura 171 e na figura 172 vemos a tela para nome-lo.
O seu layout deve ficar como na figura 173, logo abaixo. E devemos configurar as propriedades como no quadro 27.
193
Objeto frmCliente
Valor frmVenda False Tela de Venda Control lblCliente 3; 5 Cliente: cbbCliente 3; 23 234; 22 lblProduto 3; 48 Produto:
Label1
ComboBox1
Label2
194
ComboBox2
cbbProduto 3; 66 234; 22 lblQuantidade 39; 98 Quantidade: nudQuantidade 137; 96 100; 22 1 btnListar 3; 130 68; 20 HighlightText Listar btnInserirItem 137; 130 100; 20 HighlightText Inserir Item gridItem 3; 163 234; 128
Label1
NumericUpDown
Button1
Button2
DataGrid1
195
Digitaremos o seguinte cdigo no boto um duplo clique no boto onde ser inserido o cdigo.
Linha 90 criada uma varivel do tipo string com o comando SQL, o sinal de interrogao (?) o parmetro que representa cada campo dentro do comando;
Linhas 94,95 e 96 So adicionados os parmetros e seus respectivos campos; Linha 97 - o bloco try {} tenta executar tudo que estiver delimitado entre as chaves, nesse exemplo: da linha 99 at a 105; caso acorra erro vai para catch {} e executa a exceo;
196
Linhas 100, 101 e 102 passamos os valores dos campos da tela para os parmetros. Os valores do combobox so obtidos atravs da propriedade SelectedValue e convertidos para string;
Linha 104 executa o comando; Linha 105 mostra uma mensagem de confirmao; Linha 107 caso ocorra erro gerada uma exceo e o fluxo do programa vai para essa linha. criada a varivel err do tipo Exception que guardar o erro ocorrido;
Linha 109 mostra a mensagem de erro; Linha 112 criado o bloco finally que ser executado mesmo que nada ocorra; Linha 114 fecha a conexo;
Digitaremos o seguinte cdigo no boto duplo clique no boto onde ser inserido o cdigo.
197
Linha 121 criado um Data Set; Linha 122 - criada uma varivel do tipo string com o comando SQL; Linha 129 - criado um objeto de acesso / comando (Data Adapter) e passado os valores do SQL e da Conexo;
Linha 131 - o bloco try {} tenta executar tudo que estiver delimitado entre as chaves, nesse exemplo:da linha 133 at a 136; caso acorra erro vai para catch {} e executa a exceo;
Linha 133 limpa Data Set (Tabela em memria); Linha 134 abre a conexo;
Linha 135- preenche o Data Set (mtodo Fill), com os valores do SQL (consulta), criando assim uma tabela em memria;
Linha 136 carrega os dados no grid, tendo como origem a tabela em memria do Data Set.
Linha 138 caso ocorra erro gerada uma exceo e o fluxo do programa vai para essa linha. criada a varivel err do tipo Exception que guardar o erro ocorrido;
Linha 140 mostra a mensagem de erro; Linha 143 criado o bloco finally que ser executado mesmo que nada ocorra; Linha 145 fecha a conexo.
198
Criaremos dois procedimentos, um para preencher os combobox de cliente e o outro, o de produto; faremos uma seleo dos dados nas respectivas tabelas e passaremos para as propriedades DisplayMember e ValueMember. Assim o combobox mostrar o nome e tambm armazenar o cdigo que foi usado como parmetro no boto incluir item.
199
Linha 26 - criada uma varivel do tipo string com o comando SQL; Linha 28 criado um objeto de comando que recebe o valor da varivel com o comando SQL;
Linha 30 - criado um objeto de acesso / comando (Data Adapter) e passado o valor do Comando da linha 28;
Linha 32 - criado um Data Set; Linha 34 - o bloco try {} tenta executar tudo que estiver delimitado entre as chaves, nesse exemplo da linha 36 at a 41; caso acorra erro vai para catch {} e executa a exceo;
Linha 36 abre a conexo; Linha 37 preenche o Data Set (mtodo Fill), com os valores do SQL(consulta), criando assim uma tabela em memria;
Linha 39 Atribui ao combobox o Data Source a tabela em memria do Data Set; Linha 40 passado o valor do campo nm_Cliente ao DisplayMember; Linha 41 - passado o valor do campo cd_Cliente ao ValueMember; Linha 43 caso ocorra erro gerada uma exceo e o fluxo do programa vai para essa linha. criada a varivel err do tipo Exception que guardar o erro ocorrido;
Linha 45 mostra a mensagem de erro; Linha 47 criado o bloco finally que ser executado mesmo que nada ocorra; Linha 50 fecha a conexo.
200
Linha 68 abre a conexo; Linha 69- preenche o Data Set (mtodo Fill), com os valores do SQL(consulta), criando assim uma tabela em memria;
201
Linha 72 passado o valor do campo nm_Produto ao DisplayMember; Linha 73 passado o valor do campo cd_Produto ao ValueMember; Linha 75 caso ocorra erro gerada uma exceo e o fluxo do programa vai para essa linha. criada a varivel err do tipo Exception que guardar o erro ocorrido;
Linha 77 mostra a mensagem de erro; Linha 79 criado o bloco finally que ser executado mesmo que nada ocorra; Linha 82 fecha a conexo.
Devemos criar a linha que efetua a conexo com o banco de dados na tela de Venda, ento abaixo da abertura de classe: public partial class frm : Form digitaremos uma linha como na figura 178, na linha 16. Na linha 16 criada uma conexo e passado o endereo fsico da base de dados, lembrando que foi alterado para dentro do emulador.
202
A tela principal tem por funo fazer a chamada das outras telas do projeto. Com o boto direito na aplicao prjAplicacaoVenda, no conhecido Solution Explorer, criaremos um novo formulrio e o nomearemos como frmPrincipal. Para inseri-lo simples, escolheremos Add e depois Windows Form, como na figura 179 e na figura 180 vemos a tela para nome-lo.
O seu layout deve ficar como na figura 181, logo abaixo. E devemos configurar as propriedades como no quadro 28 203
Objeto frmCliente
Valor frmVenda False Aplicao de Vendas Control btnCliente 32; 23 184; 64 HighlightText Tela de Clientes Tahoma; 12pt; style=Bold
Button1
204
Button2
btnProdutos 32; 102 184; 64 HighlightText Tela de Produtos Tahoma; 12pt; style=Bold btnVenda 32; 182 184; 64 HighlightText Tela de Vendas Tahoma; 12pt; style=Bold
Button3
Boto Clientes
private void button1_Click(object sender, EventArgs e) { // Cria uma instncia do Formulrio frmCliente abreForm = new frmCliente(); // Abre o Formulrio abreForm.Show(); }
205
Boto Venda
private void button1_Click(object sender, EventArgs e) { // Cria uma instncia do Formulrio frmVenda abreForm = new frmVenda(); // Abre o Formulrio abreForm.Show(); }
Boto Produto
private void button1_Click(object sender, EventArgs e) { // Cria uma instncia do Formulrio frmProduto abreForm = new frmProduto (); // Abre o Formulrio abreForm.Show(); }
Com isso finalizamos os exemplos de banco de dados, sintaxe da linguagem e o estudo do modelo apresentado. Foram apresentadas trs telas utilizando os principais comandos SQL, tais como: insero, atualizao, seleo e deleo. Os principais conceitos do trabalho foram abordados no decorrer desse pequeno projeto, demonstrado na prtica a criao de tabelas e criao de relacionamento utilizando o prprio Visual Studio 2008 como ferramenta eficaz e produtiva. interessante reiterar que o que foi visto representa apenas uma parcela do que esse poderoso ambiente integrado pode proporcionar.
206
23. CONCLUSO
Este trabalho demonstrou os conceitos necessrios para a criao de um sistema baseado na linguagem de programao C#, dentro do ambiente de Desenvolvimento do Visual Studio 2008, para rodar em dispositivos mveis. importante frisar que foram utilizadas tecnologias atuais de modo que este trabalho representa uma pesquisa dentro do domnio de programao e seus conceitos primordiais. O trabalho teve como principal objetivo compartilhar o objeto de estudo e investigao e suas tcnicas de aplicao, bem como, mostrar algumas consideraes acerca de dispositivos mveis e como desenvolver solues para rodar em seu ambiente. Tambm foi possvel exercitar e aplicar o conhecimento obtido no curso de formao superior; de fato que essa experincia instiga, de forma lgica, a
utilizao e coeso das disciplinas estudadas durante o perodo como educando. Foi necessrio um trabalho exaustivo de pesquisa e aprofundamento terico, mas teve grande valia no resultado final. Dentro do concebido, o trabalho atendeu s expectativas iniciais, foram abordados os aspectos essncias em sua composio e existiu a preocupao em respeitar o tema proposto. O seu contedo no abordou a questo de conectividade e transmisso de dados, tambm no foi demonstrada a usabilidade do sistema Windows Mobile no sentido de usurio, como acesso a internet e utilizao dos seus recursos. Ma a relevncia do tema oportuna e o crescimento do setor evidente. Independente de atuar na rea de dispositivos mveis, o mercado para desenvolvedores na linguagem de programao C# extremamente aquecido e 207
esse trabalho foca no somente aplicaes mveis. Os conceitos da linguagem tambm atendem s aplicaes conhecidas como Win32 ou formalmente Desktop, alm da sua utilizao em ambiente de internet (aplicaes Web) dentro das pginas ASP.NET.
Dentro dos conceitos abordados no trabalho, pode ser estudada a transmisso dos dados por Servios WEB (Web Service), sincronismo com o servidor atravs de redes sem fio ou conectar ao servidor ao final de cada dia. Ainda como referncia o presente trabalho podem ser criadas novas funcionalidades e a criao de uma interface mais amigvel e intuitiva. Estudar formas de utilizar o mesmo aplicativo dentro de diversos tipos de aparelho sem alterar as configuraes, pois como visto, Smartphones so diferentes de Pocket PC Phones. Existem inmeras possibilidades no ambiente mvel, desde a sua utilizao em espao fechado como o caso do Po de Acar com a Loja do Futuro ou at mesmo como o caso da Indiana que apenas limitada por uma conexo com a internet. No existem limites para a imaginao, o importante que se coloquem em prtica os conhecimentos obtidos e se crie novas aplicaes e funcionalidades s existentes.
208
REFERNCIAS BIBLIOGRFICAS
Battisti, J. SQL SERVER 2005 Administrao e Desenvolvimento. Rio de Janeiro: Axcel, 2005.
Ferguson, J; Patterson, B; Beres, J; Boutquin, P; Gupta. M. C# Bible. Indiana: Wiley Publishing, 2002.
Freire, Paulo. Pedagogia do Oprimido, 17 ed. Rio de Janeiro: Paz e Terra, 1987.
Galuppo, F; Santos, Wallace; Matheus, V. Desenvolvendo com C#. So Paulo: Bookman, 2003. Liberty, J. Programming C#. San Francisco: OReilly, 2001.
Moroni, H. Banco de Dados com C# e Visual Studio .NET 2005. So Paulo: Julio Battisti, 2005.
Sharp, J. Microsoft Visual C# 2008 Step by Step. Redmond: Microsoft Press, 2007.
50 Minutos. [S.l.: s.n.], 2008. Disponvel em: < http://www.50minutos.com.br/>. Acesso em: 21 set. 2008.
Arquivos de Cdigo. [S.l.: s.n.], 2008. Disponvel em: < http://www.arquivodecodigos.net>. Acesso em: 15 ago. 2008.
Club Pocket PC [S.l.: s.n.], 2008. Disponvel em: < http://www.clubepocketpc.com.br/>. Acesso em: 17 ago. 2008.
Cdigo Fonte. [S.l.: s.n.], 2008. Disponvel em: < http://www.codigofonte.com.br/>. Acesso em: 18 set. 2008. 209
C# Masters[S.l.: s.n.], 2008. Disponvel em: < http://csharpmasters.blogspot.com/>. Acesso em: 12 abr. 2008.
C# On Line .NET. [S.l.: s.n.], 2008. Disponvel em: < http://en.csharp-online.net/>. Acesso em: 22 out. 2008.
C# Station. [S.l.: s.n.], 2008. Disponvel em: < http://www.csharp-station.com/>. Acesso em: 11 ago. 2008.
C Sharp Simple. [S.l.: s.n.], 2008. Disponvel em: < http://csharpsimples.blogspot.com/>. Acesso em: 10 out. 2008. DErrico, Reinaldo. Case: BI disponvel no Smartphone. Santa Catarina: mar. 2007. Disponvel em: <www.ciobrasil.com.br/2007/cases/Case_Indiana%20Seguros.pdf>. Acesso em: Acesso em: 21 set. 2008.
Daemon Tools [S.l.: s.n.], 2008. Disponvel em: <http://www.daemon-tools.cc>. Acesso em: Acesso em: 21 set. 2008
Dev Center Windows Mobile. [S.l.: s.n.], 2008. Disponvel em: < http://www.microsoft.com/brasil/msdn/windowsmobile/articles.mspx>. Acesso em: 15 jun. 2008.
DevMedia[S.l.: s.n.], 2008. Disponvel em: < http://www.devmedia.com.br/portal/default.asp >. Acesso em: 06 ago. 2008.
Diferenas entre verses: [S.l.]: [s.n.], 2008. Disponvel em: <http://www.microsoft.com/brasil/windowsmobile/help/OSversions.mspx>. Acesso em: 25 jun. 2008.
Imasters [S.l.: s.n.], 2008. Disponvel em: < http://imasters.uol.com.br/>. Acesso em: 21 out. 2008.
Java 2s. [S.l.: s.n.], 2008. Disponvel em: < http://www.java2s.com >. Acesso em: 09 de jul. 2008.
MSDN : Microsoft Developer Network. [S.l.: s.n.], 2008. Disponvel em: <http://msdn.microsoft.com/pt-br/default.aspx>. Acesso em: 20 jun. 2008.
Oficina da Net [S.l.: s.n.], 2008. Disponvel em: < http://www.oficinadanet.com.br/>. Acesso em: 16 set. 2008.
PC de Bolso. [S.l.: s.n.], 2008. Disponvel em: < http://www.pcdebolso.com/>. Acesso em: 12 set. 2008.
Primeworks. [S.l.: s.n.], 2008. Disponvel em: < http://www.primeworks-mobile.com/>. Acesso em: 15 out. 2008.
Wikipdia: a enciclopdia livre [S.l.: s.n.], 2008. Disponvel em: <http://pt.wikipedia.org/wiki/P%C3%A1gina_principal > .Acesso em: 20 jun. 2008.
WinCE Br@sil[S.l.: s.n.], 2008. Disponvel em: <http://www.clubepocketpc.com.br>. Acesso em: 23 set. 2008.
Windows Mobile: [S.l.: s.n.], 2008. Disponvel em: < http://www.microsoft.com/windowsmobile/6-1/default.mspx>. Acesso em: 15 ago. 2008.
Zollie. Loja do Futuro. [S.l.: s.n.], 2008. Disponvel em: <www.zollie.com.br/Cases/tabit/65/Default.aspx>. Acesso em: 04 set. 2008.
211
DROP TABLE Utilizado para apagar uma tabela, abaixo vemos um exemplo.
DROP TABLE CLIENTE;
ALTER TABLE CLIENTE ADD COLUMN Utilizado para alterar uma tabela, abaixo vemos um exemplo adicionando uma coluna nova (campo).
ALTER TABLE CLIENTE ADD COLUMN (cd_Telefone_Cliente VARCHAR(10) NOT NULL);
ALTER TABLE CLIENTE MODIFY COLUMN Utilizado para alterar uma coluna, abaixo vemos um exemplo adicionando uma coluna nova (campo).
ALTER TABLE CLIENTE MODIFY COLUMN (cd_Telefone_Cliente VARCHAR(15) NOT NULL);
212
TRUNCATE Utilizado para zerar(deixar vazia) uma tabela, abaixo vemos um exemplo
TRUNCATE TABLE CLIENTE;
213