Você está na página 1de 214

Reinaldo Mancuso Junior

Desenvolvimento para dispositivos mveis com Visual Studio 2008 - Windows Mobile 6 - C Sharp

So Vicente 2008 Reinaldo Mancuso Junior


0

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

Orientador: Adriano S. Miranda

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.

1. Dispositivos Mveis. 2. Windows Mobile. 3. Visual Studio 2008. 4. Programao. 5. C Sharp.

Desenvolvimento para dispositivos mveis com Visual Studio 2008 - Windows Mobile 6 - C Sharp

Nota Final do TCC: ________________________

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

Dedico esse trabalho primeiramente a Deus, aos meus familiares, amigos,

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

1. MOBILIDADE COM WINDOWS MOBILE ............................................................. 26


1.1. CUSTO / BENEFCIO ................................................................................................... 27 1.2. DIFERENAS ENTRE DISPOSITIVOS ............................................................................... 29

2. CRIAO DO MODELO LGICO ........................................................................ 30


2.1. ESTUDO DE VIABILIDADE ............................................................................................. 31 2.2. DIAGRAMA DE FLUXO DE DADOS - NVEL 0.................................................................... 32 2.3. DIAGRAMA DE FLUXO DE DADOS - NVEL 1.................................................................... 33 2.4. MODELO DE ENTIDADE E RELACIONAMENTO (MER) ........................................................ 34 2.4.1. Nota Elucidativa: Chaves Primrias e Estrangeiras ............................................................ 34 2.5. DICIONRIO DE DADOS ................................................................................................ 35 2.5.1. Entidade Cliente .................................................................................................................. 35 2.5.2. Entidade Produto ................................................................................................................ 35 2.5.3. Entidade Venda .................................................................................................................. 35 2.5.4. Entidade Item_Venda ......................................................................................................... 35

3. DOWNLOAD DO VISUAL STUDIO 2008 .............................................................. 36

4. INSTALAO DO VIRTUAL TOOL DAEMON ...................................................... 42


4.1. MONTAR DVD VIRTUAL DO VISUAL STUDIO .................................................................. 46

5. INSTALAO DO VISUAL STUDIO 2008 ............................................................ 48


5.1. REQUISITOS DE INSTALAO ....................................................................................... 48 5.2. INSTALAO ............................................................................................................... 49 5.3. ESCOLHENDO A LINGUAGEM PADRO........................................................................... 52

6. PRIMEIROS CONTATOS ..................................................................................... 54


6.1. START PAGE ............................................................................................................... 54 6.1.1. Recent Projects ................................................................................................................... 54 6.1.2. MSDN Visual C# Headlines ................................................................................................. 54 6.1.3. Getting Started ................................................................................................................... 55 6.1.4. Visual Studio Headline ........................................................................................................ 55 6.2. FACILITANDO O ACESSO AO VISUAL STUDIO .................................................................. 55 6.3. VISO GERAL DO VISUAL STUDIO 2008 ........................................................................ 56 6.3.1. Barra de Menus .................................................................................................................. 57 6.3.2. Barra Standard ................................................................................................................... 57 6.3.3. Barra device ........................................................................................................................ 57 6.3.4. Barra de Layout .................................................................................................................. 57 6.3.5. Solution Explorer................................................................................................................. 58 6.3.6. Toolbox ............................................................................................................................... 58 6.3.7. Properties ........................................................................................................................... 58 6.3.8. rea de Design .................................................................................................................... 58 6.3.9. Auto Hide ............................................................................................................................ 58

7. PRIMEIRO PROJETO ........................................................................................... 59


7.1. INTELLISENSE ............................................................................................................. 65 7.2. NAMESPACES ............................................................................................................. 66 7.3. CDIGO COMPLETO DA PRIMEIRA APLICAO .............................................................. 66

8. CAIXAS DE DILOGO .......................................................................................... 73


8.1. ENTENDENDO CADA PARTE DA MENSAGEM: .................................................................. 75 8.2. ENUMERAO MESSAGEBOXBUTTON .......................................................................... 75 8.2.1. Lista de Argumentos MessageBoxButton........................................................................... 76 8.3. ENUMERAO - MESSAGEBOXICON: ............................................................................ 77 8.3.1. Lista de cones de MessageBoxIcon ................................................................................... 77 8.4.ENUMERAO MESSAGEBOXDEFAULTBUTTON ........................................................... 78

9. INSTALAO DO WINDOWS MOBILE 6 PROFESSIONAL ................................ 79

10. COMPACT FRAMEWORK E .NET FRAMEWORK ............................................. 84 8

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

11. MODELO DE ACESSO A DADOS ...................................................................... 92


11.1. MODELO CONECTADO ............................................................................................... 92 11.1.1Caractersticas: ................................................................................................................... 92 11.1.2. Como funciona o modelo conectado: ............................................................................... 92 11.2. MODELO DESCONECTADO ......................................................................................... 93 11.2.1. Caractersticas: ................................................................................................................. 93 11.2.2. Como funciona o modelo desconectado: ......................................................................... 93

12. PALAVRAS RESERVADAS DO C# .................................................................... 94

13. VARIVEIS ......................................................................................................... 96


13.1. ALGUMAS REGRAS PARA DECLARAO DE VARIVEIS .................................................. 96 13.2. DECLARAO E DEFINIO DE VARIVEIS................................................................... 97 13.3. CONSTANTES ............................................................................................................ 97

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

15. OPERADORES ................................................................................................. 108


15.2. EXEMPLO PRTICO DA UTILIZAO DE OPERADORES ................................................. 109 15.2.1. Cdigo do boto: ............................................................................................................ 111

16. COMENTRIOS ................................................................................................ 113


16.1. EXEMPLO DE COMENTRIO EM UMA NICA LINHA: ..................................................... 113 16.2. EXEMPLO DE COMENTRIO COM MLTIPLAS LINHAS: ................................................. 113

17. VETORES ......................................................................................................... 114


17.1. EXEMPLO PRTICO DA UTILIZAO DE VETORES ........................................................ 116 17.1.1. Cdigo do boto: ............................................................................................................ 118

18. ENUMERADORES ............................................................................................ 119


18.1. EXEMPLO PRTICO DA UTILIZAO DE ENUMERADORES ............................................. 121 18.1.1. Cdigo do boto ............................................................................................................. 123

19. OPERADORES LGICOS E DE COMPARAO ............................................ 124

20. ESTRUTURAS CONDICIONAIS ....................................................................... 125


20.1.IF, IF... ELSE, IF... ELSE IF .................................................................................... 125 20.1.1. IF ..................................................................................................................................... 125 20.1.2. IF... ELSE .......................................................................................................................... 126

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. ESTRUTURAS DE REPETIO ...................................................................... 138


21.1. FOR ....................................................................................................................... 138 21.1.1. Insert Code Snippet ......................................................................................................... 140 21.1.2. Exemplo prtico da utilizao do comando for .............................................................. 141
21.1.2.1 Cdigo do boto Executar ....................................................................................................... 144 21.1.2.2 Cdigo do boto Limpar .......................................................................................................... 145

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

22. CRIAO DO PROJETO .................................................................................. 151


22.1. CRIAO DA BASE DE DADOS ................................................................................ 151 22.2. CRIAAO DAS TABELAS ......................................................................................... 156 22.2.1. Tabela Cliente ................................................................................................................. 157 22.2.2. Tabela Produto ............................................................................................................... 157 22.2.3. Tabela Venda .................................................................................................................. 158 22.2.4. Tabela Item_Venda ........................................................................................................ 159 22.3. RELACIONAMENTO ENTRE AS TABELAS ..................................................................... 160 22.3.1. Relacionamento Cliente - Venda .................................................................................... 160 22.3.2. Relacionamento Produto Item_Venda ........................................................................ 162 22.3.3. Relacionamento Venda Item_Venda ........................................................................... 163 22.4. CONFIGURAES DE COMPILAO ........................................................................... 165 22.4.1. Alterando o endereo de compilao ............................................................................. 167 22.5. TELA DE CADASTRO DE CLIENTE .............................................................................. 168 22.5.1. Definindo o objeto de Conexo e Data Set ..................................................................... 172 22.5.2. Cdigo do boto Inserir .................................................................................................. 173
22.5.2.1 - Explicao do cdigo do boto inserir .................................................................................. 173

