Hoje em dia as tecnologias de informação e comunicação, vulgarmente intituladas como TIC, são um lugar comum em casa, no escritório, na sala de aulas ou mesmo numa conversa de café. Com o advento da Internet, o computador, o instrumento central das TIC, tornou-se uma janela para o mundo, sendo possível obter qualquer tipo de informação à distância de um clique e comunicar remotamente com qualquer pessoa.
A nível profissional, as exigências do mercado obrigam a um acesso em tempo real à informação, factor primordial no sucesso empresarial. Outros factores como a mobilidade, consistência e integração da informação são importantes nesta sociedade global. É neste contexto, que surgem os dispositivos móveis, verdadeiros computadores de bolso, com boas capacidades de processamento, armazenamento e tecnologias de transmissão de dados. A plataforma Windows Mobile vem enriquecer o panorama do mundo móvel ao oferecer aos equipamentos, um conjunto de serviços base essenciais, que disponibilizam ao utilizador final, mecanismos promotores da produtividade, flexibilidade e consistência nos seus processos de trabalho. Neste contexto, estuda-se, na óptica do programador, a plataforma .NET, a sua Framework de desenvolvimento móvel (.NET Compact Framework 3.5), o seu ambiente de desenvolvimento integrado (Visual Studio 2008), a sua linguagem de programação (Visual Basic 9.0) e um conjunto de ferramentas e extensões que permitem a produção célere e consistente de software para equipamentos móveis, nomeadamente o SDK para o Windows Mobile 6.0.
| Principais Tópicos | Topo |
Ao longo do livro são abordados, entre outros, os seguintes temas:
| Público Alvo | Topo |
| O(s) Autor(es) | Topo |
Ricardo Queirós
Licenciado em Informática pelo Instituto Superior de Engenharia do Porto (ISEP)
e Mestrado em Informática pela Faculdade de Ciências da Universidade do Porto (FCUP).
Exerce a sua actividade como docente na Escola Superior de Estudos Industriais e
Gestão (ESEIG), em Vila do Conde, onde é responsável por disciplinas na área das
Linguagens e Técnicas de Programação e Bases de Dados. Paralelamente desenvolve
actividade científica nas áreas de Integração de Sistemas e de Engenharia de
Software no âmbito do Center for Research in Advanced Computing Systems (CRACS),
uma unidade de investigação associada ao INESC-Porto.
| Índice | Top |
| 0. CONSIDERAÇÕES PRÉVIAS | 1 | |||
| 0.1 Domínio do livro | 1 | |||
| 0.2 Requisitos | 2 | |||
| 0.3 Público-alvo | 2 | |||
| 0.4 Código fonte | 2 | |||
| 0.5 Convenções | 3 | |||
| 0.6 Organização do livro | 3 | |||
| 0.7 Suporte | 5 | |||
| 1. INTRODUÇÃO AO WINDOWS MOBILE | 7 | |||
| 1.1 Primeiros computadores portáteis | 10 | |||
| 1.2 Personal Digital Assistant | 12 | |||
| 1.3 Sistemas operativos e plataformas móveis | 15 | |||
| 1.3.1 Primeiras versões do Windows CE | 17 | |||
| 1.3.2 Plataformas Pocket PC e Smartphone | 20 | |||
| 1.3.3 Windows Mobile | 23 | |||
| 1.3.3.1 Windows Mobile 2003 | 24 | |||
| 1.3.3.2 Windows Mobile 5.0 | 24 | |||
| 1.3.3.3 Windows Mobile 6.0 | 26 | |||
| 1.3.3.4 Futuras versões | 29 | |||
| 1.3.3.5 Diferenças entre o Windows CE e o Windows Mobile | 31 | |||
| 1.3.4 Resumo da evolução e estatísticas | 33 | |||
| 1.4 Cenários de desenvolvimento | 34 | |||
| 2. PLATAFORMA MICROSOFT .NET | 37 | |||
| 2.1 .NET Compact Framework | 41 | |||
| 2.1.1 Versões | 41 | |||
| 2.1.2 Diferenças em relação à versão desktop | 43 | |||
| 2.1.3 Arquitectura | 45 | |||
| 2.1.4 Common Language Runtime | 45 | |||
| 2.1.5 Linguagem intermédia MSIL e o compilador JIT | 47 | |||
| 2.1.6 Garbage Collection | 50 | |||
| 2.1.7 Interoperabilidade de linguagens e tipos | 52 | |||
| 2.1.7.1 Tipos por valor | 53 | |||
| 2.1.7.2 Tipos por referência | 55 | |||
| 2.1.7.3 Classe System.Object | 57 | |||
| 2.1.8 Assemblies | 58 | |||
| 2.1.9 Biblioteca de classes FCL | 59 | |||
| 2.2 Visual Studio | 62 | |||
| 2.2.1 Versões e edições | 62 | |||
| 2.2.2 Características | 63 | |||
| 2.2.3 Instalação | 64 | |||
| 2.2.4 Suporte para a criação de aplicações Windows Mobile | 67 | |||
| 3. A MINHA PRIMEIRA APLICAÇÃO MOBILE | 69 | |||
| 3.1 Criação de um projecto Windows Mobile | 70 | |||
| 3.1.1 Desenho da interface gráfica | 73 | |||
| 3.1.2 Codificação | 77 | |||
| 3.1.3 Distribuição e execução | 79 | |||
| 3.2 Organização e configuração do projecto | 81 | |||
| 3.2.1 Solution Explorer | 81 | |||
| 3.2.2 Project Designer | 85 | |||
| 4. PROGRAMAÇÃO ORIENTADA AOS OBJECTOS | 87 | |||
| 4.1 História e enquadramento | 89 | |||
| 4.2 Conceitos fundamentais | 91 | |||
| 4.3 Encapsulamento | 91 | |||
| 4.3.1 Classes e Objectos | 92 | |||
| 4.3.2 Modificadores de acesso | 93 | |||
| 4.3.3 Campos | 94 | |||
| 4.3.4 Construtores | 95 | |||
| 4.3.4.1 Sobrecarga | 96 | |||
| 4.3.4.2 Por defeito | 97 | |||
| 4.3.4.3 Reutilização | 97 | |||
| 4.3.5 Finalizadores e o padrão Disposable | 98 | |||
| 4.3.6 Constantes | 101 | |||
| 4.3.7 Estáticas | 102 | |||
| 4.3.8 Propriedades | 103 | |||
| 4.3.9 Métodos | 105 | |||
| 4.3.9.1 Passagem de parâmetros | 105 | |||
| 4.3.9.2 Sobrecarga de métodos | 106 | |||
| 4.3.10 Tipos parciais | 107 | |||
| 4.3.11 Namespaces | 108 | |||
| 4.3.11.1 Referências | 109 | |||
| 4.3.11.2 Importações | 111 | |||
| 4.4 Reutilização | 112 | |||
| 4.4.1 Herança | 114 | |||
| 4.4.2 Polimorfismo | 116 | |||
| 4.4.2.1 Baseado em herança | 116 | |||
| 4.4.2.2 Baseado em interfaces | 119 | |||
| 4.4.3 Classes Abstractas e Seladas | 121 | |||
| 4.5 Class Designer | 122 | |||
| 5. VISUAL STUDIO E O DESENHO DE INTERFACES | 127 | |||
| 5.1 Ambiente de Trabalho | 128 | |||
| 5.1.1 Composição e Configuração | 128 | |||
| 5.1.1.1 Barras de Menus e Ferramentas | 129 | |||
| 5.1.1.2 Janelas de Documentos | 131 | |||
| 5.1.1.3 Janelas de Ferramentas | 134 | |||
| 5.1.2 Navegação e Posicionamento das janelas | 135 | |||
| 5.1.3 Exportação e Importação | 138 | |||
| 5.2 Windows Forms | 140 | |||
| 5.2.1 Propriedades de estilo | 142 | |||
| 5.2.2 Gestão e navegação | 146 | |||
| 5.2.3 Herança | 146 | |||
| 5.2.3.1 Criação do form principal | 152 | |||
| 5.2.3.2 Nível de visibilidade dos controlos | 154 | |||
| 5.2.3.3 Criação do form derivado | 155 | |||
| 5.3 Windows Forms Controls | 158 | |||
| 5.3.1 Controlos Panel e TabControl | 160 | |||
| 5.3.2 Controlos MonthCalendar e DataTimePicker | 162 | |||
| 5.3.3 Controlo WebBrowser | 168 | |||
| 5.3.4 Controlo LinkLabel | 173 | |||
| 5.3.5 Controlo Splitter | 174 | |||
| 5.4 Windows CE Forms Controls | 177 | |||
| 5.4.1 Controlo DocumentList | 177 | |||
| 5.4.2 Controlo Notification | 180 | |||
| 5.4.3 Gestão de input | 183 | |||
| 5.4.3.1 Controlo InputPanel | 184 | |||
| 5.4.3.2 Eventos do Teclado | 187 | |||
| 5.4.3.3 Suporte à Tabulação | 188 | |||
| 5.4.3.4 Controlo HardwareButton | 191 | |||
| 5.4.3.5 Soft keys | 193 | |||
| 5.5 Gestão de layout | 195 | |||
| 5.5.1 Desenho de Layout | 195 | |||
| 5.5.1.1 Modos | 195 | |||
| 5.5.1.2 Resumo e Suspensão | 197 | |||
| 5.5.2 Orientações e Resoluções de ecrã | 198 | |||
| 5.5.2.1 Orientação | 198 | |||
| 5.5.2.2 Resolução | 205 | |||
| 5.6 Boas Práticas no desenho de interfaces | 207 | |||
| 6. TESTE, DEBUGGING E GESTÃO DE ERROS | 209 | |||
| 6.1 Emulador | 210 | |||
| 6.1.1 Device Emulator 3.0 | 210 | |||
| 6.1.1.1 Principais características | 211 | |||
| 6.1.1.2 Configuração | 212 | |||
| 6.1.1.3Execução | 217 | |||
| 6.1.2 Device Emulator Manager | 217 | |||
| 6.1.2.1 Iniciação | 218 | |||
| 6.1.2.2 Organização | 218 | |||
| 6.1.2.3 Execução de acções | 219 | |||
| 6.1.2.4 Automação | 220 | |||
| 6.1.2.5 Conexão ActiveSync | 221 | |||
| 6.1.3 Cellular Emulator | 223 | |||
| 6.1.3.1 Execução e Associação ao Device Emulator | 224 | |||
| 6.1.3.2 Simulação de conexão GPRS | 225 | |||
| 6.1.4 Verificação do tipo de equipamento | 225 | |||
| 6.2 Erros | 227 | |||
| 6.2.1 Erros de compilação | 227 | |||
| 6.2.2 Erros de lógica | 231 | |||
| 6.2.3 Erros de execução | 231 | |||
| 6.3 Validação de dados | 233 | |||
| 6.3.1 Eventos de validação | 234 | |||
| 6.3.2 Funções e operadores | 236 | |||
| 6.4 Gestão estruturada de erros | 237 | |||
| 6.4.1 Estrutura Try…Catch…Finally | 237 | |||
| 6.4.2 Classe Exception | 239 | |||
| 6.4.3 Hierarquia de excepções | 241 | |||
| 6.4.3.1 Classe SystemException | 241 | |||
| 6.4.3.2 Classe ApplicationException | 243 | |||
| 6.4.4 Propagação de excepções | 244 | |||
| 6.4.5 Métodos de topo e gestão global de excepções | 246 | |||
| 6.4.6 Boas Práticas no tratamento de erros | 248 | |||
| 6.5 Testes Unitários | 248 | |||
| 6.5.1 Criação e Execução | 249 | |||
| 6.5.2 Ficheiros de Configuração de Testes | 253 | |||
| 6.6 Debugging | 255 | |||
| 6.6.1 Configuração | 255 | |||
| 6.6.2 Sessão de Debugging | 256 | |||
| 6.6.2.1 Controlo de execução | 258 | |||
| 6.6.2.2 Breakpoints simples e condicionais | 259 | |||
| 6.6.2.3 Tracepoints | 261 | |||
| 6.6.2.4 Anexação de processos ao debugger | 262 | |||
| 6.6.2.5 Excepções | 264 | |||
| 6.6.2.6 Janelas de debugging | 265 | |||
| 6.6.3 Ferramentas remotas | 267 | |||
| 6.6.3.1 Remote File Viewer | 268 | |||
| 6.6.3.2 Remote Registry Editor | 268 | |||
| 6.6.3.3 Remote Zoom In | 269 | |||
| 6.6.3.4 Remote Heap Walker | 269 | |||
| 6.6.3.5 Remote Process Viewer | 270 | |||
| 6.6.3.6 Remote Spy | 271 | |||
| 6.7 Logging e Avaliação de performance | 272 | |||
| 7. EMPACOTAMENTO, DISTRIBUIÇÃO E INSTALAÇÃO | 275 | |||
| 7.1 Empacotamento | 276 | |||
| 7.1.1 Projecto Smart Device CAB | 276 | |||
| 7.1.2 Global Assembly Cache | 280 | |||
| 7.1.3 Verificação e Instalação da Compact Framework | 281 | |||
| 7.1.4 Assinatura da aplicação e políticas de segurança | 284 | |||
| 7.2 Distribuição e Instalação | 287 | |||
| 8. PERSISTÊNCIA DE DADOS | 289 | |||
| 8.1 Ficheiros e Streams | 289 | |||
| 8.1.1 Gestão de pastas e ficheiros | 290 | |||
| 8.1.2 Leitura e escrita de ficheiros | 293 | |||
| 8.1.2.1 Classe FileStream | 294 | |||
| 8.1.2.2 Classes StreamReader e StreamWriter | 295 | |||
| 8.1.2.3 Classes BinaryReader e BinaryWriter | 300 | |||
| 8.2 SQL Server Compact 3.5 | 301 | |||
| 8.2.1 Instalação | 301 | |||
| 8.2.2 Características | 303 | |||
| 8.2.3 Arquitectura | 304 | |||
| 8.2.4 Usando o SSCE | 305 | |||
| 8.2.4.1 Acesso à origem de dados | 305 | |||
| 8.2.4.2 Criação e estruturação dos dados | 308 | |||
| 8.2.4.3 Adição da fonte de dados ao projecto | 310 | |||
| 8.2.4.4 Classes DataSet e SqlCeResultSet | 313 | |||
| 8.2.4.5 TableAdapter | 315 | |||
| 8.2.4.6 Geração dinâmica de Forms | 317 | |||
| 8.2.4.7 Vinculação de controlos gráficos | 320 | |||
| 8.2.4.8 Criação de uma GUI Master-Detail | 323 | |||
| 8.2.4.9 Consulta a múltiplas tabelas | 325 | |||
| 8.2.4.10 Tratamento de Excepções SSCE | 329 | |||
| 8.3 XML | 330 | |||
| 8.3.1 Introdução ao XML e XML Schema | 331 | |||
| 8.3.2 Namespace System.Xml | 335 | |||
| 8.3.2.1 Classe XmlDocument | 335 | |||
| 8.3.2.2 Classes XmlReader e XmlWriter | 338 | |||
| 8.3.2.3 Validação com o XML Schema | 340 | |||
| 8.3.2.4 Pesquisa com XPath | 341 | |||
| 8.3.2.5 Serialização de objectos | 344 | |||
| 8.3.3 XML Web Services | 348 | |||
| 8.3.3.1 Tecnologias associadas | 348 | |||
| 8.3.3.2 Criação de um cliente | 349 | |||
| 8.3.4 Boas práticas no uso do XML | 352 | |||
| 9. TÓPICOS AVANÇADOS | 355 | |||
| 9.1 Gestão de objectos | 355 | |||
| 9.1.1 Codificação | 356 | |||
| 9.1.1.1 Usando o Intellisense | 356 | |||
| 9.1.1.2 Code Snippets | 358 | |||
| 9.1.2 Agrupamento | 362 | |||
| 9.1.2.1 Colecções | 362 | |||
| 9.1.2.2 Genéricos | 366 | |||
| 9.1.3 Acesso | 370 | |||
| 9.1.3.1 Language Integrated Query | 370 | |||
| 9.1.4 Extensão | 374 | |||
| 9.1.4.1 Métodos de extensão | 374 | |||
| 9.1.4.2 Sobrecarga de operadores | 375 | |||
| 9.1.5 Documentação | 382 | |||
| 9.1.5.1 Documentação XML | 382 | |||
| 9.2 Programação Multimédia | 385 | |||
| 9.2.1 Introdução | 386 | |||
| 9.2.2 Namespace System.drawing | 387 | |||
| 9.2.3 Formas | 389 | |||
| 9.2.4 Texto | 391 | |||
| 9.2.4.1 Medição e moldagem | 392 | |||
| 9.2.4.2 Rotação | 394 | |||
| 9.2.5 Imagens | 397 | |||
| 9.2.5.1 Desenho de Bitmaps | 398 | |||
| 9.2.5.2 Transparência | 402 | |||
| 9.2.5.3 Desenho de um Splash Screen | 403 | |||
| 9.2.6 Som | 407 | |||
| 9.3 Conectividade | 407 | |||
| 9.3.1 Windows Communication Foundation | 407 | |||
| 9.3.2 Comunicação HTTP | 409 | |||
| 9.3.2.1 Classes WebRequest e WebResponse | 409 | |||
| 9.3.2.2 Compressão de dados | 411 | |||
| 9.3.3 Sockets | 413 | |||
| 9.3.3.1 Classe TcpClient | 414 | |||
| 9.3.3.2 Classe TcpListener | 415 | |||
| 9.3.4 GPS | 417 | |||
| 9.3.5 Infravermelhos | 420 | |||
| 9.3.6 Bluetooth e Wi-Fi | 422 | |||
| 10. USANDO O SDK WINDOWS MOBILE 6 | 425 | |||
| 10.1 Chamadas telefónicas | 426 | |||
| 10.2 Configuração do dispositivo | 427 | |||
| 10.3 Janelas de diálogo | 429 | |||
| 10.3.1 Classe CameraCaptureDialog | 430 | |||
| 10.3.2 Classe SelectPictureDialog | 431 | |||
| 10.3.3 Classe ChooseContactDialog | 433 | |||
| 10.4 Pocket Outlook | 435 | |||
| 10.4.1 Classe Appointment | 438 | |||
| 10.4.1.1 Lembretes | 440 | |||
| 10.4.1.2 Receptores | 441 | |||
| 10.4.1.3 Recorrência | 443 | |||
| 10.4.2 Classe Task | 445 | |||
| 10.4.3 Classe Contact | 447 | |||
| 10.4.4 Messaging | 449 | |||
| 10.4.4.1 Classe EmailMessage | 449 | |||
| 10.4.4.2 Classe SmsMessage | 453 | |||
| 10.4.4.3 Intercepção de mensagens SMS | 455 | |||
| 10.5 Estado e notificações | 460 | |||
| ÍNDICE REMISSIVO | 465 | |||
| Páginas online | Topo |
Página 10
Página 11
Página 12
Página 26
Página 27
Página 28
Página 29
Página 30
Página 426
Página 427
| Download | Topo |
Obtenha aqui o material complementar do livro.
Use como "Username" a primeira palavra a verde no texto da contracapa do seu livro.
Use como "Password" a última palavra de texto da página 294 do seu livro.
Nota : As palavras deverão ser inseridas em minúsculas e sem acentos, excluindo-se para a sua selecção o título da obra, os logótipos (da colecção e outros), endereços web e o nome dos autores.