diÇÃo fca – editora de informática, lda. av. praia da ... normalização ..... ..... 159 6.4...

24

Upload: lydat

Post on 29-Jun-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172
Page 2: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

EDIÇÃO FCA – Editora de Informática, Lda. Av. Praia da Vitória, 14 A – 1000-247 Lisboa Tel: +351 213 511 448 [email protected] www.fca.pt DISTRIBUIÇÃO Lidel – Edições Técnicas, Lda. Rua D. Estefânia, 183, R/C Dto. – 1049-057 Lisboa Tel: +351 213 511 448 [email protected] www.lidel.pt LIVRARIA Av. Praia da Vitória, 14 A – 1000-247 Lisboa Tel: +351 213 511 448 * Fax: +351 213 522 684 [email protected] Copyright © 2017, FCA – Editora de Informática, Lda. ISBN edição impressa: 978-972-722-868-3 1.ª edição impressa: julho 2017 Impressão e acabamento: Cafilesa – Soluções Gráficas, Lda. – Venda do Pinheiro Depósito Legal n.º 428410/17 Capa: José M. Ferrão – Look-Ahead

Todos os nossos livros passam por um rigoroso controlo de qualidade, no entanto aconselhamos a consulta periódica do nosso site (www.fca.pt) para fazer o download de eventuais correções. Não nos responsabilizamos por desatualizações das hiperligações presentes nesta obra, que foram verificadas à data de publicação da mesma. Os nomes comerciais referenciados neste livro têm patente registada.

Reservados todos os direitos. Esta publicação não pode ser reproduzida, nem transmitida, no todo ou em parte, por qualquerprocesso eletrónico, mecânico, fotocópia, digitalização, gravação, sistema de armazenamento e disponibilização de informação,sítio Web, blogue ou outros, sem prévia autorização escrita da Editora, exceto o permitido pelo CDADC, em termos de cópia privadapela AGECOP – Associação para a Gestão da Cópia Privada, através do pagamento das respetivas taxas.

Marcas Registadas de FCA – Editora de Informática, Lda. – ® ® ®

Page 3: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

©© FFCCAA –– EEddiittoorraa ddee IInnffoorrmmááttiiccaa

ÍÍNNDDIICCEE GGEERRAALL

PRÓLOGO ......................................................................................................... IX COMO UTILIZAR ESTE LIVRO ................................................................................. XI

PARTE I: TEÓRICO-PRÁTICA ................................................................................. 1

1. INTRODUÇÃO ................................................................................................... 3 1.1 Ambiente de desenvolvimento ...................................................................................................... 3 1.2 Sensibilização ao sistema de ajuda .............................................................................................. 11 1.3 Aplicações-consola ......................................................................................................................... 12 1.4 Convenções de código ................................................................................................................... 13 1.5 Módulos de classe .......................................................................................................................... 14 1.6 Declaração de variáveis ................................................................................................................. 15 1.7 Declaração de constantes .............................................................................................................. 18 1.8 Leitura de dados provenientes do utilizador ............................................................................. 18 1.9 Apresentação de dados ao utilizador .......................................................................................... 19 1.10 Comentários.................................................................................................................................... 20 1.11 Regras e convenções de nomenclatura ........................................................................................ 20 1.12 Fases de desenvolvimento de um programa .............................................................................. 21 1.13 Exercícios propostos ...................................................................................................................... 24

2. ELEMENTOS DE PROGRAMAÇÃO .......................................................................... 25 2.1 Tipos de dados ............................................................................................................................... 25 2.2 Declaração de variáveis ................................................................................................................. 31 2.3 Tabelas ............................................................................................................................................. 33 2.4 Operadores ..................................................................................................................................... 35 2.5 Estruturas de controlo ................................................................................................................... 38 2.6 Exercícios resolvidos ..................................................................................................................... 45 2.7 Exercícios propostos ...................................................................................................................... 49

3. PROGRAMAÇÃO ORIENTADA A OBJETOS ................................................................ 51 3.1 Conceitos gerais ............................................................................................................................. 51 3.2 Classes ............................................................................................................................................. 52 3.3 Herança ........................................................................................................................................... 60 3.4 Polimorfismo .................................................................................................................................. 62 3.5 Interfaces ......................................................................................................................................... 64 3.6 Exercícios resolvidos ..................................................................................................................... 65 3.7 Exercícios propostos ...................................................................................................................... 69

4. FUNÇÕES INTRÍNSECAS .................................................................................... 71 4.1 Funções matemáticas ..................................................................................................................... 71 4.2 Funções de texto ............................................................................................................................. 75 4.3 Funções de data e hora .................................................................................................................. 78 4.4 Funções de array ............................................................................................................................. 79

Page 4: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

CC## 77..00 CCOOMM VVIISSUUAALL SSTTUUDDIIOO –– CCUURRSSOO CCOOMMPPLLEETTOO

©© FFCCAA –– EEddiittoorraa ddee IInnffoorrmmááttiiccaa

IV

4.5 Funções de formatação .................................................................................................................. 80 4.6 Exercícios resolvidos ..................................................................................................................... 80 4.7 Exercícios propostos ...................................................................................................................... 85

