44
Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 1 2014 - 2 PROGRAMAÇÃO ORIENTADA A OBJETO 2 Prof. Shie Chen Fang

2014 -2 PROGRAMAÇÃO ORIENTADA A OBJETO 2

Embed Size (px)

Citation preview

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 1

2014 - 2

PROGRAMAÇÃO ORIENTADA A OBJETO 2

Prof. Shie Chen Fang

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 2

Calendário

NP1 – 03/10/2014

NP2 – 28/11/2014

SUB – 05/12/2014

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 3

Horário

19h25 – 20h40

21h00 – 22h15

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 4

BOOCH, G.; JACOBSON, I.; RUMBAUGH, J. UML - guia

do usuário. 2.ed. Rio de Janeiro, Campus, 2006.

MANZANO, J. A. N. G. Estudo Dirigido de Microsoft Visual

C# 2010 Express. São Paulo. Érica. 2010.

MANZANO, J. A. N. Estudo dirigido de Microsoft Visual

C# Express 2013. Erica, 2014.

Bibliografia Básica

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 5

CAMARA, F. Orientação a objeto com .NET. 2.ed. Santa

Catarina: Visual Books. 2006.

SANTOS, L. C. Microsoft visual C# 2008 express

edition: aprenda na prática. São Paulo: Érica, 2010.

SHARP, J. Microsoft visual C# 2008 passo a passo. Porto

Alegre, Bookman, 2008

MONACO, Thiago. Desenvolvendo aplicações para

windows phone. BRASPORT, 2012.

GUEDES, G. T. A. UML 2: uma abordagem prática. São

Paulo: Novatec, 2010/2011

Bibliografia Complementar

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 6

1. Programação orientada a objetos com C#- Aplicação dos conceitos de orientação a objetos com C#- Criação de aplicações com Windows Forms utilizando o .NET Framework - Acesso a dados com ADO.NET ou Entity Framework usando C#

PLANO DE ENSINO

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 7

2. Desenvolvimento de aplicações móveis- Introdução ao desenvolvimento de aplicações móveis- Criação de aplicação com WPF (Windows Presentation Foundation)- Trabalhando com o desenvolvimento da Interface- Trabalhando com dado local- Acessando dado remoto- Criando aplicações móveis seguras

PLANO DE ENSINO

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 8

Assunto para NP1

Visual Studio

C# & Linguagem orientada a objeto

MVC

Windows Forms

ADO.NET

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 9

Visual Studio

- IDE (Integrated Development Environment)

- RAD (Rapid Application Development

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 10

Visual Studio

- O Visual Studio é um conjunto completo de

ferramentas para construir aplicativos desktop e

aplicativos Web empresariais desenvolvidos por equipes.

Além de criar aplicativos individuais de alto desempenho,

você pode usar as poderosas ferramentas de

desenvolvimento baseadas em componentes do Visual

Studio e outras tecnologias para simplificar o trabalho

em equipe no projeto, desenvolvimento e implantação

de soluções empresariais.

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 11

C#

- C# é uma linguagem orientada a objeto

- C , também escrito como C# ou C Sharp (em ♯

português lê-se "cê charp"), é uma linguagem de

programação orientada a objetos, fortemente tipada,

desenvolvida pela Microsoft como parte da plataforma

.NET. A sua sintaxe orientada a objetos foi baseada no

C++ mas inclui muitas influências de outras linguagens

de programação, como Object Pascal e Java

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 12

C#

- A linguagem C# faz parte do conjunto de ferramentas

oferecidas na plataforma .NET e surge como uma

linguagem simples, robusta, orientada a objetos,

fortemente tipada e altamente escalável a fim de

permitir que uma mesma aplicação possa ser executada

em diversos dispositivos de hardware,

independentemente destes serem PCs, handhelds ou

qualquer outro dispositivo móvel.

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 13

Principais características do C#

- Simplicidade: os projetistas de C# costumam dizer

que essa linguagem é tão poderosa quanto o C++ e tão

simples quanto o Visual Basic;