11

22.5.3. Cdigo do boto Listar.................................................................................................... 174


22.5.3.1 - Explicao do cdigo do boto Listar .................................................................................... 175

22.5.4. Cdigo do boto Apagar................................................................................................. 176


22.5.4.1 - Explicao do cdigo do boto Apagar ................................................................................. 176

22.5.5. Cdigo do boto Atualizar .............................................................................................. 177


22.5.5.1 - Explicao do cdigo do boto Atualizar .............................................................................. 178

22.5.6. Cdigo do boto Buscar.................................................................................................. 179


22.5.6.1 - Explicao do cdigo do boto Buscar .................................................................................. 179

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.3. Cdigo do boto Listar.................................................................................................... 186


22.6.3.1 - Explicao do cdigo do boto Listar .................................................................................... 187

22.6.4. Cdigo do boto Apagar................................................................................................. 188


22.6.4.1 - Explicao do cdigo do boto Apagar ................................................................................. 188

22.6.5. Cdigo do boto Atualizar .............................................................................................. 189


22.6.5.1 - Explicao do cdigo do boto Atualizar .............................................................................. 190

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.7.2. Cdigo do boto Listar.................................................................................................... 197


22.7.2.1 - Explicao do cdigo do boto Listar .................................................................................... 198

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.2. Cdigo do Procedimento do ComboBox de Produto ...................................................... 201


22.8.2.1. - Explicao do cdigo do Procedimento do ComboBox de Produto ..................................... 201

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

23. CONCLUSO.................................................................................................... 207 12

23.1. ESTUDOS FUTUROS .............................................................................................. 208

REFERNCIAS BIBLIOGRFICAS ........................................................................ 209

APNDICE A - PRINCIPAIS COMANDOS - SQL- ANSI ........................................ 212

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.

Palavras chaves: Dispositivos Mveis, Windows Mobile, Programao, C Sharp.

Visual Studio 2008,

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

1. MOBILIDADE COM WINDOWS MOBILE

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.

Comunidade de Mobilidade WinCE Br@sil, em: http://www.clubepocketpc.com.br

26

1.1. CUSTO / BENEFCIO

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

BI no Smartphone, em: www.ciobrasil.com.br/2007/downloads/cases/Case_Indiana%20Seguros.pdf Loja do Futuro, em: www.zollie.com.br/Cases/tabid/65/Default. aspx

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

Figura 1 - Sistema da Indiana em Smartphone

As fotos da figura 2 ilustram o ambiente da Loja do Futuro do Grupo Po de Acar.

Figura 2 - Fotos da Loja do Futuro do Grupo Po de Acar

28

1.2. DIFERENAS ENTRE DISPOSITIVOS

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.

Diferenas entre verses: http://www.microsoft.com/brasil/windowsmobile/help/OSversions.mspx

29

2. CRIAO DO MODELO LGICO

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

2.1. ESTUDO DE VIABILIDADE

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

2.2. DIAGRAMA DE FLUXO DE DADOS - NVEL 0

Cadastra Venda

Dados Venda

Resposta

VENDEDOR
Cadastra Cliente Resposta

Mobile System

Dados Cadastrados

D2 - VENDAS

D1 - CLIENTES

Figura 3 - Diagrama de Fluxo de Dados - Nvel 0

Dados Cadastrados

Dados Cliente

32

2.3. DIAGRAMA DE FLUXO DE DADOS - NVEL 1

D1 - CLIENTE

Dados Cadastrados Dados 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

Dados Cadastro D3 - PRODUTO D2 - VENDA Cadastra Venda

Figura 4 - Diagrama de Fluxo de Dados - Nvel 1

33

2.4. MODELO DE ENTIDADE E RELACIONAMENTO (MER)

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.

Figura 5 - Modelo de Dados - Lgico

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

2.5. DICIONRIO DE DADOS

2.5.1. Entidade Cliente

Figura 6 - Dicionrio de Dados - Entidade Cliente

2.5.2. Entidade Produto

Figura 7 - Dicionrio de Dados - Entidade Produto

2.5.3. Entidade Venda

Figura 8 - - Dicionrio de Dados - Entidade Venda

2.5.4. Entidade Item_Venda

Figura 9 - Dicionrio de Dados - Entidade Item_Venda

35

3. DOWNLOAD DO VISUAL STUDIO 2008

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

Figura 10 - Pgina na Internet dos Desenvolvedores de Tecnologia 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.

Figura 11 - Pgina com detalhes sobre o Visual Studio 2008

Na terceira pgina escolheremos o link Try Visual Studio Trial Software.

Figura 12 - Pgina com mais detalhes sobre o Visual Studio

37

Na quarta pgina, atravs do boto Download it now, ocorrer o direcionamento prxima pgina do download.

Figura 13 - Direcionamento para escolha do Idioma

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.

Figura 14 - Pgina para escolha do Idioma

38

Na ltima pgina so apresentados nove idiomas para download, optaremos pelo idioma Ingls.

Figura 15 - Pgina para realizao efetiva do download

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.

Figura 16 - Confirmao de 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.

Figura 17 - Tela para escolha do destino da imagem ISO

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.

Figura 18 - Tela do Gerenciador de Download da Microsoft

40

Monitoramento do download do Visual Studio 2008.

Figura 19 - Tela de monitoramento de download

Aps acabar o download, no local escolhido para armazenar o arquivo ISO, veremos um arquivo como a imagem abaixo

Figura 20 - Arquivo ISO, aps download

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

4. INSTALAO DO VIRTUAL TOOL DAEMON

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

site do fabricante na rea de downloads.

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.

Figura 21 - Alerta de segurana do Windows

Devemos clicar em Yes para reiniciar o Sistema Operacional para prosseguirmos com a instalao.

Figura 22 - Tela de confirmao de reincio do Windows

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.

Figura 23 - Tela para executar a instalao

Na prxima tela clique em Next.

Figura 24 - Tela de Alerta aos direitos do programa

Na tela abaixo, figura 25, podemos escolher o diretrio de instalao, entre outras opes. Mas deixaremos por padro as opes apresentadas.

43

Figura 25 - Tela de configuraes de instalao do Daemon

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.

Figura 26 - Telas de confirmao de 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.

Figura 27 - Tela de Finalizao da Instalao

45

4.1. MONTAR DVD VIRTUAL DO VISUAL STUDIO

Para criarmos uma Unidade Virtual de um DVD, tendo como origem uma imagem ISO, utilizaremos o Daemon Tools instalado anteriormente.

Clique com o boto direito do mouse no cone

do Daemon Tools

localizado na rea de Notificao (Icon Tray), conforme figura 28.

Figura 28 - rea de Notificao (Icon Tray)

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.

Figura 29 - Escolha das opes para montar imagem 1

Figura 30 - Escolha das opes para montar imagem 2

46

Em seguida abrir uma tela para procurarmos a Imagem ISO, basta localizar o arquivo, selecion-lo e clicar em abrir.

Figura 31 - Tela de Localizao do arquivo ISO

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.

Figura 32 - Execuo do DVD Virtual

Com a imagem montada podemos instalar, finalmente, o Visual Studio 2008.

47

5. INSTALAO DO VISUAL STUDIO 2008

Antes da instalao do Visual Studio 2008 importante conhecer os requisitos mnimos e recomendados para que no tenhamos problema ao final desse processo.