5. WINDOWS FORMS .......................................................................................... 87 5.1 Apresentação .................................................................................................................................. 87 5.2 Criação de projetos ........................................................................................................................ 87 5.3 Caixas de diálogo ........................................................................................................................... 90 5.4 Controlos ......................................................................................................................................... 93 5.5 Convenções de nomenclatura .................................................................................................... 104 5.6 Objeto Form ................................................................................................................................... 104 5.7 Controlo Label ............................................................................................................................... 121 5.8 Controlo Button ............................................................................................................................ 126 5.9 Controlo TextBox .......................................................................................................................... 128 5.10 Controlos ComboBox e ListBox .................................................................................................... 133 5.11 Controlos CheckBox e RadioButton .............................................................................................. 140 5.12 Exercícios resolvidos ................................................................................................................... 142 5.13 Exercícios propostos .................................................................................................................... 155

6. MODELAÇÃO DE DADOS .................................................................................. 157 6.1 Sistemas de gestão de bases de dados ....................................................................................... 157 6.2 Estruturação de uma base de dados .......................................................................................... 158 6.3 Normalização ............................................................................................................................... 159 6.4 Modelo entidade-relação ............................................................................................................ 166 6.5 Exercícios resolvidos ................................................................................................................... 172 6.6 Exercícios propostos .................................................................................................................... 181

7. LINQ ........................................................................................................ 185 7.1 O que é a LINQ? ........................................................................................................................... 185 7.2 Apresentação de um caso real .................................................................................................... 185 7.3 Exercícios resolvidos ................................................................................................................... 202 7.4 Exercícios propostos .................................................................................................................... 207

8. TAREFAS DE SISTEMA OPERATIVO ..................................................................... 209 8.1 Gestão do sistema de ficheiros ................................................................................................... 209 8.2 Deteção de software ...................................................................................................................... 217 8.3 Deteção de hardware ..................................................................................................................... 219 8.4 Gestão de processos ..................................................................................................................... 221 8.5 Definições regionais e globalização ........................................................................................... 223 8.6 Exercícios resolvidos ................................................................................................................... 223 8.7 Exercícios propostos .................................................................................................................... 229

9. ACESSO A FICHEIROS DE TEXTO ....................................................................... 231 9.1 Introdução ..................................................................................................................................... 231 9.2 Acesso e manipulação de ficheiros ............................................................................................ 231 9.3 Exercícios resolvidos ................................................................................................................... 235 9.4 Exercícios propostos .................................................................................................................... 241

Page 5: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

ÍÍNNDDIICCEE GGEERRAALL

©© FFCCAA –– EEddiittoorraa ddee IInnffoorrmmááttiiccaa

V

10. IMPRESSÃO ............................................................................................... 243 10.1 Sensibilização ambiental ............................................................................................................. 243 10.2 Classe PrintDocument .................................................................................................................. 244 10.3 Exercício resolvido ....................................................................................................................... 244 10.4 Exercícios propostos .................................................................................................................... 250

11. PROGRAMAÇÃO FUNCIONAL ........................................................................... 251 11.1 Noções gerais ................................................................................................................................ 251 11.2 Criação de projetos ...................................................................................................................... 251 11.3 Primeira aplicação ........................................................................................................................ 252 11.4 Arquitetura F# .............................................................................................................................. 253 11.5 Exercício resolvido........................................................................................................................ 258 11.6 Exercícios propostos ..................................................................................................................... 259

12. INTEGRAÇÃO COM XML ................................................................................ 261 12.1 Apresentação ................................................................................................................................ 261 12.2 Sintaxe XML ................................................................................................................................. 261 12.3 Criação de um ficheiro XML ...................................................................................................... 263 12.4 Manipulação de ficheiros XML .................................................................................................. 264 12.5 Formatação ................................................................................................................................... 275 12.6 Validação ....................................................................................................................................... 277 12.7 Exercícios resolvidos ................................................................................................................... 281 12.8 Exercícios propostos .................................................................................................................... 285

13. WINDOWS PRESENTATION FOUNDATION .......................................................... 287 13.1 Noções gerais ................................................................................................................................ 287 13.2 Criação de projetos ...................................................................................................................... 287 13.3 Classe Window .............................................................................................................................. 288 13.4 Classe Grid .................................................................................................................................... 292 13.5 Multimédia ................................................................................................................................... 295 13.6 Exercícios resolvidos ................................................................................................................... 319 13.7 Exercícios propostos .................................................................................................................... 326

14. DESENVOLVIMENTO PARA A MICROSOFT STORE .................................................. 327 14.1 Interface de utilizador ................................................................................................................. 327 14.2 Primeira aplicação ........................................................................................................................ 328 14.3 Framing .......................................................................................................................................... 336 14.4 Exercícios resolvidos ................................................................................................................... 341 14.5 Exercícios propostos .................................................................................................................... 353

15. PROGRAMAÇÃO MÓVEL ................................................................................ 355 15.1 Xamarin ......................................................................................................................................... 355 15.2 Emuladores ................................................................................................................................... 355 15.3 “Hello World” .............................................................................................................................. 356 15.4 Exercícios propostos .................................................................................................................... 359

16. ASP.NET ................................................................................................ 361 16.1 Conceitos gerais ........................................................................................................................... 361 16.2 Criação de projetos ...................................................................................................................... 362

Page 6: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

CC## 77..00 CCOOMM VVIISSUUAALL SSTTUUDDIIOO –– CCUURRSSOO CCOOMMPPLLEETTOO

©© FFCCAA –– EEddiittoorraa ddee IInnffoorrmmááttiiccaa

VI

16.3 ASPX .............................................................................................................................................. 363 16.4 ASPX.CS ........................................................................................................................................ 364 16.5 Execução ........................................................................................................................................ 365 16.6 Exercício resolvido ....................................................................................................................... 366 16.7 Exercícios propostos .................................................................................................................... 370

