• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
24
0
0

Texto

(1)
(2)

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

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.

(3)

©

©FFCCAA––EEddiittoorraaddeeIInnffoorrmmááttiiccaa

Í

Í

N

N

D

D

I

I

C

C

E

E

G

G

E

E

R

R

A

A

L

L

PRÓLOGO ... IX

COMO UTILIZAR ESTE LIVRO ... XI

PARTEI: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)

C

C

#

#

7

7

.

.

0

0

CCOOMM

V

V

ISISUUAALL

S

S

TUTUDDIIOO

C

C

URURSSOO

C

C

OMOMPPLLEETTOO © ©FFCCAA––EEddiittoorraaddeeIInnffoorrmmáá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

(5)

Í

Í

NDNDIICCEE

G

G

ERERAALL © ©FFCCAA––EEddiittoorraaddeeIInnffoorrmmáá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

(6)

C

C

#

#

7

7

.

.

0

0

CCOOMM

V

V

ISISUUAALL

S

S

TUTUDDIIOO

C

C

URURSSOO

C

C

OMOMPPLLEETTOO © ©FFCCAA––EEddiittoorraaddeeIInnffoorrmmáá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

PARTEII: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

(7)

Í

Í

NDNDIICCEE

G

G

ERERAALL

©

©FFCCAA––EEddiittoorraaddeeIInnffoorrmmáá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

(8)

©

(9)

©

©FFCCAA––EEddiittoorraaddeeIInnffoorrmmááttiiccaa

P

P

R

R

Ó

Ó

L

L

O

O

G

G

O

O

“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

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.

(10)

C

C

#

#

7

7

.

.

0

0

CCOOMM

V

V

ISISUUAALL

S

S

TUTUDDIIOO

C

C

URURSSOO

C

C

OMOMPPLLEETTOO

©

©FFCCAA––EEddiittoorraaddeeIInnffoorrmmáá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

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

(11)

© FCA – Editora de Informática

C

C

O

O

M

M

O

O

U

U

T

T

I

I

L

L

I

I

Z

Z

A

A

R

R

E

E

S

S

T

T

E

E

L

L

I

I

V

V

R

R

O

O

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

(12)

C

C

#

#

7

7

.

.

0

0

CCOOMM

V

V

ISISUUAALL

S

S

TUTUDDIIOO

C

C

URURSSOO

C

C

OMOMPPLLEETTOO

©

©FFCCAA––EEddiittoorraaddeeIInnffoorrmmáá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

(13)

C

C

OMOMOO

U

U

TTIILLIIZZAARR

E

E

STSTEE

L

L

IIVVRROO

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

C

C

O

O

N

N

V

V

E

E

N

N

Ç

Ç

Õ

Õ

E

E

S

S

Associado a esta estrutura criou-se um conjunto de convenções com o objetivo de

facilitar a compreensão das matérias.

E

E

XEXEMMPPLLOO

(14)

C

C

#

#

7

7

.

.

0

0

CCOOMM

V

V

ISISUUAALL

S

S

TUTUDDIIOO

C

C

URURSSOO

C

C

OMOMPPLLEETTOO © ©FFCCAA––EEddiittoorraaddeeIInnffoorrmmááttiiccaa XIV

C

C

ÓDÓDIIGGOO

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

S

S

ININTTAAXXEE

Explicação de como deve escrever as instruções e as palavras-chave da

linguagem C# para que as mesmas sejam devidamente compiladas.

A

A

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

G

G

L

L

O

O

S

S

S

S

Á

Á

R

R

I

I

O

O

D

D

E

E

T

T

E

E

R

R

M

M

O

O

S

S

P

P

O

O

R

R

T

T

U

U

G

G

U

U

Ê

Ê

S

S

E

E

U

U

R

R

O

O

P

P

E

E

U

U

/

/

P

P

O

O

R

R

T

T

U

U

G

G

U

U

Ê

Ê

S

S

D

D

O

O

B

B

R

R

A

A

S

S

I

I

L

L

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.

S

S

O

O

F

F

T

T

W

W

A

A

R

R

E

E

U

U

T

T

I

I

L

L

I

I

Z

Z

A

A

D

D

O

O

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.

(15)

© FCA – Editora de Informática

2

1

1

1

1

1

1

11

P

P

RO

R

OG

G

R

R

AM

A

MA

ÇÃ

ÃO

O

F

F

U

U

N

N

C

C

I

I

O

O

N

N

A

A

L

L

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

N

N

O

O

Ç

Ç

Õ

Õ

E

E

S

S

G

G

E

E

R

R

A

A

I

I

S

S

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 LISP

1

.

11.2

C

C

R

R

I

I

A

A

Ç

Ç

Ã

Ã

O

O

D

D

E

E

P

P

R

R

O

O

J

J

E

E

T

T

O

O

S

S

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,

(16)

C

C

#

#

7

7

.

.

0

0

CCOOMM

V

V

ISISUUAALL

S

S

TUTUDDIIOO

C

C

URURSSOO

C

C

OMOMPPLLEETTOO © ©FFCCAA––EEddiittoorraaddeeIInnffoorrmmááttiiccaa 252 F

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

A

A

NÁNÁ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

P

P

R

R

I

I

M

M

E

E

I

I

R

R

A

A

A

A

P

P

L

L

I

I

C

C

A

A

Ç

Ç

Ã

Ã

O

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

C

ÓÓDDIIGGOO

let x = 2 let y = 3 let z = x + y

(17)

P

P

RROOGGRRAAMMAAÇÇÃÃOO

