Não nos responsabilizamos por desatualizações das hiperligações presentes nesta obra, que foram verificadas à data de publicação da mesma.

Documentos relacionados
Programação em C#.Net 4.0 com Mobile Apps

Material III-Bimestre Introdução e conceitos fundamentais da Linguagem C#

Programação em VB.Net 4.0 com Mobile Apps

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 4 PROF. EMILIO PARMEGIANI

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET. quarta-feira, 17 de outubro de 12

1.5 PROGRAMAÇÃO DE JOGOS EM AMBIENTE DE REA LIDADE AUMENTADA AMBIENTES INTEGRADOS DE DESENVOLVIMENTO DE JOGOS 19

ASP.Net 4.0 com Mobile Apps

Integração por Web Services

Programa +Produtividade +Segurança

Sumário INTRODUÇÃO AO DESENVOLVIMENTO COM VISUAL STUDIO. Oportunidades de desenvolvimento com Visual Basic 2013 e a Windows Store 3

Microsoft Visual Studio Community 2013

ESCOLA SECUNDÁRIA MANUEL DA FONSECA, SANTIAGO DO CACÉM GRUPO DISICPLINAR - Informática ANO: 10º TICP ANO LECTIVO: 2008/2009 p.1/6

Framework.NET. Linguagem de Programação III. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento Acadêmico de Informática Campus Monte Castelo

Guia e Utilização do Visual Studio.NET 2003

Conteúdo de Formação

Se pretende uma carreira promissora como programador esta é a formação por onde deve começar!

No final deste curso, saberás criar programas através da linguagem de programação Java.

PRDS C#.Net Alexandre L. Silva

Registo de Token de Software: SafeNet MobilePASS+ para Apple ios

Catálogo BloguesEDU Apoio

Como instalar Office 365 no seu computador

Impressão e acabamento: Inova 1ª edição: Junho de 2006 ISBN: Depósito legal:

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias

Formação ASP.NET MVC com C#

Redes Sociais. Informação sujeita a alterações Última atualização: 20/11/2015 Versão ETPICK 1.

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 3 PROF. EMILIO PARMEGIANI

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

GRUPO: Rafael Igor Vanderlei Vieira

Cadeira de Tecnologias de Informação. Ano lectivo 2009/2010. Sites dinâmicos. Com Expression Web TI2009/10 EWD_1. Filipa Pires da Silva (2009)

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET. Prof. Emilio Parmegiani

Introdução... 1 I FUNCIONALIDADES BÁSICAS... 3

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

Sistemas de Informação (SI) Infraestrutra de Tecnologia da Informação (TI): Software

Tarefa Orientada 4 Aplic. Manutenção de Produtos - ComboBox

Se pretende uma carreira promissora como programador esta é a formação por onde deve começar!

Manual de Utilizador. Instruções gerais de utilização SIGRHE

5 Infraestrutura de TI

BMW i Wallbox Connect Manual de atualização. Índice. Informações gerais 4. Download do ficheiro de atualização 5

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 5 PROF. EMILIO PARMEGIANI

Introdução Capítulo 1: Um Olhar sobre as Funcionalidades e Interface do Microsoft Excel

Isabel Borges e Teresa Gôja. Ilustrações de Liliana Lourenço

HIT Sistema de formação intuitivo para a programação NC

Índice. 1. Introdução Instalação: Eclipse e Android Primeira aplicação em Android... 11

20 Escola Digital Manual do Utilizador Aluno

Conteúdo de Formação

YourFonts Manual e Guia de exploração do YourFonts para utilização em contexto de Educação Visual e Tecnológica. António Oliveira

VISÃO GERAL. Faça a gestão da segurança de rede até 250 postos através de uma consola baseada na cloud.

McAfee epolicy Orchestrator Pre-Installation Auditor 2.0.0

Conceito e objectivo. destaques deste produto. How To ARES POS

Notícias para dispositivos móveis: Aplicações Web e Nativas. Marco Oliveira LabCom/IT Outubro de 2009 [N4MD - News For Mobile Devices]

Sistema Operativo em Ambiente Gráfico. Área de trabalho

As primeiras versões do windows eram constituídas por 16 bits sendo essas : -Windows 1.0 -Windows 2.0 -Windows 3.x

Introdução ao IDE Netbeans (Programação Java)

Algoritmia e Programação APROG. Tecnologia JAVA. IDE Netbeans. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

DISTRIBUINDO SUA APLICAÇÃO