5.1. REQUISITOS DE INSTALAO

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.

Figura 33 - Tela de Instalao do Visual Studio

O programa de instalao copiar os recursos necessrios para uma pasta temporria, como ilustra a figura 34.

Figura 34 - Copiando os recursos necessrios

Para prosseguir com a instalao clique em Next.

Figura 35 - Tela de confirmao de carregamento completo dos recursos

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.

Figura 36 - Tela para aceitao dos termos de uso

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.

Figura 37 - Tela de configurao da instalao

50

Nesse momento so instalados todos os requisitos e componentes necessrios para o funcionamento do Visual Studio 2008.

Figura 38 - Tela de Instalao dos componentes

Se tudo der certo, veremos a tela conforme a figura 39.

Figura 39 - Tela de sucesso da instalao

51

5.3. ESCOLHENDO A LINGUAGEM PADRO

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.

Figura 40 - Tela de Abertura (Splash Screen)

Escolheremos a linguagem C# ao desenvolvimento do nosso sistema, que ser a base para esse trabalho.

Figura 41 - Tela de escolha da linguagem padro

52

O Visual Studio 2008 configura o ambiente de desenvolvimento para ser utilizado pela primeira vez.

Figura 42 - Configurao do ambiente com a linguagem C Sharp

53

6. PRIMEIROS CONTATOS
Abaixo vemos a tela do Visual Studio 2008, no decorrer do trabalho conheceremos detalhadamente o seu ambiente, componentes e ferramentas.

Figura 43 - Tela Inicial do Visual Studio 2008

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.

6.2. FACILITANDO O ACESSO AO VISUAL STUDIO

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.

Figura 44 - Fixando o Visual Studio no Menu Iniciar

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.

cone do Visual Studio 2008 Fixado

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.

6.3. VISO GERAL DO VISUAL STUDIO 2008

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

Toolbox Solution Explorer

Auto Hide

Properties rea de Design

Figura 46 - Ambiente integrado de desenvolvimento

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.

6.3.3. Barra device Podemos configurar as opes do Device e emuladores;

6.3.4. Barra de Layout possvel configurar o posicionamento dos objetos no formulrio.

57

6.3.5. Solution Explorer Podemos visualizar atravs desse painel todos os arquivos da soluo.

6.3.6. Toolbox Encontramos os principais componentes que so utilizados para

desenvolvimento de sistemas.

6.3.7. Properties Local onde so alteradas as propriedades dos componentes.

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.

Boto Auto Hide


Figura 47 - Destaque do boto Auto Hide

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.

Figura 48 - Acesso ao Menu File para cria novo projeto

59

Figura 49 - Detalhe em destaque do Menu File

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.

Devemos clicar em Ok, depois de aplicar as configuraes.

60

Figura 50 - Tela com as configuraes do Primeiro Projeto

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.

Figura 51 - Escolha do Device (Emulador)

61

Vejamos a figura 52, onde podemos observar pela primeira vez a tela do Pocket PC.

Figura 52 - Tela do Device no ambiente do Visual Studio 2008

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.

Figura 53 Especificaes e verso da Framework

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.

Figura 54 - Menu View - Acesso s Janelas

Clicando duas vezes (duplo-clique) sobre esse boto, teremos acesso as linhas de cdigo do nosso programa.

Figura 55 - Detalhe da tela com o boto e janela de Propriedades

63

As configuraes do boto devero estar conforme as da figura 56, logo abaixo.

Figura 56 - Propriedades do Boto

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.

Figura 57 - Ilustrao do Intellisense

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.

Ex.: Using System.namespace_especifico;

7.3. CDIGO COMPLETO DA PRIMEIRA APLICAO

using using using using using using using using

System; System.Linq; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Text; System.Windows.Forms;

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.

Figura 58 - Alternando entre Layout e Cdigo

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.

Para sincronizar basta clicar no boto

ao lado do nome do emulador

desejado, para o primeiro exemplo o emulador que ser usado o Pocket PC 2003.

Figura 59 - Emuladores disponveis

67

A figura 60 ilustra a conexo do Computador com o Emulador, onde deve aparecer a mensagem Connection succeeded.

Figura 60 - Conexo com Emulador

Em seguida aparecer a tela do emulador, onde o nosso aplicativo ser executado.

Figura 61 - Emulador rodando

Devemos clicar no boto para inicializar a nossa aplicao.

(Start Debugging) ou clicar na tecla de atalho F5,

Figura 62 - Boto para rodar a aplicao

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.

Figura 63 - Tela com emuladores disponveis

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

Figura 64 - Programa Al Mundo rodando

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.

Figura 65 - Finalizao do programa no emulador

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.

Figura 66 - Opes do estado do emulador

Figura 67 - Aviso sobre perda de conexo com o emulador

Para sairmos da aplicao no Visual Studio 2008, acessaremos o Menu File e a opo Close Solution.

Figura 68 - Saindo do Visual Studio 2008

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.

Figura 69 - De volta a Start Page - Projeto Listado

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

Figura 70 - Imagem da caixa de Dialogo no emulador

Cdigo do boto Ok:


private void button1_Click(object sender, EventArgs e) { MessageBox.Show("Mensagem ou Pergunta.", "Rtulo da caixa", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1); }

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

8.1. ENTENDENDO CADA PARTE DA MENSAGEM:

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;

cones: MessageBoxIcon - Exibe um cone, conforme as configuraes pr-definidas;

Boto Padro: MessageBoxDefaultButton.

8.2. ENUMERAO MESSAGEBOXBUTTON

Lista os botes membros da caixa de mensagem, argumentos do mtodo Show.

Figura 71 - Lista de Botes

75

8.2.1. Lista de Argumentos MessageBoxButton

No Quadro 1 consta a lista de argumentos com a ilustrao das mensagens.

Caixa de Mensagem

Opo

Descrio Exibe na caixa de mensagem os

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

8.3. ENUMERAO - MESSAGEBOXICON:

Lista os icones da enumerao do MessageBoxIcon. No Quadro 2 consta a lista de cones com a sua descrio.

Figura 72 - Lista de cones de MessageBoxIcon

8.3.1. Lista de cones de MessageBoxIcon

Imagem

Nome do membro

Descrio

Asterisk Exclamation Hand None Question

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.

Figura 73 - Lista de botes que podem ser definidos como padro

78

9. INSTALAO DO WINDOWS MOBILE 6 PROFESSIONAL

Aps realizar o

download o prximo passo a instalao do SDK do

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.

Figura 74 - Arquivo para instalao do Windows Mobile 6

Ento se abrir uma tela conforme a figura 75. Aguarde a preparao da instalao.

Figura 75 Tela de preparao da instalao

9 Download em: http://www.microsoft.com/downloads/details.aspx?familyid=06111A3A-A651-474588EF-3D48091A390B&displaylang=en

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.

Figura 76 - Tela de boas vindas da instalao

Os pr-requisitos so listados e, caso no estejam instalados, deve-se realizar o


10

download para prosseguir com a instalao. A instalao sem os pr-

requisitos permitida, mas alguns recursos podem no funcionar corretamente. O ideal realizar o download dos requisitos que esto destacados como Not Installed (No Instalado).

Figura 77 - Tela com a lista de Pr-Requisitos

Requisitos em: http://www.microsoft.com/downloads/details.aspx?familyid=06111A3A-A651-4745-88EF3D48091A390B&displaylang=en

80

Na prxima tela deve-se selecionar a opo Accept e depois em Next, conforme figura 78 abaixo.

Figura 78 - Tela para aceitar os termos de instalao

Na tela seguinte, confirmamos o nome do usurio e da Organizao. Devemse preencher os respectivos campos e depois clicar em Next.

Figura 79 - Tela para preenchimento dos dados pessoais ou da empresa

Podemos alterar o local de instalao clicando no boto

, mas

deixaremos a instalao utilizar o local padro, como apresentado na figura 80, a seguir. 81