17. INTEGRAÇÃO COM O OFFICE .......................................................................... 371 17.1 Introdução ..................................................................................................................................... 371 17.2 Integração com o Excel ................................................................................................................ 371 17.3 Integração com o Word ............................................................................................................... 382 17.4 Integração com o Powerpoint .................................................................................................... 385 17.5 Integração com o Access ............................................................................................................. 390 17.6 Integração com o Outlook ........................................................................................................... 393 17.7 Exercícios propostos .................................................................................................................... 396

18. USABILIDADE ............................................................................................ 397 18.1 Interfaces ....................................................................................................................................... 397 18.2 As 10 heurísticas de Nielsen ....................................................................................................... 401 18.3 Design de aplicações desktop ........................................................................................................ 403 18.4 Design de aplicações móveis ....................................................................................................... 410 18.5 Design de aplicações Web ........................................................................................................... 411

PARTE II: PROJETOS E ANEXO ........................................................................... 413

19. PROJETO I: WINDOWS FORMS ....................................................................... 415 19.1 Desenho da base de dados .......................................................................................................... 415 19.2 Desenvolvimento da interface .................................................................................................... 419 19.3 Exercícios propostos .................................................................................................................... 448

20. PROJETO II: WINDOWS PRESENTATION FOUNDATION ......................................... 449 20.1 Objetivo ......................................................................................................................................... 449 20.2 Criação do projeto ........................................................................................................................ 450 20.3 Desenho da base de dados .......................................................................................................... 450 20.4 Desenvolvimento da interface .................................................................................................... 451 20.5 Exercícios propostos .................................................................................................................... 462

21. PROJETO III: MICROSOFT STORE ................................................................... 463 21.1 Criação do projeto ........................................................................................................................ 463 21.2 Importação das bandeiras ........................................................................................................... 463 21.3 Desenho da interface e programação ........................................................................................ 464 21.4 Resultado ...................................................................................................................................... 467 21.5 Exercícios propostos .................................................................................................................... 468

22. PROJETO IV: PROGRAMAÇÃO MÓVEL ............................................................... 469 22.1 Objetivo ......................................................................................................................................... 469 22.2 Regras ............................................................................................................................................ 469 22.3 Desenvolvimento da interface .................................................................................................... 471 22.4 Programação do jogo ................................................................................................................... 473 22.5 Exercícios propostos .................................................................................................................... 488

Page 7: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

ÍÍNNDDIICCEE GGEERRAALL

©© FFCCAA –– EEddiittoorraa ddee IInnffoorrmmááttiiccaa

VII

23. PROJETO V: ASP.NET E OFFICE .................................................................... 489 23.1 Objetivo ......................................................................................................................................... 489 23.2 Importação das imagens (estrelas) ............................................................................................ 489 23.3 Desenho da interface ................................................................................................................... 491 23.4 Implementação da pesquisa ....................................................................................................... 492 23.5 Exercícios propostos .................................................................................................................... 496

A. ANEXO: TABELAS AUXILIARES E COMPLEMENTOS ................................................. 497 A.1 Ambiente integrado ..................................................................................................................... 497 A.2 Sequências de escape .................................................................................................................... 499 A.3 Máscaras de formatação .............................................................................................................. 500 A.4 Máscaras de introdução .............................................................................................................. 501 A.5 Relação de tipos de dados ........................................................................................................... 501 A.6 Códigos ASCII .............................................................................................................................. 502

GLOSSÁRIO DE TERMOS – PORTUGUÊS EUROPEU/PORTUGUÊS DO BRASIL ...................... 505

ÍNDICE REMISSIVO ........................................................................................... 507

Page 8: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

©© FFCCAA –– EEddiittoorraa ddee IInnffoorrmmááttiiccaa

Page 9: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

©© FFCCAA –– EEddiittoorraa ddee IInnffoorrmmááttiiccaa

PPRRÓÓLLOOGGOO

“A melhor maneira de predizer o futuro é inventá-lo.”

Alan Kay

Durante o desenvolvimento da plataforma .NET, a Microsoft formou uma equipa liderada por Anders Hejlsberg1 para criar uma nova linguagem que desse suporte às bibliotecas de objetos e que conseguisse ultrapassar alguns obstáculos relacionados com a implementação desta tecnologia em diferentes ambientes. No ano 2000 foi apresentada a linguagem de programação C#2, tendo sido descrita como uma evolução superior da C3.

Influenciada pelas linguagens C++4 e Java5, a versão 1.0 da C# obteve grande popularidade junto da comunidade informática quando a Microsoft decidiu incluí-la no pacote de ferramentas de desenvolvimento Visual Studio .NET 2002. Após um ano, a empresa anunciou o lançamento do Visual Studio .NET 2003, que incluiu o suporte para dispositivos portáteis e respetivos sistemas operativos (Windows Compact Edition6 e Pocket PC7).

Devido ao crescente sucesso do Visual Studio, a C# tornou-se rapidamente uma das linguagens mais utilizadas em todo o mundo, pois as software houses depressa conse-guiram identificar as enormes vantagens de combinar a estabilidade e versatilidade desta nova linguagem com a elevada produtividade e simplicidade típica das ferramentas da Microsoft.

1 Engenheiro de software dinamarquês (Copenhaga, 1960), responsável pelo desenvolvimento das

linguagens de programação Delphi e Turbo Pascal.

2 Pronuncia-se see sharp (combinação da letra cê e do símbolo cardinal, em inglês).

3 Linguagem de programação especificamente projetada para o sistema operativo UNIX. Foi desenvolvida, em 1972, pelo norte-americano Dennis Ritchie (Nova Iorque, 1941).