F

F

UUNNCCIIOONNAALL

© FCA – Editora de Informática 253

A

A

NÁNÁ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#.

T

T

ESESTTEE

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"

).

F

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

A

A

R

R

Q

Q

U

U

I

I

T

T

E

E

T

T

U

U

R

R

A

A

F

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

C

C

O

O

M

M

E

E

N

N

T

T

Á

Á

R

R

I

I

O

O

S

S

Tal como na linguagem C#, os comentários ao código F# podem ser de linha

completa ou aplicados a múltiplas linhas.

(18)

C

C

#

#

7

7

.

.

0

0

CCOOMM

V

V

ISISUUAALL

S

S

TUTUDDIIOO

C

C

URURSSOO

C

C

OMOMPPLLEETTOO © ©FFCCAA––EEddiittoorraaddeeIInnffoorrmmááttiiccaa 254

E

E

XXEEMMPPLLOO

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

E

E

N

N

T

T

R

R

A

A

D

D

A

A

E

E

S

S

A

A

Í

Í

D

D

A

A

D

D

E

E

I

I

N

N

F

F

O

O

R

R

M

M

A

A

Ç

Ç

Ã

Ã

O

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

E

E

XEXEMMPPLLOO

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

A

A

NÁNÁ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

T

T

I

I

P

P

O

O

S

S

D

D

E

E

D

D

A

A

D

D

O

O

S

S

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.

(19)

© FCA – Editora de Informática

2

1

1

1

6

6

6

88

A

A

S

S

P

P

.

.

N

N

E

E

T

T

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

C

C

O

O

N

N

C

C

E

E

I

I

T

T

O

O

S

S

G

G

E

E

R

R

A

A

I

I

S

S

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

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

(20)

C

C

#

#

7

7

.

.

0

0

CCOOMM

V

V

ISISUUAALL

S

S

TUTUDDIIOO

C

C

URURSSOO

C

C

OMOMPPLLEETTOO

© FCA – Editora de Informática 362

16.2

C

C

R

R

I

I

A

A

Ç

Ç

Ã

Ã

O

O

D

D

E

E

P

P

R

R

O

O

J

J

E

E

T

T

O

O

S

S

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.

F

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

F

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

(21)

A

A

S

S

P

P

.

.

N

N

E

E

T

T

© FCA – Editora de Informática 363

16.3

A

A

S

S

P

P

X

X

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

F

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

C

C

ÓDÓDIIGGOO

<%@ 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>

(22)

C

C

#

#

7

7

.

.

0

0

CCOOMM

V

V

ISISUUAALL

S

S

TUTUDDIIOO

C

C

URURSSOO

C

C

OMOMPPLLEETTOO

© FCA – Editora de Informática 364

A

A

NÁNÁ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

A

A

S

S

P

P

X

X

.

.

C

C

S

S

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

F

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

C

ÓDÓDIIGGOO using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace ASPWebForms {

(23)

A

A

S

S

P

P

.

.

N

N

E

E

T

T

© FCA – Editora de Informática 365 {

protected void Page_Load(object sender, EventArgs e) {

LabelTeste.Text = "Web Forms (1º exemplo)"; }

} }

A

A

NÁNÁ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

E

E

X

X

E

E

C

C

U

U

Ç

Ç

Ã

Ã

O

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

F

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

F

(24)

C

C

#

#

7

7

.

.

0

0

CCOOMM

V

V

ISISUUAALL

S

S

TUTUDDIIOO

C

C

URURSSOO

C

C

OMOMPPLLEETTOO

© FCA – Editora de Informática 366

16.6

E

E

X

X

E

E

R

R

C

C

Í

Í

C

C

I

I

O

O

R

R

E

E

S

S

O

O

L

L

V

V

I

I

D

D

O

O

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.

F

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

R

R

E

E

Q

Q

U

U

E

E

S

S

T

T

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

C

ÓDÓDIIGGOO

(

(

D

D

EFEFAAUULLTT

.

.

ASASPPXX

)

)

<%@ 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>

Referências

Documentos relacionados

O Museu Digital dos Ex-votos, projeto acadêmico que objetiva apresentar os ex- votos do Brasil, não terá, evidentemente, a mesma dinâmica da sala de milagres, mas em

nhece a pretensão de Aristóteles de que haja uma ligação direta entre o dictum de omni et nullo e a validade dos silogismos perfeitos, mas a julga improcedente. Um dos

Equipamentos de emergência imediatamente acessíveis, com instruções de utilização. Assegurar-se que os lava- olhos e os chuveiros de segurança estejam próximos ao local de

Tal será possível através do fornecimento de evidências de que a relação entre educação inclusiva e inclusão social é pertinente para a qualidade dos recursos de

Com o objetivo de compreender como se efetivou a participação das educadoras - Maria Zuíla e Silva Moraes; Minerva Diaz de Sá Barreto - na criação dos diversos

Completado este horário (09h do dia 24 de fevereiro), a organização encerra os revezamentos e fecha a área de troca, não sendo mais permitida a entrada de nenhum atleta

Gisele Lima Dos Santos 7,0 Maria Gabriela de Freitas Rodrigues 8,0 André Lima de Souza 10,0 Lucas Marques da Silva 9,0 Química de. Polímeros Heloise Ribeiro Moreira Lima 5,0

17 CORTE IDH. Caso Castañeda Gutman vs.. restrição ao lançamento de uma candidatura a cargo político pode demandar o enfrentamento de temas de ordem histórica, social e política