Figura 80 - Tela para escolha do local de instalao

Na prxima tela clicaremos em Install para concluirmos a instalao.

Figura 81 - Tela para confirmao da instalao

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

Figura 82 Tela de progresso da instalao

Figura 83 Tela para finalizar instalao

83

10. COMPACT FRAMEWORK E .NET FRAMEWORK

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.

10.1. ESTRUTURA DA FRAMEWORK.NET

Figura 84 - Estrutura da Framework

84

10.2. ENTENDENDO A ESTRUTURA DA ARQUITETURA EM CAMADAS

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).

10.3. CLR (COMMON LANGUAGE RUNTIME)

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.

10.4. CTS (COMMON TYPES SYSTEM)

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.

10.5. CLS (COMMON LANGUAGE SPECIFICATION)

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.

10.6. BCL (BASE CLASS LIBRARY)

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

matemticas, memria. Contm System.Collections encadeadas. System.Data, System.Data.Common,

gerenciamento

pilhas,

filhas

listas

System.Data.OleDb, System.Data.SqlClient, System.Data.SqlServerCe

Acesso a base de dados. Aqui tambm se encontra o ADO.NET

Log System.Diagnostics

de

Event,

medio

de de

desempenho,

gerenciamento

processos, depurao. Biblioteca de componentes para

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

Dica: Para conhecer os demais namespaces, utilize o recurso do Intellisense.

88

10.7. MSIL (MICROSOFT INTERMEDIATE LANGUAGE)

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

Figura 85 - Interface de Programao de Aplicativos do ADO

10.8.2. Relao de Providers O Quadro 4 lista os provedores de dados que esto includos na .NET Framework.

Provedores

Descrio Para Microsoft Verso 7 ou superior.

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

10.8.3. Objetos dos Provedores

Os provedores necessitam de objetos para manipularem os dados. O Quadro 5 descreve os quatro principais objetos que compem um Provedor

Figura 86 - Estrutura dos Objetos ADO

Objeto

Descrio Estabelece uma conexo com uma fonte de dados

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

11. MODELO DE ACESSO A DADOS


Temos duas formas de acesso a dados, como veremos logo abaixo.

11.1. MODELO CONECTADO 11.1.1Caractersticas:

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;

No adequado para aplicaes Web/Distribudas com grande volume de acesso.

11.1.2. Como funciona o modelo conectado: Abrir conexo, Executar comandos, utiliza o reader, fecha o reader e fecha a conexo.

Figura 87 Ilustrao do Modelo Conectado

92

11.2. MODELO DESCONECTADO 11.2.1. Caractersticas:

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).

11.2.2. Como funciona o modelo desconectado:

Abrir a conexo, preencher o DataSet, fechar a conexo, manipular o DataSet, abrir a conexo, atualizar dados, fechar a conexo.

Figura 88 - Ilustrao do Modelo Desconectado

93

12. PALAVRAS RESERVADAS DO C#

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

readonly struct sizeof select3 try unchecked var3 while

ref sbyte stackalloc this typeof unsafe virtual where3

Return Sealed Static Throw Uint Ushort Volatile yield2

Switch Short String True Ulong Using void

Quadro 6 Palavras Reservadas do C Sharp

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.

13.1. ALGUMAS REGRAS PARA DECLARAO DE VARIVEIS

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

13.2. DECLARAO E DEFINIO DE VARIVEIS

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;

Podemos ainda reduzir para apenas uma linha a declarao e a inicializao:


int 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.

Figura 89 - Hierarquia de Tipos

14.1. INTEGRAIS (INTEIROS)

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

Tamanho 8 bits 8 bits 16 bits 16 bits 32 bits 32 bits at 64 bits

-32.768 at 32.767 0 at 65.535 -2.147.483.648 at 2.147.483.647 0 at 4.294.967.295 -9.223.372.036.854.775.808 9.223.372.036.854.775.807

ulong (sem sinal)

0 at 18.446.744.073.709.551.615
Quadro 7 - Tipos Integrais

64 bits

14.1.1. Exemplo de declarao:


byte diaDoMes = 25; int alunosVestibular = 1650;

long eleitoresBrasil;

14.2. PONTO-FLUTUANTE (FRACIONRIO)

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

Tipo float double

Faixa de Valores 1.5x10-45 at 3.4x1038 5.010-324 at 1.710308

Preciso 7 dgitos 15-16 dgitos

Tamanho 32 bits 64 bits

Quadro 8 Tipos Fracionrios

14.2.1. Exemplo de declarao:


float salarioMinimo = 412.25; Double indiceTaxa = 0,0009876;

Ainda temos um tipo dedicado s aplicaes financeiras, que utilizam nmeros muito extensos e precisam de extrema preciso. Segue suas

especificaes no Quadro 9, logo abaixo:

Tipo decimal

Faixa de Valores 1.0x10-28 at 7.9x1028

Preciso 28 dgitos

Tamanho 128 bits

Quadro 9 Tipo Fracionrio Financeiro

14.3. CARACTERES E STRINGS

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

Tipo char (Unicode) string

Faixa de Valores Caractere Unicode Limitado plataforma


Quadro 10 Tipos para Caracteres

Tamanho 16 bits ~2 bilhes caracteres

14.3.1. Exemplo de declarao:


char flag = "S"; string nome = "Nicolas";

14.3.2. Funes para Strings

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.

Mtodo Insert() toUpper() toLower() Remove() Replace() Length Trim

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

14.3.3 Exemplos de utilizao:


string texto = "Total de Letras"; texto.Length;

O valor de sada ser = 15, pois os espaos em branco tambm so contados.


texto.Remove(5);

O valor de sada ser = Total, pois foi removido todo o restante do texto foi removido a contar da posio 5.

14.4. BOOL (BOOLEANO)

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

Faixa de Valores true ou false

Tamanho 64 bits

Quadro 12- Tipo Booleano (verdadeiro ou falso)

14.4.1. Exemplo de declarao:


bool conectado;

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

Faixa de Valores Data e hora


Quadro 13 Tipo de Data e Hora

Tamanho 8 bit

14.5.1. Exemplo de declarao:


DateTime dataCompra; DateTime dataAtual = DateTime.Now;

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.

14.6. CONVERSO DE TIPOS

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

14.6.1. Exemplo de converso:


string texto = "987 "; int novoNumero = int.Parse(texto); novoNumero.ToString();

14.7. MTODOS DE CONVERSO

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

Funo ToBoolean ToByte ToChar ToDateTime ToDecimal ToDouble

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

Converte um determinado valor para um inteiro de 64 bits (compatvel com long).

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

Converte um determinado valor para um inteiro de 32 bits (compatvel com uint).

ToUInt64

Converte um determinado valor para um inteiro de 64 bits (compatvel com ulong).


Quadro 15 Tipos aceitos na converso

106

14.7.1. Exemplo de converso:

int idade = 32; MessageBox.Show("Idade: "+ Convert.ToString(idade));

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

15.2. EXEMPLO PRTICO DA UTILIZAO DE OPERADORES

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:

Figura 90 - Criao de um novo projeto

Clique em OK. Na prxima tela configuraremos as propriedades como ilustra a figura 91, e confirmaremos no boto OK.

Figura 91 - Escolha do tipo de projeto

Nesse projeto utilizaremos as configuraes como mostra o Quadro 17

109

Objeto Form1

Propriedade Name MinimizeBox Text

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

Location Location Text

TextBox2 Button1

Location Location Text

Button2

Location Text

Button3

Location Text

Button4

Location Text

Button5

Location Text

Label3

Location Text

Quadro 17 Lista de Propriedades do exemplo de Operadores

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

respectivamente e, em seguida, clicar em um dos botes para visualizao do resultado.

Figura 92 - Exemplo do layout da tela

