Professional Documents
Culture Documents
Objetos – OOP
Desenvolvimento de
Aplicações em Camadas
Renato Haddad
Microsoft Most Valuable Professional
Brasil
Meu nome é Renato Haddad e sou Microsoft Most Valuable Professional no Brasil
1
Objetivo
2
OOP
3
Definição - OOP
Técnica de programação de forma estruturada
com a finalidade de reaproveitar o código
existente e implementar novas classes quando
necessário
4
Pilares do OOP
Abstração Polimorfismo
Herança Encapsulamento
5
Abstração
6
Abstração de um carro
Public Class Carro
Public VelocidadeMaxima As Integer
Public NomeDoModelo As String
Public Sub Acelerar()
‘codigo para acelerar
End Sub
Public Sub Parar()
‘codigo para parar
End Sub
End Class
7
Encapsulamento
É a exposição das propriedades e métodos
de um objeto enquanto a implementação
real fica oculta do mundo externo. O objeto
é tratado como uma caixa preta.
Isso permite que os desenvolvedores criem
objetos que podem ser alterados sem afetar
o código-fonte que os utiliza
8
Encapsulamento
9
Encapsulamento
10
Polimorfismo
É o conceito segundo o qual objetos diferentes
possuem implementações diferentes de uma
mesma propriedade ou método. Por exemplo, um
helicóptero e um jato tem o método LevantaVoo
e a propriedade AltitudeMax, no entanto são
implementações diferentes.
11
Polimorfismo
12
Polimorfismo / Encapsulamento
13
Polimorfismo / Encapsulamento
Veja este exemplo onde temos uma Interface chamada IumDiaNoParque contendo
um método chamado IrEmFrente. Existem duas classes (MontanhaRussaInterface e
CarrosselInterface) que implementam o IumDiaNoParque através da palavra chave
Implements. Cada classe contém o método IrEmFrente que implementa o
IrEmFrente do IumDiaNoParque. Veja na camada que vai usar estas classes, onde
os objetos estão instanciados e chamam o método IrEmFrente.
14
Polimorfismo / Encapsulamento
15
Polimorfismo / Encapsulamento
16
Herança
É o conceito pelo qual uma classe por ser
baseada em outra, chamada classe base. A
herança fornece um mecanismo para criar
hierarquias de objetos
Herança é o conceito pelo qual uma classe por ser baseada em outra, chamada
classe base. A herança fornece um mecanismo para criar hierarquias de objetos. É
sem dúvida um dos melhores recursos de se implementar, tornando o reuso de
códigos extremamente simples é rápido.
17
Herança
Veja este exemplo de herança. Existe uma classe chamada clsAviao contendo duas
propriedades (AltitudeMax e Inventor) respectivamente, assim como a Function
LevantaVoo que recebe um argumento. A propriedade Inventor é ReadOnly, ou
seja, você não consegue atribuir um valor, pois o mesmo já está definido na
declaração da classe. Se você for definir uma classe para um avião a jato, teria que
declarar estas mesmas propriedades e a Function. Aqui entra o recurso de herança.
Veja na declaração da classe clsJato o uso do Inherits clsAviao, informando que a
classe herda a classe aviao e, em seguida, a declaração da mesma Function
LevantaVoo. Isto é possível porque na declaração da Function está como
Overridable, ou seja, esta função pode ser regravável. Portanto, quando você for
criar uma classe, pesquise se já não existem classes prontas para tal finalidade e
herde a mesma. Com isso, de dentro da classe clsJato você terá acesso a todos os
itens declarados na classe clsAviao.
18
Herança
Este é o fomulário que irá consumir as classes. Note que as duas classes são
instanciadas nas respectivas variáveis de objeto e o acesso as propriedades são
enxergadas tanto na classe clsAviao quanto clsJato. Desta forma, como a classe
clsJato herda a clsAviao, o código fica transparente para o desenvolvedor, o acesso
ocorre na classes, independente de existir ou não uma herança.
19
Herança
Escopo da Classe
Inherits Indica a classe a ser herdada
NoInheritable Indica que a classe que utiliza este elemento não pode ser herdada em
nenhuma outra classe
MustInherit Indica que a classe que utiliza este elemento só pode ser utilizada por
meio da sua herança em uma outra classe
Escopo de Métodos
Overridable Indica que o método que utiliza este elemento pode ser sobreposto
NotOverridable Indica que o método que utiliza este elemento não pode ser sobreposto
MustOverride Indica que o método que utiliza este elemento só pode ser implementado
por meio da sobreposição dele
Overrides Indica que o método está sobrepondo o método da classe básica
O escopo da classe é um tópico muito importante, pois demonstra onde que a classe
poderá ser vista por outra. O Inherits indica a classe a ser herdada. O NoInheritable
indica que a classe que utiliza este elemento não pode ser herdada em nenhuma
outra classe. O MustInherit indica que a classe que utiliza este elemento só pode ser
utilizada por meio da sua herança em uma outra classe.
Veja o escopo dos métodos da classe. O Overridable indica que o método que
utiliza este elemento pode ser sobreposto. O NotOverridable indica que o método
que utiliza este elemento não pode ser sobreposto. O MustOverride indica que o
método que utiliza este elemento só pode ser implementado por meio da
sobreposição dele. O Overrides indica que o método está sobrepondo o método da
classe básica.
20
Overload
É possível usar um único método
(Function ou Sub) para diversas formas
de implementação. Pode-se definir um
método com o mesmo nome para vários
tipos de parâmetros de entrada e saída, e
cabe ao Framework interpretar um a um e
escolher o correto
21
Overload
Veja nesta classe que temos quatro Functions chamada Media, porém cada uma
com diferentes tipos de campos e argumentos. Quem decide qual Function executar
é o Framework.
22
Overload
23
Delegate
O Delegate é uma funcionalidade poderosa no OOP. Uma vez que os objetos podem
possuir eventos, a linguagem deve possuir uma forma mais elegante de um objeto
fazer uso de métodos de outros objetos
24
Delegate
25
Delegate
Veja o uso do Delegate onde a classe é instanciada, é definida uma matriz com os
dados e chamado o método Ordena, passando os argumentos e exibido o resultado.
26
N-tier
27
N-tier
O que é esta arquitetura?
Quais as vantagens?
Em quais situações aplicar?
28
N-tier
!
Public Web
Services
Smart Building
Clients Block
Services
Standard
Browsers Internal
Services
Smart
Devices Servers,
Data, Hosts
Com o .NET as aplicações são construídas sobre uma plataforma comum. A integração entre elas é intuitiva.
As aplicações Web estão usando os protocolos da rede e XML para permitir melhor integração entre os
serviços na Web. Os padrões de comunicação para a Internet são abertos. Imagine se pudessemos unir os
serviços da aplicação de back-end usando protocolos de Internet como http de forma transparente para o
usuário e aplicação. Podemos usar qualquer Web Service que possa se comunicar usando XML sobre
HTTP.
29
N-tier
Application
Business Data Source
Front-
Front-end
interoperabilidade
Data Source Business
Data Source
30
N-tier (1 / 2)
Client
31
N-tier
Veja este exemplo que contém uma DLL chamada clsAcentuacao contendo o
método TiraAcentos que recebe uma String como argumento e retorna uma String.
Está é uma Class Library que você desenvolve e distribui a todos os
desenvolvedores que precisarem utilizar. Na camada de apresentação, um
formulário por exemplo, você deve referenciar a DLL no Solution Explorer do
projeto, e no código basta instanciar o componente com a devida classe e o método,
passando o argumento, se necessário. Com isso, a DLL poderá ser utilizada em
qualquer tipo de projeto. Caso haja uma alteração na DLL, será preciso distribuir a
todos os desenvolvedores a nova DLL, porém o executável Front-End não é preciso.
32
VB.NET + C#
Veja neste exemplo que a DLL criada está escrita em CSharp contendo a classe
Frete e o método Calcula que recebe e retorna um valor do tipo Double. Já a camada
de apresentação foi escrita em VBNET, o qual referencia a DLL no Solution
Explorer, instancia o componente e o usa, por exemplo, atribui a propriedade e
chama o método Calcula. Esta é uma das grandes facilidades do .NET, a
independência de linguagem, pois o produto final será em Intermediate Language.
Esta mesma camada em Csharp poderá ser usada em qualquer linguagem no .NET,
seja em Web, Windows, Pocket, Smartphone, Console, etc.
33
N-tier
Client
Business
34
N-tier
Veja neste exemplo uma DLL desenvolvida que chama uma Stored Procedure no
SQL Server, passando alguns campos como argumentos.
35
Stored Procedures
O que são?
Quais as vantagens?
36
Stored Procedures
37
Stored Procedures
38
Stored Procedures
39
Server Application
Serviço único que disponibiliza forma
padrão para acesso as informações do
sistema
40
Server Application
Ambiente centralizado para aplicação de
mudanças na lógica de negócios,
permitindo controle mais efetivo quanto a
versionamento e segurança das
informações
41
Server Application
Client
Server App
Sendo assim, qualquer requisição ao banco de dados deverá ser feito ao Server
Application, o qual é o responsável pelo gerenciamento.
42
O que é um Web Service?
É uma classe desenvolvida no .NET para
atender a demanda de aplicações / sites
internos ou externos.
43
Onde e porquê usar WS?
Qualquer aplicação pode consumir um WS
disponível na WEB (agendas, catálogos,
dados bancários, médicos, validação de
cartões, notícias, etc)
44
Vantagens do Web Services
Negócios Conectados
Agilidade na conexão a clientes,
clientes, parceiros
e funcionários,
funcionários, através de soluções
construídas rapidamente e a baixos
custos Experiências
Conectadas
Desenvolvimento Informação a qualquer
hora, em qualquer lugar,
Conectado em qualquer dispositivo
Interoperabilidade com
sistemas construídos
em qualquer plataforma
ou linguagem
Sistemas Conectados
Integração com sistemas legados,
legados,
dentro e fora da empresa
Para usar Web Services é preciso estar sempre conectado, pois ele roda sobre os protocolos
da Internet. Você poderá consumir um Web Service em qualquer tipo de aplicação,
proporcionando integração entre as plataformas, o legado, os aplicativos e obter a
informação em qualquer lugar e hora.
45
Recursos dos Web Services
Segurança
Garantia de Entrega
Orquestração
Eventos
Transações
Os recursos dos Web Services permitem integrar sistemas legados, sistemas externos, dados
corporativos e soluções verticais e infra-estrutura. Os Web Services permitem segurança,
garantia de entrega das solicitações, orquestração, eventos e transações.
46
Modelo de Web Services
Web Site: HTML Cliente:
O Browser
Exibe a informação
para um usuário,
que reage ou não a
ela
Legacy
47
Uso do Web Service
48
Client ! "! #"
Web Server
Server App
"! #"
49