4 Linguagem de programação baseada em C, com novos e importantes recursos tecnológicos. Foi desenvolvida, na década de 1980, pelo dinamarquês Bjarne Stroustrop (Arhus, 1950).

5 Plataforma (e linguagem de programação) criada pela Sun Microsystems, na década de 1990.

6 Sistema operativo lançado pela Microsoft, em setembro de 1996, especialmente desenhado para pequenos dispositivos, como PDA e smartphones; é frequentemente abreviado para Windows CE.

7 Variante do sistema operativo Windows CE desenhada especificamente para telemóveis.

Page 10: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

CC## 77..00 CCOOMM VVIISSUUAALL SSTTUUDDIIOO –– CCUURRSSOO CCOOMMPPLLEETTOO

©© FFCCAA –– EEddiittoorraa ddee IInnffoorrmmááttiiccaa

X

A versão 2.0 da C# foi lançada com o Visual Studio 2005, a versão 3.0 com o Visual Studio 2008, a versão 4.0 com o Visual Studio 2010, a versão 5.0 com o Visual Studio 2012 e a versão 6.0 com o Visual Studio 2015. Atualmente, a C# pode ser encontrada na versão 7.0, estando completamente integrada no Visual Studio 2017 e trazendo consigo, para além de melhoramentos significativos ao nível do desenvolvimento de aplicações para a Microsoft Store8, a possibilidade de se criarem aplicações para plata-formas móveis concorrentes do Windows Mobile9, como o Android10 e o iOS11.

Curiosamente, a C# combina duas das minhas grandes paixões: a programação e a música. Segundo consta, “C#” acolheu uma inspiração musical, pois “C” representa a nota Dó e o cardinal (#) representa um semitom acima da nota Dó. Simplificando, e para os menos entendidos nesta matéria, será um som que podemos situar entre as notas Dó e Ré. Esta ideia insólita surgiu da tentativa de elevar a linguagem C a um patamar de evolução que transcendesse o já existente (o da linguagem C++); na minha opinião, e como músico amador que sou, o resultado foi, para além de curioso, bastante original e inspirador.

Pretendo, com este livro, para além de partilhar grande parte do conhecimento que adquiri ao longo da minha vida profissional e académica, espelhar o reconhecimento do trabalho que tenho desenvolvido em conjunto com os editores e com todos os profissionais da FCA, a quem gostaria de deixar um agradecimento especial pelas palavras e gestos de apoio que recebi ao longo de mais de uma década de edições.

Henrique Loureiro

8 Plataforma de distribuição de aplicações em formato digital integrada nos sistemas operativos

Windows 8 e superiores.

9 Edição do sistema operativo Windows para dispositivos móveis, desenvolvida pela Microsoft; foi lançada em 2015 e é a sucessora do Windows Phone.

10 Plataforma baseada em Linux, atualmente produzida pela Google Inc.; é o sistema operativo móvel mais utilizado em todo o mundo.

11 Sistema operativo móvel da Apple Inc., surgido em 2007; foi originalmente desenvolvido para o iPhone, mas o iOS também é usado atualmente em iPod, iPad e iWatch.

Page 11: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

© FCA – Editora de Informática

CCOOMMOO UUTTIILLIIZZAARR EESSTTEE LLIIVVRROO

Com o objetivo de facilitar uma aprendizagem rápida e eficaz, tomamos a liber-dade de sugerir um conjunto de indicações às quais o leitor deverá dar especial atenção de forma a tirar o maior proveito deste livro.

Os diferentes temas foram encadeados pedagógica e naturalmente, pelo que não é, de todo, recomendado que progrida sem a compreensão das matérias abordadas em capítulos anteriores. A tabela que se segue apresenta um resumo dos principais conteúdos tratados nesta obra.

CAPÍTULO TÍTULO PRINCIPAIS TEMAS/ASSUNTOS

1 Introdução

Apresentação do ambiente de desenvolvimento Criação e organização de projetos Sensibilização ao sistema de ajuda Convenções de código e de nomenclatura Criação de módulos e procedimentos Utilização de variáveis e constantes Desenvolvimento de aplicações-consola simples

2 Elementos de Programação

Tipos de dados e literais Declaração e utilização de tabelas de dados (arrays) Expressões e operadores Recurso a estruturas de controlo (condições e ciclos)

3 Programação Orientada a Objetos

Paradigmas da programação orientada a objetos Noção de classe e grupo Atributos, métodos, mensagens, estados e eventos

4 Funções Intrínsecas

Funções matemáticas Funções de texto Funções de data e hora Funções de array Funções de formatação

5 Windows Forms

Caixas de diálogo padrão de sistema operativo Utilização de controlos gerais Manipulação de propriedades Recurso a métodos Programação por eventos

6 Modelação de Dados Normalização Modelo entidade-relação

Page 12: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

CC## 77..00 CCOOMM VVIISSUUAALL SSTTUUDDIIOO –– CCUURRSSOO CCOOMMPPLLEETTOO

©© FFCCAA –– EEddiittoorraa ddee IInnffoorrmmááttiiccaa

XII

CAPÍTULO TÍTULO PRINCIPAIS TEMAS/ASSUNTOS

7 LINQ

Acesso ao SQL Server (local) Criação de classes DataContext Consulta a dados e obtenção de listagens Manipulação da informação (inserção, eliminação e atua-lização de registos)

8 Tarefas de Sistema Operativo

Gestão completa do sistema de ficheiros do Windows (criação, eliminação, cópia, deslocação e renomeação de diretórios e ficheiros) Deteção de software Deteção de hardware Gestão de processos Gestão de serviços Definições regionais e globalização