Digitaremos o seguinte cdigo no boto clique no boto onde ser inserido o cdigo. 15.2.1. Cdigo do boto:

, para isso daremos um duplo

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.

Figura 93 - Alteraes dos demais botes

Devemos clicar no boto para inicializar a nossa aplicao.

(Start Debugging) ou clicar na tecla de atalho F5,

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.

16.1. EXEMPLO DE COMENTRIO EM UMA NICA LINHA:


// Para comentrios de uma nica linha, utilizamos duas barras antecedendo o comentrio.

16.2. EXEMPLO DE COMENTRIO COM MLTIPLAS LINHAS:


/* Para comentrio com mais de uma linha, utilizamos uma barra seguida de asterisco para abrir o comentrio, e asterisco seguido de uma barra para fazer o fechamento do comentrio */

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.

Segundo a definio de Fbio Galuppo:


Arrays, ou simplesmente vetores, so elementos dimensionais de um determinado tipo de dados [...] onde so agrupados num nmero fixo de elementos. Em C# os vetores so acessados atravs de um ndice (valor numrico) cujo sempre se inicia com zero (0). (Galuppo, 2003, pg. 1)

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";

// armazena a string morango no ndice um


frutas[1] = "morango";

// armazena a string uva no ndice quatro


frutas[4] = "uva";

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

17.1. EXEMPLO PRTICO DA UTILIZAO DE VETORES

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:

Figura 94 - Criao de um novo projeto

Clicaremos em OK. Na prxima tela configuraremos as propriedades como ilustra a figura 95, e confirmaremos no boto OK.

Figura 95 - Escolha do tipo de projeto

Nesse projeto utilizaremos as configuraes como mostra o Quadro 18:

116

Objeto Form1

Propriedade Name MinimizeBox Text

Valor frmVetores False Vetores lsbMostraValores 61; 34 131; 128 btnListaVetor 79; 188 Executar

listBox1

Name Location Size

Button1

Name Location Text

Quadro 18 Lista de Propriedades do exemplo de Vetores

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.

Figura 96 - Exemplo do layout da tela

117

Digitaremos o seguinte cdigo no boto duplo clique no boto onde ser inserido o cdigo.

, para isso daremos um

17.1.1. Cdigo do boto:


private void button1_Click(object sender, EventArgs e) { // declara o array string[] frutas; // inicializa o vetor com 05 posies frutas = new string [5]; // armazena frutas [0]= frutas [1]= frutas [2]= frutas [3]= frutas [4]= os valores nos respectivos ndices "goiaba"; "morango"; "acerola"; "banana"; "uva";

/* 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]); } }

Devemos clicar no boto para inicializar a nossa aplicao.

(Start Debugging) ou clicar na tecla de atalho F5,

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.

string frutas[] = {"goiaba","morango"acerola","banana","uva"};

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

Exemplo da declarao de uma varivel chamada contato do tipo tipoTelefone:


tipoTelefone contato;

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

18.1. EXEMPLO PRTICO DA UTILIZAO DE ENUMERADORES

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:

Figura 97 - Criao de um novo projeto

Clicaremos em OK. Na prxima tela configure as propriedades como ilustra a figura 98, e confirmaremos no boto OK.

Figura 98 - Escolha do tipo de projeto

Nesse projeto utilizaremos as configuraes como mostra o Quadro 19

121

Objeto Form1

Propriedade Name MinimizeBox Text

Valor frmEnumeradores False Enumeradores btnExecutar 76; 167 Executar

Button1

Name Location Text

Quadro 19 Lista de Propriedades do exemplo de Vetores

A tela dever ficar como a figura 99; alteraremos as propriedades conforme o Quadro 19.

Figura 99 - Exemplo do layout da tela

122

Digitaremos o seguinte cdigo no boto duplo clique no boto onde ser inserido o cdigo.

, para isso daremos um

18.1.1. Cdigo do boto


private void button1_Click(object sender, EventArgs e) { // Declarao de duas variveis do tipo tipoTelefone tipoTelefone contato,novoContato; // Atribuio de valores s variveis contato = tipoTelefone.residencial; novoContato = tipoTelefone.trabalho; // Converso para String string sContato = contato.ToString(); // Converso do tipo para inteiro int iContato = Convert.ToInt32(novoContato); /* Apresentao em uma caixa de mensagem A diretiva \n quebra uma linha, ou seja, pula uma linha. */ MessageBox.Show("Contato: " + sContato + "\n\n NovoContato:"+ iContato); }

Devemos clicar no boto para inicializar a nossa aplicao.

(Start Debugging) ou clicar na tecla de atalho F5,

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

19. OPERADORES LGICOS E DE COMPARAO

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.

Operador == != > < >= <= ! && ||

Funo Igualdade No igualdade Maior que Menor que Maior ou igual Menor ou igual Operador de negao Operador E Operador OU

Quadro 20 Principais Operadores Lgicos e de Comparao

124

20. ESTRUTURAS CONDICIONAIS

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

20.1.2. IF... ELSE

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;; }

20.1.4. Exemplo prtico da utilizao do comando if

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

Figura 100 - Criao de um novo projeto

Clicaremos em OK. Na prxima tela configuraremos as propriedades como ilustra a figura 101, e confirme em no boto OK.

Figura 101 - Escolha do tipo de projeto

Nesse projeto utilizaremos as configuraes como mostra o Quadro 21.

128

Objeto Form1

Propriedade Name MinimizeBox Text

Valor frmIf False If txtIdade 58;64 btnExecutar 77; 108 Executar

TextBox1

Name Location

Button1

Name Location Text

Quadro 21 Lista de Propriedades do exemplo de If

A tela dever ficar como a figura 102; alteraremos as propriedades conforme o Quadro 21.

Figura 102 - Exemplo do layout da tela

129

Digitaremos o seguinte cdigo no boto um duplo clique no boto onde ser inserido o cdigo.

, para isso daremos

20.1.4.1. Cdigo do boto


private void btnExecutar_Click(object sender, EventArgs e) { // Verifica se a caixa de texto est vazia if (txtIdade.Text == "") { // Mostra uma mensagem caso a caixa esteja vazia MessageBox.Show("Insira a sua idade"); // O comando return sai da estrutura condicional return; } // Declarao de uma varivel do tipo inteiro // para armazenar a idade int idade; // Atribuio do contedo da caixa varivel // e converso de tipo idade = Convert.ToInt32(txtIdade.Text); // Verifica se idade menor que zero(0) // e maior que doze(18) if (idade > 0 && idade < 12) { // Caso atenda a condio mostra a mensagem MessageBox.Show("Criana"); } // Verifica se idade maior ou igual a doze(12) // e menor e igual a de dezoito(18) else if (idade >= 12 && idade <= 18) { // Caso atenda a condio mostra a mensagem MessageBox.Show("Adolescete"); } // Caso no atenda nenhuma das condies anteriores else { // Mostra a mensagem MessageBox.Show("Adulto"); } }

Devemos clicar no boto para inicializar a nossa aplicao.

(Start Debugging) ou clicar na tecla de atalho F5, 130

20.2. SWITCH CASE

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; }

20.2.1. Exemplo prtico da utilizao do comando Switch

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

Figura 103 - Criao de um novo projeto

Clicaremos em OK. Na prxima tela configuraremos as propriedades como ilustra a figura 104, e confirme em no boto OK.

Figura 104 - Escolha do tipo de projeto

Nesse projeto utilizaremos as configuraes como mostra o Quadro 22.

132

Objeto Form1

Propriedade Name MinimizeBox Text

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

Name Location Text

TextBox1

Name Location

Label2

Name Location Text

ComboBox1

Name Location Size

Button1

Name Location Text

Label3

Name Location Size

Quadro 22 Lista de Propriedades do exemplo de Switch

133

A tela dever ficar como a figura 105; alteraremos as propriedades conforme o Quadro 22.