A linguagem C (visão histórica)

O que é a assinatura digital?... 3

Microsoft Office

2-Introdução e Conceitos Básicos das TIC

Manual de Utilizador (V2.0.8) Uma Empresa Certificada ISO 9001 e ISO 27001

1 - Ambiente de desenvolvimento

Escrever scripts de PHP com HTML

Síntese da Planificação da Disciplina de TIC - 9º Ano

1) DADOS DA OBRA: Programando em Java 2 Teoria e Aplicações Rui Rossi dos Santos 2004 Axcel Books (

Manual de utilizador

ARES COM CÁLCULOS ELEMENTARES COM EXCEL 74 EXERCÍCIOS

Conteúdo de Formação

Europass Curriculum Vitae

Técnico de Gestão e Programação de Sistemas Informáticos

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

igrpweb Índice gráfico Cliente NOSi igrpweb Referência Versão 1.00 Status

ADELAIDE CARVALHO. Cadernos de Excel

Laboratório 01 NetBeans

Desenvolvimento de Aplicações Móveis com HTML5

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

Tarefa Orientada 3 Aplic. Manutenção de Produtos Text Box

Manual de Instalação v7.60

MÓDULO 3 PÁGINAS WEB. Criação de Páginas Web

Tutorial da ferramenta de prototipação Pencil Project (Versão resumida) Prof. Moacyr Franco Neto

Interatividade. Limitado Reativa Coativa. Alargado Coativa Proativa

Web Presentation Patterns - Controllers

Assunto 2 - Software. Prof. Miguel Damasco

Tecnologias de Desenvolvimento de Páginas web

14/08/2009. Módulo 4

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS

Guia da Definição de Wi-Fi

Aula 11 Introdução ao Java Script

FORMAÇÃO DE MICROSOFT WORD Mário de Almeida Pedro, M. Sc. Janeiro 2014

BIBLIOTECA ANACOM MANUAL DO UTILIZADOR

Modulo 2 Gestão de Base

Manual de Criação de Proposta

REALING - Plataforma Online de Reabilitação da Linguagem SOBRE

Especialização Apps para a Internet em Visual Studio 2017 EDIÇÕES 2017 RIO TINTO

Se pretende uma carreira promissora como programador, esta é a formação por onde deve começar!

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO

PROGRAMA. Unidade Curricular: Informática

Ambiente Educacional Interativo Móvel para atividade em sala de aula 1

Transcrição:

EDIÇÃO FCA Editora de Informática, Lda. Av. Praia da Vitória, 14 A 1000-247 Lisboa Tel: +351 213 511 448 fca@fca.pt 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 lidel@lidel.pt www.lidel.pt LIVRARIA Av. Praia da Vitória, 14 A 1000-247 Lisboa Tel: +351 213 511 448 * Fax: +351 213 522 684 livraria@lidel.pt 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 Marcas Registadas de FCA Editora de Informática, Lda. 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 qualquer processo 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 privada pela AGECOP Associação para a Gestão da Cópia Privada, através do pagamento das respetivas taxas.

ÍNDICE GERAL 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

IV C# 7.0 COM VISUAL STUDIO CURSO COMPLETO 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

ÍNDICE GERAL 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

VI C# 7.0 COM VISUAL STUDIO CURSO COMPLETO 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

ÍNDICE GERAL 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

PRÓLOGO 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 Hejlsberg 1 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 C 3. Influenciada pelas linguagens C++ 4 e Java 5, 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 Edition 6 e Pocket PC 7 ). 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 conseguiram 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.

X C# 7.0 COM VISUAL STUDIO CURSO COMPLETO 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 Store 8, a possibilidade de se criarem aplicações para plata-formas móveis concorrentes do Windows Mobile 9, como o Android 10 e o ios 11. 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.

COMO UTILIZAR ESTE LIVRO Com o objetivo de facilitar uma aprendizagem rápida e eficaz, tomamos a liberdade 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 2 3 Elementos de Programação Programação Orientada a Objetos 4 Funções Intrínsecas 5 Windows Forms 6 Modelação de Dados 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 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) Paradigmas da programação orientada a objetos Noção de classe e grupo Atributos, métodos, mensagens, estados e eventos Funções matemáticas Funções de texto Funções de data e hora Funções de array Funções de formatação 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 Normalização Modelo entidade-relação

XII C# 7.0 COM VISUAL STUDIO CURSO COMPLETO CAPÍTULO TÍTULO PRINCIPAIS TEMAS/ASSUNTOS 7 LINQ 8 9 Tarefas de Sistema Operativo Acesso a Ficheiros de Texto 10 Impressão 11 Programação Funcional 12 Integração com XML 13 14 Windows Presentation Foundation Desenvolvimento para a Microsoft Store 15 Programação Móvel 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 atualização de registos) 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 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 Sensibilização ambiental Utilização de controlos específicos para impressão Paginação Criação de relatórios completos Arquitetura da linguagem F# Integração com C# Leitura de ficheiros XML Escrita em ficheiros XML Formatação XML Validação XML Recurso à linguagem XAML para o desenvolvimento de interfaces gráficas Utilização de controlos gerais Aplicação multimédia Databinding 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 Xamarin Forms Desenvolvimento para Android, ios e Windows Mobile

COMO UTILIZAR ESTE LIVRO XIII CAPÍTULO TÍTULO PRINCIPAIS TEMAS/ASSUNTOS 16 ASP.NET 17 Integração com o Office 18 Usabilidade Modelo Web Forms Criação de páginas Code-behind Utilização de controlos Request/Response 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 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, disponí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). CONVENÇÕES Associado a esta estrutura criou-se um conjunto de convenções com o objetivo de facilitar a compreensão das matérias. EXEMPLO Apresentação de ações teórico-práticas resolvidas na íntegra.

XIV C# 7.0 COM VISUAL STUDIO CURSO COMPLETO CÓDIGO 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 SINTAXE Explicação de como deve escrever as instruções e as palavras-chave da linguagem C# para que as mesmas sejam devidamente compiladas. ANÁLISE 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. GLOSSÁRIO DE TERMOS PORTUGUÊS EUROPEU/PORTUGUÊS DO BRASIL 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. SOFTWARE UTILIZADO 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.

211 1PROGRAMAÇÃO FUNCIONAL Neste capítulo iremos focar os conceitos inerentes à programação funcional, com a apresentaçã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 NOÇÕES GERAIS F# é uma linguagem de programação funcional, o que significa que o desenvolvimento 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 imperativas, 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 LISP 1. 11.2 CRIAÇÃO DE PROJETOS 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.

252 C# 7.0 COM VISUAL STUDIO CURSO COMPLETO FIGURA 11.1 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 ANÁLISE 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 PRIMEIRA APLICAÇÃO 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. CÓDIGO let x = 2 let y = 3 let z = x + y printfn "A soma entre %i e %i é %i " x y z

PROGRAMAÇÃO FUNCIONAL 253 ANÁLISE 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#. TESTE 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"). FIGURA 11.2 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 ARQUITETURA F# 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 COMENTÁRIOS Tal como na linguagem C#, os comentários ao código F# podem ser de linha completa ou aplicados a múltiplas linhas.

254 C# 7.0 COM VISUAL STUDIO CURSO COMPLETO EXEMPLO 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 ENTRADA E SAÍDA DE INFORMAÇÃO 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). EXEMPLO 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()) ANÁLISE 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 TIPOS DE DADOS 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.

216 8ASP.NET 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 CONCEITOS GERAIS ASP.NET 1 é 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 IIS 2 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 utilizados 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 é atualmente 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.

362 C# 7.0 COM VISUAL STUDIO CURSO COMPLETO 16.2 CRIAÇÃO DE PROJETOS 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 procedimento 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. FIGURA 16.1 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. FIGURA 16.2 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.

ASP.NET 363 16.3 ASPX 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 corresponde, normalmente, à página de entrada no site (home page). FIGURA 16.3 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. CÓDIGO <%@ 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>

364 C# 7.0 COM VISUAL STUDIO CURSO COMPLETO ANÁLISE 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 ASPX.CS 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). FIGURA 16.4 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. CÓDIGO 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

ASP.NET 365 } { } protected void Page_Load(object sender, EventArgs e) { LabelTeste.Text = "Web Forms (1º exemplo)"; } ANÁLISE 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 EXECUÇÃO 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). FIGURA 16.5 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). FIGURA 16.6 Resultado da execução

366 C# 7.0 COM VISUAL STUDIO CURSO COMPLETO 16.6 EXERCÍCIO RESOLVIDO Pretende-se simular o registo simples num site, por introdução do nome e identificaçã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. FIGURA 16.7 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 REQUEST 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. CÓDIGO (DEFAULT.ASPX) <%@ 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>