9 Acesso a Ficheiros de Texto

Criação de ficheiros de texto Abertura e fecho de ficheiros de texto Leitura por recurso à classe StreamReader Escrita por recurso à classe StreamWriter Encriptação Aplicação prática

10 Impressão

Sensibilização ambiental Utilização de controlos específicos para impressão Paginação Criação de relatórios completos

11 Programação Funcional

Arquitetura da linguagem F# Integração com C#

12 Integração com XML

Leitura de ficheiros XML Escrita em ficheiros XML Formatação XML Validação XML

13 Windows Presentation Foundation

Recurso à linguagem XAML para o desenvolvimento de interfaces gráficas Utilização de controlos gerais Aplicação multimédia Databinding

14 Desenvolvimento para a Microsoft Store

Recurso à linguagem XAML para o desenvolvimento de interfaces gráficas Idealização de layouts através de framing Utilização de controlos gerais Acesso a recursos disponíveis na Web

15 Programação Móvel Xamarin Forms Desenvolvimento para Android, iOS e Windows Mobile

Page 13: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

CCOOMMOO UUTTIILLIIZZAARR EESSTTEE LLIIVVRROO

© FCA – Editora de Informática

XIII

CAPÍTULO TÍTULO PRINCIPAIS TEMAS/ASSUNTOS

16 ASP.NET

Modelo Web Forms Criação de páginas Code-behind Utilização de controlos Request/Response

17 Integração com o Office

Princípios da Interop Integração com o Word Integração com o Excel Integração com o Powerpoint Integração com o Access Integração com o Outlook

18 Usabilidade Heurísticas de Nielsen Normas ISO Adaptação a aplicações desktop, móveis e Web

São ainda incluídos cinco projetos integralmente resolvidos, que irão permitir aos leitores solidificarem os conhecimentos adquiridos ao longo da obra (tabela seguinte).

CAPÍTULO TÍTULO: TEMA/ASSUNTO

19 Projeto I: Windows Forms 20 Projeto II: Windows Presentation Foundation 21 Projeto III: Microsoft Store 22 Projeto IV: Programação Móvel 23 Projeto V: ASP.NET e Office

Sugerimos também a resolução dos exercícios propostos, que são apresentados no final dos capítulos; nesta fase, aconselhamos que os resolva por mera consulta do livro e das dicas apresentadas no Anexo – Ajuda à Resolução dos Exercícios Propostos, dispo-nível na página do livro em www.fca.pt (até este se esgotar ou ser publicada nova edição atualizada ou com alterações), e que depois compare os seus resultados com as soluções que disponibilizamos também na página do livro em www.fca.pt (nos mesmos moldes).

CCOONNVVEENNÇÇÕÕEESS

Associado a esta estrutura criou-se um conjunto de convenções com o objetivo de facilitar a compreensão das matérias.

EEXXEEMMPPLLOO

Apresentação de ações teórico-práticas resolvidas na íntegra.

Page 14: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

CC## 77..00 CCOOMM VVIISSUUAALL SSTTUUDDIIOO –– CCUURRSSOO CCOOMMPPLLEETTOO

©© FFCCAA –– EEddiittoorraa ddee IInnffoorrmmááttiiccaa

XIV

CCÓÓDDIIGGOO

Todos os excertos de código são apresentados no mesmo formato, sendo frequente a junção de um comentário adicional a cinza:

string nome; //Declaração de uma variável

SSIINNTTAAXXEE

Explicação de como deve escrever as instruções e as palavras-chave da linguagem C# para que as mesmas sejam devidamente compiladas.

AANNÁÁLLIISSEE

Interpretação teórica de um bloco de código e explicação do seu objetivo.

Sempre que aparecer esta apresentação gráfica, isso significa que são fornecidas ao leitor dicas, isto é, informações úteis e complementares sobre a matéria que, essencialmente, permitem tornar as tarefas mais fáceis.

Sempre que necessário, aparecem pequenas notas com descrição complementar à matéria tratada nessa secção, com o objetivo de fornecer ao leitor esclarecimentos adicionais, embora não essenciais, sobre a matéria.

GGLLOOSSSSÁÁRRIIOO DDEE TTEERRMMOOSS –– PPOORRTTUUGGUUÊÊSS EEUURROOPPEEUU//PPOORRTTUUGGUUÊÊSS DDOO BBRRAASSIILL

Para facilitar a interpretação do texto por parte dos leitores brasileiros, incluímos um glossário de outros termos correspondentes que, embora não estejam presentes na interface de utilizador do Visual Studio, são utilizados pelo Autor na explicação das matérias. Este glossário pode ser consultado no final do livro.

SSOOFFTTWWAARREE UUTTIILLIIZZAADDOO

Este livro foi escrito com base na edição Community do Visual Studio 2017 e na edição Professional do sistema operativo Windows 10, não se prevendo que venham a ocorrer alterações significativas entre estas versões e eventuais updates.

Consulte o Guia de Instalação, disponível na página do livro em www.fca.pt, para obter informações detalhadas acerca dos componentes de software complementares e dos respetivos processos de instalação e configuração.

Page 15: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

© FCA – Editora de Informática

2111111 11PPRROOGGRRAAMMAAÇÇÃÃOO FFUUNNCCIIOONNAALL

Neste capítulo iremos focar os conceitos inerentes à programação funcional, com a apresen-tação de alguns exemplos escritos em F#. Serão também enunciados os procedimentos necessários para a integração direta de código F# em projetos C#.

11.1 NNOOÇÇÕÕEESS GGEERRAAIISS F# é uma linguagem de programação funcional, o que significa que o desenvolvi-