- Completamente orientada a objetos: em C#,

qualquer variável tem de fazer parte de uma classe;

- Fortemente tipada: isso ajudará a evitar erros por

manipulação imprópria de tipos e atribuições incorretas;

- Gera código gerenciado: assim como o ambiente

.NET é gerenciado, assim também é o C#;

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 14

Principais características do C#

- Tudo é um objeto: System.Object é a classe base de

todo o sistema de tipos de C#;

- Controle de versões: cada assembly gerado, seja

como EXE ou DLL, tem informação sobre a versão do

código, permitindo a coexistência de dois assemblies

homônimos, mas de versões diferentes no mesmo

ambiente;

- Suporte a código legado: o C# pode interagir com

código legado de objetos COM e DLLs escritas em uma

linguagem não-gerenciada;

Flexibilidade: se o desenvolvedor precisar usar

ponteiros, o C# permite, mas ao custo de desenvolver

código não-gerenciado, chamado “unsafe”;

Linguagem gerenciada: os programas desenvolvidos em

C# executam num ambiente gerenciado, o que significa

que todo o gerenciamento de memória é feito pelo

runtime via o GC (Garbage Collector).9

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 15

Principais características do C#

- Flexibilidade: se o desenvolvedor precisar usar

ponteiros, o C# permite, mas ao custo de desenvolver

código não-gerenciado, chamado “unsafe”;

- Linguagem gerenciada: os programas desenvolvidos

em C# executam num ambiente gerenciado, o que

significa que todo o gerenciamento de memória é feito

pelo runtime via o GC (Garbage Collector).

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 16

Orientação a Objeto

- A orientação a objetos é um paradigma de análise,

projeto e programação de sistemas de software baseado

na composição e interação entre diversas unidades de

software chamadas de objetos.

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 17

Orientação a Objeto

- Na programação orientada a objetos, implementa-se um conjunto

de classes que definem os objetos presentes no sistema de

software. Cada classe determina o comportamento (definido nos

métodos) e estados possíveis (atributos) de seus objetos, assim

como o relacionamento com outros objetos. C++, C , VB.NET, Java, ♯

Object Pascal, Objective-C, Python, SuperCollider, Ruby e Smalltalk

são exemplos de linguagens de programação orientadas a objetos.

ActionScript, ColdFusion, Javascript, PHP (a partir da versão 4.0),

Perl (a partir da versão 5) e Visual Basic (a partir da versão 4) são

exemplos de linguagens de programação com suporte a orientação

a objetos.

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 18

Orientação a Objeto - Conceitos

- Classe representa um conjunto de objetos com características

afins. Uma classe define o comportamento dos objetos através de

seus métodos, e quais estados ele é capaz de manter através de

seus atributos. Exemplo de classe: Os seres humanos

- Subclasse é uma nova classe que herda características de sua(s)

classe(s) ancestral(is).

- Objeto / instância de uma classe. Um objeto é capaz de

armazenar estados através de seus atributos e reagir a mensagens

enviadas a ele, assim como se relacionar e enviar mensagens a

outros objetos. Exemplo de objetos da classe Humanos: João, José,

Maria.

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 19

Orientação a Objeto - Conceitos

- Atributo são características de um objeto. Basicamente a

estrutura de dados que vai representar a classe. Exemplos:

Funcionário: nome, endereço, telefone, CPF,...; Carro: nome,

marca, ano, cor, …; Livro: autor, editora, ano. Por sua vez, os

atributos possuem valores. Por exemplo, o atributo cor pode conter

o valor azul. O conjunto de valores dos atributos de um

determinado objeto é chamado de estado.

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 20

Orientação a Objeto - Conceitos

- Método definem as habilidades dos objetos. Bidu é uma instância

da classe Cachorro, portanto tem habilidade para latir,

implementada através do método de um latido. Um método em uma

classe é apenas uma definição. A acção só ocorre quando o método

é invocado através do objecto, no caso Bidu. Dentro do programa, a

utilização de um método deve afectar apenas um objeto em

particular; Todos os cachorros podem latir, mas você quer que