Figura 105 - Exemplo do layout da tela

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

20.2.1.2. Cdigo completo do exemplo Switch Case


using using using using using using using using System; System.Linq; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Text; System.Windows.Forms;

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

21. ESTRUTURAS DE REPETIO

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

Quadro 23 Ilustra o ciclo dentro do for no exemplo do comando Switch Case

139

21.1.1. Insert Code Snippet

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...

Figura 106 - Opes do boto direito no cdigo

Em seguida veremos uma imagem, como mostra a figura 107, escolheremos a opo Visual C#.

Figura 107 - Opes de Insert Snippet...

Outra tela ser aberta com os exemplos de estruturas disponveis, escolheremos o for, como ilustra a figura 108.

140

Figura 108 - Estruturas disponveis em Code Snippet

Aps escolhermos a opo for, veremos o cdigo gerado como mostra a figura 109.

Figura 109 - Cdigo Gerado a partir do Code Snippet

21.1.2. Exemplo prtico da utilizao do comando for

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

Figura 110 - Criao de um novo projeto

Clicaremos em OK. Na prxima tela configuraremos as propriedades como ilustra a figura 111, e confirme em no boto OK.

Figura 111 - Escolha do tipo de projeto

Nesse projeto utilizaremos as configuraes como mostra o Quadro 23.

142

Objeto Form1

Propriedade Name MinimizeBox Text

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

Name Location Text

TextBox1

Name Location

Button1

Name Location Text

Button2

Name Location Text

LisBox1

Name Location Size

Quadro 23 Lista de Propriedades do exemplo de for

A tela dever ficar como a figura 112, altere tambm as propriedades conforme o Quadro 23.

143

Figura 112 - Exemplo do layout da tela

Digitaremos o seguinte cdigo no boto duplo clique no boto onde ser inserido o cdigo.

, para isso daremos um

21.1.2.1 Cdigo do boto Executar


private void btnOk_Click(object sender, EventArgs e) { // verifica se o campo est vazio if (txtNumero.Text.Equals("")) { // mostra mensagem caso esteja vazio o campo nmero MessageBox.Show("Escolha um nmero para tabuada"); txtNumero.Focus();// D foco no campo nmero return; // sai e d foco no campo nmero } // declara duas vriaveis, //uma para total e para o nmero digitado int n, r; for (int i = 0; i <= 10; i++) // faz o loop at 10 { //converte o valor para inteiro n = int.Parse(txtNumero.Text); // faz o clculo r = n * i; // varivel para juntar o resultado de n, i e r string result = string.Concat(n, " x " + i + " = " + r); // adiciona linha at o fim do loop lst_Numeros.Items.Add(result); } btnExecutar.Enabled = false;// desabilita o boto executar txtNumero.ReadOnly = true; // no permite entrada }

144

Digitaremos o seguinte cdigo no boto duplo clique no boto onde ser inserido o cdigo.

, para isso daremos um

21.1.2.2 Cdigo do boto Limpar


private void btnLimpar_Click(object sender, EventArgs e) { // limpa os campos txtNumero.Text = ""; lst_Numeros.Items.Clear(); // d foco txtNumero.Focus(); // habilita o boto executar btnExecutar.Enabled = true; // libera entrada txtNumero.ReadOnly = false; }

Devemos clicar no boto para inicializar a nossa aplicao

(Start Debugging) ou clicar na tecla de atalho F5,

Tela do programa rodando.

Figura 113 - Programa de exemplo do For rodando

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

21.2.1. Exemplo prtico da utilizao do comando While

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:

Figura 114 - Criao de um novo projeto

Clicaremos em OK. Na prxima tela configure as propriedades como ilustra a figura 115, e confirmaremos no boto OK.

Figura 115 - Escolha do tipo de projeto

147

Nesse projeto utilizaremos as configuraes como mostra o Quadro 24.

Objeto Form1

Propriedade Name MinimizeBox Text

Valor frmPrincipal False

Label1

Name Location Text

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

Name Location Text

Label3

Name Location Text

Panel1

Name Location Size

ListBox1

Name Location

Button1

Name Location Text

Quadro 24 Lista de Propriedades do exemplo de for

148

A tela dever ficar como a figura 116; alteraremos as propriedades conforme o Quadro 24.

Figura 116 - Exemplo do layout da tela

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.

, para isso daremos um

21.2.1.1. Cdigo do boto Executar


private void button1_Click(object sender, EventArgs e) { // Variveis que recebero o valor das cores // r = red ; g = green ; b = blue; int r =255 , g = 255, b = 0; // executa o loop "enquanto" o azul while (b < 255) { b++; // a cada volta soma 1 ao r--; // a cada volta diminui 1 g--; // a cada volta diminui 1 for menor que 255 valor de b ao valor de r ao valor de g

// 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

22. CRIAO DO PROJETO

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.

22.1. CRIAO DA BASE DE DADOS

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:

Figura 117 - Criao de um novo projeto

Clicaremos em OK. Na prxima tela configure as propriedades como ilustra a figura 118, e confirmaremos no boto OK.

151

Figura 118 - Escolha do tipo de projeto

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.

Figura 119 - Menu View / Opo Solution Explorer

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

Figura 120 - Janela para adicionar itens aplicao

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.

Figura 121 - Escolhendo novos itens aplicao

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.

Figura 122 - Tela gerada automaticamente para criao de um dataset

Abaixo vemos a estrutura da aplicao com todos os arquivos e, em destaque, o arquivo de dados.

Base de dados

Figura 123 - Estrutura da Aplicao

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.

Figura 124 - Server Explorer Base Desconectada

Figura 125 - Server Explorer - Base Conectada

Em seguida clicaremos com o boto direito em cima de Tables e escolheremos a opo Create Table, como ilustra a figura 126.

Figura 126 - Criao de Tabelas

155

Uma janela ser aberta, como vemos na figura 127. Agora podemos criar as tabelas e os campos com as suas propriedades.

Figura 127 - Tela para criar nova tabela

22.2. CRIAAO DAS TABELAS

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.

Figura 128 - Modelo proposto

156

22.2.1. Tabela Cliente

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.

Figura 129 - Tabela Cliente

22.2.2. Tabela Produto

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

Figura 130 - Tabela Produto

22.2.3. Tabela Venda

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.

Figura 131 - Tabela Venda

158

22.2.4. Tabela Item_Venda

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.

Figura 132 - Tabela Item_Venda

159

22.3. RELACIONAMENTO ENTRE AS TABELAS

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.

Figura 133 - Criao dos relacionamentos

22.3.1. Relacionamento Cliente - Venda

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

Figura 134 - Tela de configurao da chave estrangeira

Se ocorrer tudo certo, a tela abaixo, figura 135, confirma a incluso da chave estrangeira.

Figura 135 - Tela de Sucesso de incluso da chave estrangeira

Abaixo vemos na figura 136, em Manage Relations, o relacionamento adicionado e a sua descrio.

Figura 136 - Tela de gerenciamento dos relacionamentos

161

22.3.2. Relacionamento Produto Item_Venda

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.

Figura 137 - Tela de configurao da chave estrangeira

Se ocorrer tudo certo, a tela abaixo, figura 138, confirma a incluso da chave estrangeira.

162

Figura 138 - Tela de Sucesso de incluso da chave estrangeira

Abaixo vemos na figura 139, em Manage Relations, o relacionamento adicionado e a sua descrio.

Figura 139 - Tela de gerenciamento dos relacionamentos

22.3.3. Relacionamento Venda Item_Venda

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.

Figura 140 - Tela de configurao da chave estrangeira

Se ocorrer tudo certo, a tela abaixo, figura 141, confirma a incluso da chave estrangeira.

Figura 141 - Tela de Sucesso de incluso da chave estrangeira

Abaixo vemos na figura 142, em Manage Relations, o relacionamento adicionado e a sua descrio.

164

Figura 142 - Tela de gerenciamento dos relacionamentos

22.4. CONFIGURAES DE COMPILAO

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.

Figura 143 - Copiar base para pasta temporria

165

Na tela do emulador escolheremos no Menu file e a opo Configure, como mostra a figura 144.

Figura 144 - Acesso as configuraes do Emulador

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.

Figura 145 - Configurao da pasta compartilhada

No menu iniciar do Windows Mobile do emulador acessaremos o File Explorer, depois Storage Card e finalmente veremos o arquivo baseVendas.sdf.

Figura 146 - Passos para acessa a pasta do Storage Card

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.

Figura 147 - Copiando o arquivo de dados

22.4.1. Alterando o endereo de compilao

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.

Figura 148 - Alterando o endereo de compilao

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.

Figura 149 - Configurao do endereo de compilao

22.5. TELA DE CADASTRO DE CLIENTE

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.

Figura 150 - Novo Formulrio

168

Figura 151 - Tela para nomear o formulrio

O seu layout deve ficar como na figura 152, logo abaixo. E devemos configurar as propriedades como no quadro 25.

Figura 152 - Tela de Cadastro de Cliente

Objeto frmCliente

Propriedade Name MinimizeBox Text BackColor

Valor frmCliente False Cadastro de Clientes Control

169

Label1

Name Location Text

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

Name Location Size

Label2

Name Location Text

TextBox2

Name Location Size

Button1

Name Location Size BackColor Text

Button2

Name Location Size BackColor

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

Quadro 25 Lista de Propriedades da Tela de Cadastro

171

22.5.1. Definindo o objeto de Conexo e Data Set

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.

Figura 153 - Objeto de conexo e Data Set (Pblicos )

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.

Figura 154 - Inserindo o namespace do SQL CE

172

Digitaremos o seguinte cdigo no boto duplo clique no boto onde ser inserido o cdigo. 22.5.2. Cdigo do boto Inserir

, para isso daremos um

Figura 155 - Cdigo do boto Inserir

22.5.2.1 - Explicao do cdigo do boto inserir


Linha 52 criada uma varivel do tipo string com o comando SQL, o sinal de interrogao (?) o parmetro que representa cada campo dentro do comando; Linha 53 criado um objeto de comando e passado os valores do SQL e da Conexo; Linhas 54 e 55 So adicionados os parmetros e seus respectivos campos; Linha 56 - o bloco try {} tenta executar tudo que estiver delimitado entre as chaves, nesse exemplo: da linha 58 at a 64; caso acorra erro vai para catch {} e executa a exceo;

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.

, para isso daremos um

22.5.3. Cdigo do boto Listar

Figura 156 - Cdigo do boto Listar

174

22.5.3.1 - Explicao do cdigo do boto Listar

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.

, para isso daremos um

175

22.5.4. Cdigo do boto Apagar

Figura 157 - Cdigo do boto Apagar

22.5.4.1 - Explicao do cdigo do boto Apagar


Linha 106 verifica se existe alguma linha na Grade de Clientes (gridCliente); Linha 108 - caso o resultado da linha 106 seja verdadeira mostra uma mensagem; Linha 109 sai do fluxo com o comando return; Linha 111 criada uma varivel do tipo string com o comando SQL, o sinal de interrogao (?) o parmetro que representa cada campo dentro do comando; Linha 112 - criado um objeto de comando e passado os valores do SQL e da conexo; Linhas 113 - adicionado o parmetro do campo cliente; Linha 115 - o bloco try {} tenta executar tudo que estiver delimitado entre as chaves, nesse exemplo: da linha 117 at a 121; caso acorra erro vai para catch {} e executa a exceo; Linha 117 abre a conexo;

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;

Linha 131 fecha a conexo.

Digitaremos o seguinte cdigo no boto clique no boto onde ser inserido o cdigo.

, para isso daremos um duplo

22.5.5. Cdigo do boto Atualizar

Figura 158 - Cdigo do boto Atualizar

177

22.5.5.1 - Explicao do cdigo do boto Atualizar


Linha 138 verifica se existe alguma linha na Grade de Clientes (gridCliente); Linha 140 - caso o resultado da linha 138 seja verdadeira mostra uma mensagem; Linha 141 sai do fluxo com o comando return; Linha 144 criada uma varivel do tipo string com o comando SQL, o sinal de interrogao (?) o parmetro que representa cada campo dentro do comando; Linha 145 - criado um objeto de comando e passado os valores do SQL e da Conexo; Linhas 147, 148 e 149 - So adicionados os parmetros e seus respectivos campos; Linha 151 - o bloco try {} tenta executar tudo que estiver delimitado entre as chaves, nesse exemplo: da linha 153 at a 159; caso acorra erro vai para catch {} e executa a exceo; Linha 153 abre a conexo; Linhas 154, 155 - passamos os valores dos campos da tela para os parmetros; Linha 156 e 157 - (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 158 - executa o comando; Linha 159 mostra uma mensagem de confirmao; Linha 161 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 163 mostra a mensagem de erro; Linha 165 criado o bloco finally que ser executado mesmo que nada ocorra;

Linha 167 fecha a conexo.

178

Digitaremos o seguinte cdigo no boto clique no boto onde ser inserido o cdigo.

, para isso daremos um duplo

22.5.6. Cdigo do boto Buscar

Figura 159 - Cdigo do boto Buscar

22.5.6.1 - Explicao do cdigo do boto Buscar


Linha 183 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 184 - criado um objeto de acesso / comando (Data Adapter) e passado os valores do SQL e da Conexo; Linha 151 - o bloco try {} tenta executar tudo que estiver delimitado entre as chaves, nesse da linha 188 at a 191; caso acorra erro vai para catch {} e executa a exceo; Linha 188 limpa Data Set (Tabela em memria); Linha 189 abre a conexo;

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.

22.5.7. - Explicao do cdigo do evento do Grid Cliente

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).

Figura 160 - Cdigo do evento da Linha selecionada

180

22.6. TELA DE CADASTRO DE PRODUTO

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.

Figura 161 - Novo Formulrio

Figura 162 - Tela para nomear o formulrio

O seu layout deve ficar como na figura 163, logo abaixo. E devemos configurar as propriedades como no quadro 26.

181

Figura 163 - Tela de Cadastro de Produto

Objeto frmCliente

Propriedade Name MinimizeBox Text BackColor

Valor frmProduto False Cadastro de Produtos Control lblProduto 3; 2 Produto: txtProduto 3; 19 234; 21: lblValor 82; 49 Valor:

Label1

Name Location Text

TextBox1

Name Location Size

Label2

Name Location Text

182

TextBox2

Name Location Size

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

Name Location Size BackColor Text

Button2

Name Location Size BackColor Text

Button3

Name Location Size BackColor Text

DataGrid1

Name Location Size

183

Button4

Name Location Size BackColor Text

btnListar 176; 229 59; 21 HighlightText Listar txtBusca 3; 261 172; 21 txtBuscaProduto 3; 266 173; 21 HighlightText Buscar

TextBox3

Name Location Size

Button4

Name Location Size BackColor Text

Quadro 26 Lista de Propriedades da Tela de Produto

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:

System.Data.SqlServerCe e System.IO, linhas 9 e 10.

Figura 164 - Objeto de conexo e Data Set (Pblicos )

184

Digitaremos o seguinte cdigo no boto duplo clique no boto onde ser inserido o cdigo. 22.6.2. Cdigo do boto Inserir

, para isso daremos um

Figura 165 - Cdigo do boto Inserir

22.6.2.1 - Explicao do cdigo do boto inserir


Linha 25 criada uma varivel do tipo string com o comando SQL, o sinal de interrogao (?) o parmetro que representa cada campo dentro do comando; Linha 28 criado um objeto de comando e passado os valores do SQL e da Conexo; Linhas 29 e 30 So adicionados os parmetros e seus respectivos campos; Linha 31 - o bloco try {} tenta executar tudo que estiver delimitado entre as chaves, nesse exemplo: da linha 33 at a 39; caso acorra erro vai para catch {} e executa a exceo; Linha 33 abre a conexo;

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.

, para isso daremos um

22.6.3. Cdigo do boto Listar

Figura 166 - Cdigo do boto Listar

186

22.6.3.1 - Explicao do cdigo do boto Listar

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.

, para isso daremos um

187

22.6.4. Cdigo do boto Apagar

Figura 167 - Cdigo do boto Apagar

22.6.4.1 - Explicao do cdigo do boto Apagar

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;

Linha 86 - criado um objeto de comando e passado os valores do SQL e da conexo;

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;

Linha 91 abre a conexo;

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;

Linha 105 fecha a conexo.

Digitaremos o seguinte cdigo no boto clique no boto onde ser inserido o cdigo.

, para isso daremos um duplo

22.6.5. Cdigo do boto Atualizar

Figura 168 - Cdigo do boto Atualizar

189

22.6.5.1 - Explicao do cdigo do boto Atualizar


Linha 112 verifica se existe alguma linha na Grade de Produtos (gridProduto); Linha 114 - caso o resultado da linha 138 seja verdadeira mostra uma mensagem; Linha 115 sai do fluxo com o comando return; Linha 118 criada uma varivel do tipo string com o comando SQL, o sinal de interrogao (?) o parmetro que representa cada campo dentro do comando; Linha 119 - criado um objeto de comando e passado os valores do SQL e da Conexo; Linhas 121, 122 e 123 - So adicionados os parmetros e seus respectivos campos; Linha 125 - o bloco try {} tenta executar tudo que estiver delimitado entre as chaves, nesse exemplo: da linha 127 at a 133; caso acorra erro vai para catch {} e executa a exceo; Linha 127 abre a conexo; Linhas 128, 129 - passamos os valores dos campos da tela para os parmetros; Linha 130 e 131 - (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 132 - executa o comando; Linha 133 mostra uma mensagem de confirmao; Linha 135 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 137 mostra a mensagem de erro; Linha 139 criado o bloco finally que ser executado mesmo que nada ocorra;

Linha 141 fecha a conexo.

190

22.6.6. - Explicao do cdigo do evento do Grid Produto

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).

Figura 169 - Cdigo do evento da Linha selecionada

Digitaremos o seguinte cdigo no boto clique no boto onde ser inserido o cdigo.

, para isso daremos um duplo

22.6.7. Cdigo do boto Buscar

Figura 170 - Cdigo do boto Buscar

191

22.6.7.1 - Explicao do cdigo do boto Buscar

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

22.7. TELA DE CADASTRO DE VENDA

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.

Figura 171 - Novo Formulrio

Figura 172 - Tela para nomear o formulrio

O seu layout deve ficar como na figura 173, logo abaixo. E devemos configurar as propriedades como no quadro 27.

193

Figura 173 - Tela de Cadastro de Cliente

Objeto frmCliente

Propriedade Name MinimizeBox Text BackColor

Valor frmVenda False Tela de Venda Control lblCliente 3; 5 Cliente: cbbCliente 3; 23 234; 22 lblProduto 3; 48 Produto:

Label1

Name Location Text

ComboBox1

Name Location Size

Label2

Name Location Text

194

ComboBox2

Name Location Size

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

Name Location Text

NumericUpDown

Name Location Size Value

Button1

Name Location Size BackColor Text

Button2

Name Location Size BackColor Text

DataGrid1

Name Location Size

Quadro 27 - Lista de Propriedades da Tela de Venda

195

Digitaremos o seguinte cdigo no boto um duplo clique no boto onde ser inserido o cdigo.

, para isso daremos

22.7.1. Cdigo do boto Inserir Item

Figura 174 - Cdigo do boto Inserir Item

22.7.1.1 - Explicao do cdigo do boto Inserir Item

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;

Linha 92 criado um objeto de comando e passado os valores do SQL e da Conexo;

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;

Linha 99 abre a conexo;

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.

, para isso daremos um

22.7.2. Cdigo do boto Listar

Figura 175 - Cdigo do boto Listar

197

22.7.2.1 - Explicao do cdigo do boto Listar

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

22.8. PROCEDIMENTOS DE PREENCHIMENTO DOS COMBOBOX

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.

22.8.1. Cdigo do Procedimento do ComboBox de Cliente

Figura 176 - Procedimento de Preenchimento do Combobox de Cliente

199

22.8.1.1. - Explicao do cdigo do Procedimento do ComboBox de Cliente

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

22.8.2. Cdigo do Procedimento do ComboBox de Produto

Figura 177 - Procedimento de Preenchimento do Combobox de Cliente

22.8.2.1. - Explicao do cdigo do Procedimento do ComboBox de Produto


Linha 58 - criada uma varivel do tipo string com o comando SQL; Linha 60 criado um objeto de comando que recebe o valor da varivel com o comando SQL; Linha 62 - criado um objeto de acesso / comando (Data Adapter) e passado o valor do Comando da linha 60; Linha 64 - criado um Data Set; Linha 66 - o bloco try {} tenta executar tudo que estiver delimitado entre as chaves, nesse exemplo da linha 68 at a 73; caso acorra erro vai para catch {} e executa a exceo;

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;

Linha 71 Atribui ao combobox o Data Source a tabela em memria do Data Set;

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.

22.8.3. Criao da Conexo - Tela de Vendas

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.

Figura 178 - Objeto de conexo

202

22.9. TELA PRINCIPAL

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.

Figura 179 - - Novo Formulrio

Figura 180 - Tela para nomear o formulrio

O seu layout deve ficar como na figura 181, logo abaixo. E devemos configurar as propriedades como no quadro 28 203

Figura 181 - Tela Principal

Objeto frmCliente

Propriedade Name MinimizeBox Text BackColor

Valor frmVenda False Aplicao de Vendas Control btnCliente 32; 23 184; 64 HighlightText Tela de Clientes Tahoma; 12pt; style=Bold

Button1

Name Location Size BackColor Text Font

204

Button2

Name Location Size BackColor Text Font

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

Name Location Size BackColor Text Font

Quadro 28 Lista de Propriedades da Tela Principal

22.9.1. Cdigo dos botes para chamada das telas

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.

23.1. ESTUDOS FUTUROS

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.

Lima, E; Reis E. C# .NET - Guia do Desenvolvedor.Rio de Janeiro,2002.

Moroni, H. Banco de Dados com C# e Visual Studio .NET 2005. So Paulo: Julio Battisti, 2005.

Moroni, H. Treinamento Profissional em C#. So Paulo: Digerati Books, 2006.

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.

Linha de Cdigo [S.l.: s.n.], 2008. Disponvel em: 210

< http://www.linhadecodigo.com.br/Default.aspx>. Acesso em: 15 ago. 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

APNDICE A - PRINCIPAIS COMANDOS - SQL- ANSI


CREATE TABLE Utilizado para criao de tabelas, abaixo vemos um exemplo.
CREATE TABLE CLIENTE (cd_Cliente(4) NOT NULL, nm_Cliente VARCHAR(100) NOT NULL);

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;

INSERT Utilizado para inserir dados em uma tabela.


INSERT INTO CLIENTE VALUES (1,'Nicolas Mancuso', '9898-9898');

UPDATE Utilizado para atualizar dados em uma tabela.


UPDATE CLIENTE SET nm_Cliente = 'NicolasFilipe Mancuso' WHERE cd_ClienteID = '1';

DELETE Utilizado para apagar dados em uma tabela.


DELETE FROM CLIENTE WHERE cd_Cliente = '1';

SELECT Utilizado para selecionar dados em uma tabela.


SELECT * FROM Cliente; Where cd_Cliente = 1

213