mento computacional é encarado como uma avaliação de funções matemáticas (podemos dizer que as aplicações consistem basicamente em funções que recebem outras funções como entrada de informação). Em contraste com as linguagens de programação imperati-vas, tais como as linguagens C# e Java, que se focam em variáveis e mudanças no estado da aplicação, na programação funcional as variáveis são tratadas como funções, sendo uma função a geradora de um único valor de retorno e podendo, eventualmente, servir- -se de parâmetros de entrada para que a operação de cálculo seja devidamente efetuada.

Embora as linguagens de programação funcional tendam a ser utilizadas numa vertente mais académica do que propriamente no desenvolvimento comercial de software, têm vindo a adquirir uma importância significativa em diversas áreas, tais como pesquisa científica, multimédia e telecomunicações. É bom lembrar que existem outras linguagens de programação funcional, sendo que uma das mais relevantes é a linguagem LISP1.

11.2 CCRRIIAAÇÇÃÃOO DDEE PPRROOJJEETTOOSS Os projetos baseados em F# são criados no Visual Studio com a mesma facilidade

com que se criam aplicações-consola, existindo templates específicos para o efeito. Assim, e após o pedido de criação de um novo projeto através da opção de menu habitual File New Project, deverá escolher o item Console Application, da categoria de templates Visual F# (Figura 11.1).

1 Acrónimo de ListProcessing; linguagem de programação funcional, concebida por John McCarthy,

em 1958, com forte aplicação nas áreas da indústria e da inteligência artificial.

Page 16: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

CC## 77..00 CCOOMM VVIISSUUAALL SSTTUUDDIIOO –– CCUURRSSOO CCOOMMPPLLEETTOO

©© FFCCAA –– EEddiittoorraa ddee IInnffoorrmmááttiiccaa

252

FFIIGGUURRAA 1111..11 – Criação de um projeto F# (aplicação-consola)

Este é o template utilizado no desenvolvimento de aplicações F# que possuem uma utilização mais persistente. Para além deste tipo de projetos, pode ainda criar bibliotecas baseadas em F#, que são perfeitamente reutilizáveis em projetos de natureza diversa. A criação de bibliotecas F# e a sua integração em projetos C# será explicada em detalhe na secção 11.5.

Após a criação do projeto, deverá surgir o código contido no ficheiro Program.fs (acessível via Solution Explorer): [<EntryPoint>]

let main argv =

printfn "%A" argv

0

AANNÁÁLLIISSEE

Em F#, as funções são tratadas como tipos de dados – podemos declarar e utilizar uma função do mesmo modo como fazemos com qualquer variável. A função argv (declarada com a palavra-chave let e com o modificador main) recebe como parâmetro de entrada um valor, o qual é impresso (printfn) no ecrã logo que a função seja invocada. No final da execução, é retornado o valor 0 como código de saída.

Geralmente, as aplicações F# prescindem de um ponto de entrada (<EntryPoint>) específico, até porque o compilador executa todas as instruções contidas no módulo de programação principal, normalmente, no sentido de cima para baixo.

11.3 PPRRIIMMEEIIRRAA AAPPLLIICCAAÇÇÃÃOO Nesta secção iremos criar uma aplicação muito simples que consiste em somar

dois valores numéricos e mostrar o resultado ao utilizador na janela de consola. Assim, aceda ao módulo Program.fs que criou na secção anterior e edite-o cf. o Código seguinte.

CCÓÓDDIIGGOO let x = 2 let y = 3 let z = x + y printfn "A soma entre %i e %i é %i " x y z

Page 17: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

PPRROOGGRRAAMMAAÇÇÃÃOO FFUUNNCCIIOONNAALL

© FCA – Editora de Informática

253

AANNÁÁLLIISSEE

Foram declaradas três funções: x e y correspondem ao primeiro e ao último membros da operação, respetivamente; e z corresponde à soma. Através da função printfn, intrínseca da linguagem F#, “disparou-se” o resultado para a janela de consola (aqui incluiu-se %i para que os valores sejam devidamente convertidos do tipo de dados int para string e passados pela mesma ordem com que surgem na instrução).

Por predefinição, uma função sem tipo de dados definido é assumida como tendo um retorno do tipo int (número inteiro). Consulte na secção 11.4.3 os tipos de dados mais utilizados em F#.

TTEESSTTEE

Para testar este pequeno exemplo, execute o comando de menu Debug Start Without Debugging (Figura 11.2). Isto permite que a janela de consola permaneça no ecrã, para que seja possível visualizar o resultado ("A soma entre 2 e 3 é 5").

FFIIGGUURRAA 1111..22 – Pedido de execução do projeto F#

A secção 11.4 irá apresentar os elementos de programação mais relevantes da linguagem F# para que o leitor fique apto a criar as suas primeiras aplicações e a entender a forma como o código se articula.

11.4 AARRQQUUIITTEETTUURRAA FF## São muitas as semelhanças que podem ser encontradas entre as liguagens C# e F# em

termos dos elementos de programação basilares (funções, tipos de dados e estruturas de controlo). Sirva-se do projeto que criou na secção 11.2 para testar todos os exemplos apresentados ao longo desta secção.

11.4.1 CCOOMMEENNTTÁÁRRIIOOSS

Tal como na linguagem C#, os comentários ao código F# podem ser de linha completa ou aplicados a múltiplas linhas.

Page 18: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

CC## 77..00 CCOOMM VVIISSUUAALL SSTTUUDDIIOO –– CCUURRSSOO CCOOMMPPLLEETTOO

©© FFCCAA –– EEddiittoorraa ddee IInnffoorrmmááttiiccaa

254

EEXXEEMMPPLLOO let x = 2 //Comentário de linha completa let y = x * 2 //Comentário de linha completa (* comentário de múltiplas linhas -> devolver resultado*) printfn "Resultado: %i" y

11.4.2 EENNTTRRAADDAA EE SSAAÍÍDDAA DDEE IINNFFOORRMMAAÇÇÃÃOO

Vimos que, em aplicações-consola escritas em C#, é possível fazer-se uso dos métodos padrão de leitura (Read e ReadLine) e escrita (Write e WriteLine) de dados que o objeto Console proporciona. Em F# é possível fazer-se o mesmo, sendo que a diferença reside na importação da namespace System – em C# emprega-se a palava-chave using, mas em F# recorre-se à palavra-chave open (cf. Exemplo).

EEXXEEMMPPLLOO open System //Importação da namespace //Entrada de dado Console.Write("Valor: ") let x = Console.ReadLine() //Cálculo (dobro de x) let y = (int) x * 2 //Saída de resultado Console.WriteLine ("Resultado: " + y.ToString())

AANNÁÁLLIISSEE

Nesta aplicação solicita-se ao utilizador a introdução de um valor (x), através do método Readline, para que seja determinado o seu dobro. Como o método Readline devolve uma cadeia alfanumérica de carateres, aquando do cálculo o dado de entrada foi convertido diretamente para int. No final, foi utilizado o método ToString para fazer o inverso, isto é, para converter o valor inteiro obtido no resultado do cálculo para o tipo de dados string.

11.4.3 TTIIPPOOSS DDEE DDAADDOOSS

Como referido anteriormente, quando uma função não é declarada como sendo de um tipo de dados específico, é assumido o tipo de dados int. Então, para declarar explicitamente uma função, deverá escrever o tipo de dados seguido do nome da função, separados por dois pontos.

Page 19: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

© FCA – Editora de Informática

2111666 88AASSPP..NNEETT

Este capítulo introduz os conceitos inerentes ao desenvolvimento de aplicações e páginas da Web com recurso à tecnologia ASP.NET. Serão estudadas as metodologias que permitem a integração da ASP.NET com a linguagem C# presente no Visual Studio.

16.1 CCOONNCCEEIITTOOSS GGEERRAAIISS ASP.NET1 é uma tecnologia, não uma linguagem de programação. Através do

Visual Studio e de uma linguagem integrada na framework .NET, como a C#, é permitido o desenvolvimento de aplicações e páginas dinâmicas, especificamente destinadas à Web, com elevada interatividade. Estas aplicações requerem um servidor IIS2 para que possam ser executadas em ambientes Windows; no entanto, existem projetos alternativos, como o Mono, capazes de executar aplicações baseadas em ASP.NET em plataformas Linux.

No seio da ASP.NET existem dois modelos de computação totalmente distintos – o Web Forms e o Model View Controller (MVC) –, mas que podem ser combinados e utili-zados em simultâneo: o Web Forms é o modelo tradicional e o mais simples de programar (a criação de aplicações segue a mesma filosofia da tecnologia Windows Forms, mantendo--se a conhecida técnica de drag-and-drop para proceder ao desenho imediato dos elementos gráficos da página); por seu lado, o MVC constitui um modelo alternativo, tendo surgido da necessidade de se obter um código mais “limpo” e reutilizável, com recurso à separação em diferentes camadas dos dados, da visualização e dos controlos. O modelo Web Forms foi o primeiro a facultar o desenvolvimento Web através da plataforma .NET e é atual-mente o mais utilizado.

As secções 16.2 a 16.4 apresentam os procedimentos iniciais envolvidos na criação de projetos ASP.NET segundo o modelo Web Forms.

1 Do inglês Active Server Pages; é a plataforma por excelência da Microsoft para o desenvolvimento de

aplicações Web. 2 Do inglês Internet Information Services; é o servidor da Microsoft que permite o alojamento e a

execução de páginas e aplicações da Web em ambientes Windows.

Page 20: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

CC## 77..00 CCOOMM VVIISSUUAALL SSTTUUDDIIOO –– CCUURRSSOO CCOOMMPPLLEETTOO

© FCA – Editora de Informática

362

16.2 CCRRIIAAÇÇÃÃOO DDEE PPRROOJJEETTOOSS A criação de projetos ASP.NET baseados em Web Forms segue a mesma filosofia

da criação de projetos de outra natureza no Visual Studio. Assim, considere o procedi-mento que apresentamos em seguida:

1) Execute o comando de menu File New Project.

2) Na caixa de diálogo New Project (Figura 16.1), selecione o template ASP.NET Web Application, atribua o nome ao projeto e confirme em OK.

FFIIGGUURRAA 1166..11 –– Criação de um projeto ASP .NET

3) Na caixa de diálogo New ASP.NET Web Application (Figura 16.2), selecione o modelo Web Forms e confirme a criação do projeto em OK.

FFIIGGUURRAA 1166..22 –– Seleção do modelo Web Forms

No caso das aplicações que requerem autenticações especiais, poderá configurar à partida o acesso por parte dos utilizadores, clicando em Change Authentication.

Page 21: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

AASSPP..NNEETT

© FCA – Editora de Informática

363

16.3 AASSPPXX O Visual Studio cria um site básico, que consiste num conjunto de páginas

agregadas num container, designado por master. Para este exemplo em concreto, e como pretendemos criar uma aplicação mínima, com apenas uma página, considere a abertura do ficheiro Default.aspx, a partir do Solution Explorer (Figura 16.3). Este ficheiro corres-ponde, normalmente, à página de entrada no site (home page).

FFIIGGUURRAA 1166..33 –– Acesso ao ficheiro Default.aspx

Iremos, então, criar uma página simples, contendo apenas um controlo básico, para apresentação de um pequeno excerto de texto. Assim, edite o conteúdo da página Default.aspx cf. Código seguinte.

CCÓÓDDIIGGOO <%@ Page Language="C#" AutoEventWireup="true"

CodeBehind="Default.aspx.cs" Inherits="ASPWebForms._Default" %> <html> <head runat="server"> <title>Home Page</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Label runat="server" id="labelTeste"></asp:Label> </div> </form> </body> </html>

Page 22: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

CC## 77..00 CCOOMM VVIISSUUAALL SSTTUUDDIIOO –– CCUURRSSOO CCOOMMPPLLEETTOO

© FCA – Editora de Informática

364

AANNÁÁLLIISSEE

Como pode constatar, os ficheiros com extensão aspx são praticamente idênticos aos ficheiros regulares da HTML, compostos pelas habituais tags <html>, <head> e <body>. A principal diferença encontrada reside na presença de uma diretiva que é incluída no topo do ficheiro e que instrui o browser de que a página contém código C# associado (comummente designado por code-behind). Os controlos específicos de ASP são distinguidos pela tag <asp:> (no presente caso foi incluído um controlo da categoria Label num formulário HTML). A secção 16.4 demonstra como associar código C# à página ASP.

16.4 AASSPPXX..CCSS O ficheiro com extensão aspx.cs contém a parte lógica da aplicação e é o que, de

facto, estabelece a ponte entre os elementos gráficos e a dinâmica da página, tornando-a interativa. Aceda ao ficheiro Default.aspx.cs a partir do Solution Explorer (Figura 16.4).

FFIIGGUURRAA 1166..44 –– Acesso ao ficheiro Default.aspx.cs

Na secção 16.3 foi incluído um controlo da categoria Label, porém, sem qualquer texto associado. Pretende-se, agora, definir um texto inicial quando a página é carregada; para tal, edite o conteúdo do ficheiro Default.aspx.cs cf. Código seguinte.

CCÓÓDDIIGGOO using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace ASPWebForms { public partial class _Default : Page

Page 23: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

AASSPP..NNEETT

© FCA – Editora de Informática

365

{ protected void Page_Load(object sender, EventArgs e) { LabelTeste.Text = "Web Forms (1º exemplo)"; } } }

AANNÁÁLLIISSEE

Para além da habitual importação de namespaces predefinidas em projetos desta natureza, foi incluída no evento Load da página (classe Page) uma instrução que permite definir o texto (propriedade Text) do controlo Label.

16.5 EEXXEECCUUÇÇÃÃOO O Visual Studio deteta automaticamente todos os browsers que estão instalados no

seu dispositivo, podendo testar em diferentes softwares e dispositivos (via emulação) o comportamento das páginas que for desenvolvendo. Assim, para executar a aplicação ASP.NET:

1) Escolha o browser ou o emulador pretendido do conjunto de itens de teste disponíveis (Figura 16.5).

FFIIGGUURRAA 1166..55 –– Pedido de execução

2) Deverá visualizar o conteúdo da página Default.aspx no browser/emulador que selecionou na alínea 1 (a Figura 16.6 mostra o resultado da execução da página no Microsoft Edge).

FFIIGGUURRAA 1166..66 –– Resultado da execução

Page 24: DIÇÃO FCA – Editora de Informática, Lda. Av. Praia da ... Normalização ..... ..... 159 6.4 Modelo entidade-relação ..... ..... 166 6.5 Exercícios resolvidos ..... ..... 172

CC## 77..00 CCOOMM VVIISSUUAALL SSTTUUDDIIOO –– CCUURRSSOO CCOOMMPPLLEETTOO

© FCA – Editora de Informática

366

16.6 EEXXEERRCCÍÍCCIIOO RREESSOOLLVVIIDDOO Pretende-se simular o registo simples num site, por introdução do nome e identi-

ficação do sexo de uma pessoa. Após recolha da informação numa primeira página, o botão Submeter deverá redirecionar o utilizador para uma segunda página de boas-vindas, conforme o esquema representado na Figura 16.7.

FFIIGGUURRAA 1166..77 –– Esquema de comunicação entre duas páginas ASP

Deverá criar um projeto no Visual Studio com o nome DadosWebForms, exatamente como fez na secção 16.2.

16.6.1 RREEQQUUEESSTT

A primeira página (Default.aspx) vai conter os controlos necessários para a recolha da informação e será responsável pelo envio de dados (Request) a uma segunda página, a qual será criada na secção 16.6.2.

CCÓÓDDIIGGOO ((DDEEFFAAUULLTT..AASSPPXX)) <%@ Page Title="Request" Language="C#" AutoEventWireup="true"

CodeBehind="Default.aspx.cs" Inherits="DadosWebForms._Default" %>

<html>

<head runat="server">

<title>Request Page</title>

</head>

<body>

<form id="form1" runat="server">

<div>

<b><u><h2>

<asp:Label id="LabelIntro" runat="server"/>

</b></u></h2>

<p>

<asp:Label id="LabelNome" runat="server"/>

<asp:TextBox id="TextBoxNome" runat="server"/>

<p>

<asp:Label id="LabelSexo" runat="server"/>

<asp:DropDownList id="DropDownListSexo" runat="server"/>

<p><p>