c# 5 0 com visual studio 2012 c. completo

10

Upload: grupo-lidel

Post on 25-Jul-2016

226 views

Category:

Documents


4 download

DESCRIPTION

Este livro cobre as técnicas de programação associadas à linguagem C# na sua versão 5.0 totalmente integrada no Visual Studio 2012. Aumentada relativamente à edição anterior, com quatro novos capítulos e um novo projeto integralmente resolvido, a obra encontra-se estruturada de forma a facilitar a aprendizagem e a apoiar os leitores na progressão das matérias. Possui uma vasta componente prática, composta por exercícios resolvidos, exercícios propostos e três projetos completos baseados em casos reais, que contemplam as mais recentes tecnologias de desenvolvimento para ambientes Windows (Windows Forms, Windows Presentation Foundation (WPF) e nova interface do Windows 8).

TRANSCRIPT

Page 1: C# 5 0 com Visual Studio 2012 C. Completo
Page 2: C# 5 0 com Visual Studio 2012 C. Completo

C# 5.0 COM VISUAL STUDIO 2012 – CURSO COMPLETO

©© FFCCAA –– EEddiittoorraa ddee IInnffoorrmmááttiiccaa

4

11..33 AAMMBBIIEENNTTEE DDEE DDEESSEENNVVOOLLVVIIMMEENNTTOO

O sistema operativo Windows apresenta-se provido de um vasto conjunto de funcionalidades, que permite a qualquer programador, através de qualquer linguagem visual, criar a interface necessária entre as aplicações que desenvolve e os seus utilizadores finais. Essa característica própria do sistema operativo é designada por GDI10, sendo responsável por tarefas básicas como desenhar linhas, curvas e tipos de letra, providenciando todo um API11 específico para a execução dessas operações.

A parte visível de qualquer aplicação (formulários, caixas de diálogo, botões, menus, barras de ferramentas, imagens, etc.) é implementada pela interface da própria linguagem visual a que o programador recorre através do seu IDE12. A linguagem é responsável por aceder ao GDI e criar os objetos que o programador solicita, mostrando-os no editor de código do Visual Studio. Em resumo, a programação em ambientes gráficos processa-se segundo o diagrama de blocos apresentado na Figura 1.5.

FFIIGGUURRAA 11..55 – Grafismo numa linguagem visual

10 Do inglês Graphics Device Interface (Interface de Dispositivos Gráficos); é o padrão do sistema

operativo Windows utilizado para representar objetos gráficos e transmiti-los para dispositivos de saída, tais como monitores e impressoras.

11 Do inglês Application Programming Interface (Interface de Programação de Aplicativos); consiste num conjunto de funções específicas do sistema operativo acessíveis através de qualquer linguagem de programação.

12 Do inglês Integrated Development Environment (Ambiente de Desenvolvimento Integrado); é um programa de computador que reúne características e ferramentas de apoio ao desenvolvimento de software com o objetivo de agilizar este processo. Geralmente, os IDE unem a técnica de RAD (Rapid Application Development), que consiste em permitir que os programadores obtenham um aproveitamento maior, desenvolvendo o código de programação com maior rapidez.

PROGRAMADOR

GDI WINDOWS

C# IDE

EDITOR DO VISUAL STUDIO

Page 3: C# 5 0 com Visual Studio 2012 C. Completo

MMOODDEELLAAÇÇÃÃOO DDEE DDAADDOOSS

© FCA – Editora de Informática

221

Em diagramas ER, os atributos são representados por círculos e os identificadores com um preenchimento a cinza (Figura 7.4).

FFIIGGUURRAA 77..44 – Representação de atributos num diagrama ER

77..44..55 FFAASSEE VV –– TTRRAATTAARR RREELLAAÇÇÕÕEESS

A fase final do processo de modelação permitirá mapear as relações obtidas para que o modelo possa ser implementado em qualquer SGBD e consiste, basicamente, em determinar quais os atributos comuns às entidades relacionadas.

77..44..55..11 TTRRAATTAAMMEENNTTOO DDEE RREELLAAÇÇÕÕEESS DDOO TTIIPPOO NN--NN

As relações do tipo N-N entre duas entidades A e B são desdobradas em duas relações do tipo 1-N para que haja um elo de ligação. Para tal, acrescenta-se uma nova entidade, que é chamada E N T ID A D E D E J U N Ç Ã O, e que é composta pelos atributos que a própria relação, eventualmente, possua e pelos dois atributos determinantes das entidades A e B.

A relação N-N ‘Produtos’ – ‘Encomendas’ vai originar duas relações 1-N entre a entidade de junção e ‘Produtos’ e ‘Encomendas’. À nova entidade foi atribuído o nome ‘Detalhes_Enc’ e esta possui uma chave composta (dois atributos determinantes ‘E’ e ‘P’). A Figura 7.5 apresenta o esquema de desdobramento de uma relação do tipo N-N em duas do tipo 1-N.

ENCOMENDAS FORNECEDORES

PRODUTOS DISTRITOS

1-N

N-N 1-N

E F

P D

PRODUTO

FORNECEDOR DATA

DISTRITO

Page 4: C# 5 0 com Visual Studio 2012 C. Completo

C# 5.0 COM VISUAL STUDIO 2012 – CURSO COMPLETO

©© FFCCAA –– EEddiittoorraa ddee IInnffoorrmmááttiiccaa

250

FFIIGGUURRAA 88..2211 – Modelo de dados completo

6) Guarde o modelo e feche-o.

88..44..33 OOBBTTEENNÇÇÃÃOO DDEE LLIISSTTAAGGEENNSS

Nesta secção, serão abordadas as técnicas de programação envolvidas no tratamento, pesquisa e análise da informação, tais como a seleção de campos, aplicação de filtros (critérios) e ordenação do resultado final. Assim, torna-se possível isolar, de uma forma seletiva, a informação existente em uma ou mais tabelas de dados.

Nos exemplos apresentados ao longo desta secção, inclua os diferentes fragmentos de código no método Main e teste-os individualmente.

CCÓÓDDIIGGOO ((OOBBTTEENNÇÇÃÃOO DDEE TTOODDAA AA IINNFFOORRMMAAÇÇÃÃOO PPRREESSEENNTTEE NNUUMMAA TTAABBEELLAA))

static void Main(string[] args)

{

DataClasses1DataContext dc = new DataClasses1DataContext();

var lista = from Funcionarios in dc.Funcionarios select Funcionarios;

foreach(Funcionarios func in lista)

{

Console.WriteLine("ID: " + func.ID);

Console.WriteLine("Nome: " + func.Nome);

Console.WriteLine("Departamento: " + func.Departamento);

Console.WriteLine();

}

Console.ReadLine();

}

Page 5: C# 5 0 com Visual Studio 2012 C. Completo

IIMMPPRREESSSSÃÃOO

© FCA – Editora de Informática

313

A caixa de diálogo apresentada na Figura 11.2 é conseguida através do controlo PrintPreviewDialog. Este controlo permite a pré-visualização do relatório de impressão por parte dos utilizadores.

FFIIGGUURRAA 1111..22 – Caixa de diálogo para pré-visualização de impressão

Na próxima secção, iremos demonstrar como criar um relatório completo para impressão através da classe PrintDocument e das caixas de diálogo padrão auxiliares implementadas pelos controlos PrintDialog e PrintPreviewDialog.

1111..33 EEXXEERRCCÍÍCCIIOO RREESSOOLLVVIIDDOO

Um estudante de trigonometria ficou encarregue de programar uma pequena aplicação capaz de mostrar num formulário (Figura 11.3) uma tabela de senos, cossenos e tangentes de diversos ângulos compreendidos entre 0 e 1, com intervalos de 1 milésimo de radiano.

FFIIGGUURRAA 1111..33 – Interface gráfica

Page 6: C# 5 0 com Visual Studio 2012 C. Completo

IINNTTEEGGRRAAÇÇÃÃOO CCOOMM AA XXMMLL

© FCA – Editora de Informática

327

EEXXEEMMPPLLOO

O formulário apresentado na Figura 12.1 descreve a interface gráfica que deverá ser implementada para manipular o ficheiro XML.

FFIIGGUURRAA 1122..11 – Formulário utilizado para a manipulação do ficheiro XML

Assim, deverão ser embutidos os controlos que indicamos no formulário apresentado na Figura 12.2.

FFIIGGUURRAA 1122..22 – Desenho do formulário

CCÓÓDDIIGGOO ((FFIICCHHEEIIRROO ’’FFOORRMM11..CCSS’’ –– IINNIICCIIAALLIIZZAAÇÇÕÕEESS))

//Importação de namespaces

using System.Xml;

using System.IO;

comboBox1 treeView1

textBox1

Page 7: C# 5 0 com Visual Studio 2012 C. Completo

C# 5.0 COM VISUAL STUDIO 2012 – CURSO COMPLETO

©© FFCCAA –– EEddiittoorraa ddee IInnffoorrmmááttiiccaa

376

AANNÁÁLLIISSEE

Para definir os limites neste tipo de objetos recorremos às tags Stroke (define a cor) e StrokeThickness (define a espessura). As linhas e os polígonos são desenhados tendo em conta as diferentes coordenadas (propriedades X1, Y1, X2 e Y2 para as linhas e propriedade Points para os polígonos); por seu turno, os retângulos e as elipses são construídos através das respetivas propriedades Height (representa a altura) e Width (representa a largura).

AAPPRREESSEENNTTAAÇÇÃÃOO DDOO SSEEPPAARRAADDOORR ””GGEEOOMMEETTRRIIAA””

Na XAML, há duas formas de desenhar formas geométricas: através da classe Shape (aplicadas no separador anterior) e através da classe Geometry (aplicadas no separador mostrado na Figura 13.7). Embora sejam duas classes aparentemente muito semelhantes, diferem em termos de composição e de versatilidade. As classes Geometry apresentam mais funcionalidades, como por exemplo, a combinação de duas ou mais formas geométricas e a utilização de imagens.

FFIIGGUURRAA 1133..77 – Separador ”Geometria”

CCÓÓDDIIGGOO ((FFIICCHHEEIIRROO XXAAMMLL –– SSEEPPAARRAADDOORR ””GGEEOOMMEETTRRIIAA””))

<!-- Inclua o código no interior da tag TabItem do separador ”Geometria” -->

<Grid>

<Grid.ColumnDefinitions>

Page 8: C# 5 0 com Visual Studio 2012 C. Completo

C# 5.0 COM VISUAL STUDIO 2012 – CURSO COMPLETO

©© FFCCAA –– EEddiittoorraa ddee IInnffoorrmmááttiiccaa

472

1155..55 IINNTTEEGGRRAAÇÇÃÃOO CCOOMM OO MMIICCRROOSSOOFFTT AACCCCEESSSS

É possível, via Interop, criarmos e manipularmos bases de dados Access, como iremos ver ao longo desta secção.

EEXXEEMMPPLLOO

O objetivo deste exemplo consiste em exportar toda a informação contida na folha de cálculo para uma nova base de dados Access. Após o processo de exportação, deveremos obter uma tabela semelhante à disposta na Figura 15.6.

FIGURA 15.6 – Resultado da exportação de dados para o Access

AALLTTEERRAAÇÇÃÃOO DDAA IINNTTEERRFFAACCEE

Adicione um botão de comando standard ao formulário apresentado na Figura 15.2.

RREEFFEERRÊÊNNCCIIAA AAOO AACCCCEESSSS

Adicione a referência à biblioteca de objetos Access, como tem vindo a ser feito.

CCÓÓDDIIGGOO ((IINNIICCIIAALLIIZZAAÇÇÕÕEESS))

Acrescente as instruções assinaladas na listagem: public partial class Form1 : Form

{

//Apontador para a aplicação PowerPoint

Microsoft.Office.Interop.PowerPoint.Application pptApp;

//Apontador para a aplicação Access

Microsoft.Office.Interop.Access.Application accessApp;

string apresent; //Caminho completo até ao ficheiro PowerPoint

Page 9: C# 5 0 com Visual Studio 2012 C. Completo

PPRROOJJEETTOO II

© FCA – Editora de Informática

515

1122..ºº PPAASSSSOO –– PPRROOCCEESSSSAAMMEENNTTOO DDEE EENNCCOOMMEENNDDAASS

Obtenha a interface que apresentamos na Figura 16.31, incorporando uma ComboBox (para a seleção do fornecedor), um MonthCalendar (para a seleção da data), duas ListBox e dois botões de comando (para a escolha dos produtos), e um controlo NumericUpDown (para as quantidades de cada produto), para além dos botões de comando e dos respetivos controlos informativos.

FIGURA 16.31 – Interface do formulário FormEncomendas2 (separador “Encomendar”)

Para melhor identificação dos controlos, altere as suas propriedades Name para comboBoxFornecedor, monthCalendarData, listBoxEscolha, listBoxEscolhidos, buttonEscolher, buttonNaoEscolher, numericUpDownQuantidade, buttonOK e buttonCancelar. Uma vez que o controlo monthCalendar é só para mera informação da data atual, desative-o (propriedade Enabled igual a False).

CCÓÓDDIIGGOO

//Evento Load do formulário

private void FormEncomendas2_Load(object sender, EventArgs e)

{

comboBoxFornecedor.DropDownStyle = ComboBoxStyle.DropDownList;

comboBoxFornecedor.Items.Clear();

listBoxEscolha.Items.Clear();

listBoxEscolhidos.Items.Clear();

Page 10: C# 5 0 com Visual Studio 2012 C. Completo

C# 5.0 COM VISUAL STUDIO 2012 – CURSO COMPLETO

©© FFCCAA –– EEddiittoorraa ddee IInnffoorrmmááttiiccaa

558

FFIIGGUURRAA 1188..66 – Resultado da execução do Projeto III (ratings)

1188..66 EEXXEERRCCÍÍCCIIOOSS PPRROOPPOOSSTTOOSS

1) Implemente um temporizador capaz de verificar atualizações de 5 em 5 minutos;

2) Ao fazer clique sobre cada uma das bandeiras, o utilizador deverá visualizar uma nova página com um gráfico de evolução de ratings dos últimos sete dias para a moeda escolhida;

3) Permita a visualização do gráfico anterior entre duas datas escolhidas pelo utilizador.