Upload
independent
View
0
Download
0
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: 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: 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