apenas Bidu dê o latido. Normalmente, uma classe possui diversos

métodos, que no caso da classe Cachorro poderiam ser sente, coma

e morda

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 21

Orientação a Objeto - Conceitos

- Mensagem é uma chamada a um objecto para invocar um de

seus métodos, activando um comportamento descrito por sua

classe. Também pode ser direccionada directamente a uma classe

(através de uma invocação a um método estático)

- Herança (ou generalização) é o mecanismo pelo qual uma

classe (sub-classe) pode estender outra classe (super-classe),

aproveitando seus comportamentos (métodos) e variáveis possíveis

(atributos). Um exemplo de herança: Mamífero é super-classe de

Humano. Ou seja, um Humano é um mamífero. Há herança múltipla

quando uma sub-classe possui mais de uma super-classe. Essa

relação é normalmente chamada de relação "é um"

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 22

Orientação a Objeto - Conceitos

- Encapsulamento consiste na separação de aspectos internos e

externos de um objeto. Este mecanismo é utilizado amplamente

para impedir o acesso direto ao estado de um objeto (seus

atributos), disponibilizando externamente apenas os métodos que

alteram estes estados. Exemplo: você não precisa conhecer os

detalhes dos circuitos de um telefone para utilizá-lo. A carcaça do

telefone encapsula esses detalhes, provendo a você uma interface

mais amigável (os botões, o monofone e os sinais de tom)

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 23

Orientação a Objeto - Conceitos

- Associação é o mecanismo pelo qual um objeto utiliza os

recursos de outro. Pode tratar-se de uma associação simples "usa

um" ou de um acoplamento "parte de". Por exemplo: Um humano

usa um telefone. A tecla "1" é parte de um telefone.

- Abstração é a habilidade de concentrar nos aspectos essenciais

de um contexto qualquer, ignorando características menos

importantes ou acidentais. Em modelagem orientada a objetos, uma

classe é uma abstração de entidades existentes no domínio do

sistema de software

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 24

Orientação a Objeto - Conceitos- Polimorfismo consiste em quatro propriedades que a linguagem pode

ter (atente para o fato de que nem toda linguagem orientada a objeto tem

implementado todos os tipos de polimorfismo):

Universal:

Inclusão: um ponteiro para classe mãe pode apontar para uma instância de uma

classe filha (exemplo em Java: "List lista = new LinkedList();" (tipo de polimorfismo

mais básico que existe)

Paramétrico: se restringe ao uso de templates (C++, por exemplo) e generics

(Java/C )♯

Ad-Hoc:

Sobrecarga: duas funções/métodos com o mesmo nome mas assinaturas

diferentes

Coerção: a linguagem que faz as conversões implicitamente (como por ex. atribuir

um int a um float em C++, isto é aceito mesmo sendo tipos diferentes pois a

conversão é feita implicitamente)

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 25

Orientação a Objeto - Conceitos

- Interface: é um contrato entre a classe e o mundo externo.

Quando uma classe implementa uma interface, ela está

comprometida a fornecer o comportamento publicado pela interface

- Pacotes (ou Namespaces): são referências para organização

lógica de classes e interfaces

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 26

Exemplo Objeto

Um objeto consulta pode agendar uma nova consulta, remover uma consulta e localizar uma data disponível para consulta.

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 27

CLASSE & OBJETO

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 28

METODO & MENSAGEM

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 29

HERANÇA

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 30

MVC

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 31

MVC

MVC significa Model, View e Controller. A ideia básica do

MVC é de separar a lógica de negócio da apresentação

(muito semelhante ao modelo de 3 Camadas) e com isso

, por exemplo, oferecer maior transparências e rapidez

na manutenção e/ou implementação de melhorias no

software.

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 32

MVC

M (Model)

Esta “camada” representa os dados da aplicação e as

regras de negócio do acesso e modificação desses dados.

Ela é quem fornece ao controlador a capacidade de

acessar as funcionalidades da aplicação (Inclusão,

Alteração, Remoção e Consulta).

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 33

MVC

V (View)

As Views servem apenas para exibir as informações. São

elas que renderizam o conteúdo de uma parte particular

do modelo e encaminha para o controlador as ações do

usuário. A View também acessa os dados do modelo

através do controlador (Controller) e determina como

esses dados devem ser apresentados.

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 34

MVC

C (Controller)

O controller define o comportamento da aplicação, é ele

que interpreta as ações do usuário (View) e as mapeia

para chamadas do modelo (Model).

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 35

Windows Forms

WinForms é a tecnologia de cliente inteligente para um

conjunto de bibliotecas que simplificam tarefas comuns

como leitura e gravação para o sistema de arquivos do

aplicativo gerenciado. O .NET Framework Quando você

usa um ambiente de desenvolvimento como Visual

Studio, você pode criar aplicativos de cliente

inteligente WinForms que exibem informações, solicitar

entrada de usuários, e se comunicar com computadores

remotos em uma rede.

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 36

Windows Forms

Com WinForms você desenvolve clientes inteligentes.

São Clientes inteligentes graficamente Rich aplicativos

que são fáceis de implantar e atualizar, poderão

trabalhar quando eles são Conectado ou Desconectado

da Internet, e podem acessar recursos no computador

local de uma maneira mais segura que tradicional

aplicativos baseados no Windows.

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 37

ADO.NET

- Solução Microsoft para acesso a dados;

- ODBC

- OLEDB

- SQLClient

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 38

ADO.NET é a tecnologia para acesso a dados da plataforma .NET

estando integrada ao  .NET Framework e oferecendo diversas classes

que permitem realizar praticamente todas as tarefas relacionadas com

o acesso e manutenção de dados.

ADO.NET

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 39

ADO.NET oferece suporte a uma variedade de opções para

desenvolvimento de soluções com acesso a dados que permitem a

comunicação com qualquer fonte de dados, desde os já conhecidos

gerenciadores de banco de dados relacionais (SGBD) como : SQL

Server, MySQL, FireBird, Oracle, Sybase, Access, XML, arquivos

textos, etc.

ADO.NET

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 40

- Os componentes considerados os pilares da ADO.NET são: 

o DataSet e os provedores .NET que são um conjunto de

componentes que incluem os objetos :

• Connection - responsável por efetuar a conexão com o

banco de dados

• Command - responsável por executar comandos contra o

banco de dados;

• DataAdapter - é utilizado para preencher o objeto DataSet;

- Através da  ADO.NET podemos acessar dados de três

maneiras básicas: OLE DB , SQL e ODBC.

 

ADO.NET

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 41

ADO.NET

Os provedores de dados ADO.NET são bibliotecas de classes

que permitem uma maneira comum de interagir com uma

fonte específica de dados. Cada biblioteca possui um prefixo

que indica qual provedor ela suporta. Veja abaixo os principais

provedores:

 

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 42

Nome do Provedor

API prefixo

Descrição

ODBC Data Provider

OdbcFonte de dados com uma interface ODBC interface. Geralmente usada para banco de dados antigos;

OleDb Data Provider

OleDbFonte de dados que expõe uma interface OleDb interface, ou seja: Access ou Excel;

Oracle Data Provider

Oracle Para banco de dados Oracle;

SQL Data Provider

SqlPara interação com o Microsoft SQL Server;

 

ADO.NET

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 43 

- Também existem provedores fornecidos por terceiros para MySQL,

PostGreeSQL, FireBird, etc.

- Cada objeto possui uma versão para cada uma das maneiras aqui

mencionadas, assim temos os objetos

- OleDbConnection, OleDbCommand, OleDbDataReader,

OleDataAdapter;

- SqlConnection, SqlCommand, SqlDataReader, SqlDataAdapter;

- OdbcConnection, OdbcCommand,etc.

- Temos também os provedores fornecidos por terceiros como o .NET

Connector para o MySQL.

 

ADO.NET

Prof. Chen 2014 PROG. ORIEN. OBJETO 2: 44 

Abaixo uma figura ilustrando isto: