Boas práticas de programação com Object Calisthenics
ASP.NET - Web Services
1.
2. Computação Distribuída
Considerações:
1 Divisão da Aplicação em Máquinas Diferentes (Client x Server)
2 Componentes são Acessados através de Protocolos (TCP, HTTP…)
3 Benefícios: Performance, Manutenção, Reutilização
4 Tecnologias: .NET Remotting, WebServices, Microsoft MQ
OBS: Os Web Services são DLL’S que serão Acessadas pelo Protocolo HTTP
2
3. SOA (Service Oriented Architecture)
Considerações:
1 Funcionalidades devem ser Acessadas pelos Serviços
2 Permite a Reutilização (FÁCIL) dos Serviços em outras Aplicações
3 Desacoplamento das Regras de Negócio da Aplicação (UI)
4 Funcionalidades: Log, Xml, SQL Server, Arquivos
OBS: Os Web Services Trabalham com o Modelo SOA
3
4. Introdução Web Service
Considerações:
1 Tecnologia para Desenvolvimento de Aplicações Distribuídas
2 É Mantido pelo W3C (World Wide Web Consortium)
3 Utiliza Tecnologias Padrões (HTTP, SOAP (XML))
4 Utiliza o Protocolo SOAP (Dados Trafegados no Formato XML)
5 Pode ser Consumido por Qualquer Linguagem de Programação
4
5. Considerações sobre Web Services
Considerações:
1 Incluídos na Plataforma .NET 1.0
2 Possuem a Extensão .ASMX
3 Herdam da Classe Base System.Web.Services.WebService
4 Podem ser Criados COM ou SEM o Visual Studio
5 Possuem 3 Etapas: Criação, Disponibilização, Execução
5
7. Principais Cenários de Utilização
Considerações:
1 Integrar Sistemas X Linguagens (Windows, Web, Mobile)
2 Integrar Plataformas (Java, .NET, MainFrame)
3 Integrar Empresas (Brasil, EUA, Austrália)
7
8. Cenário Padrão de um Web Service
Aplicação Serviço
Principal Finalidade é Disponibilizar Métodos que serão Acessados Remotamente
8
9. Cenário de Vários Web Services
Serviço
PagSeguro Serviço
Correios
Internet
Aplicação
9
10. Cenário de Integração de Empresas
Empresa B
Serviço
Internet
Aplicação
Empresa C
Serviço
10
11. Cenário de Integração de Sistemas
Empresa
Financeiro Vendas
Serviço
Serviço
RH Jurídico
Serviço Serviço
Intranet
11
12. Demonstração
1 Criando um Projeto de Web Services (.NET 3.5)
2 Visualizando o Web Service (Service (ASMX e CS))
3 Visualizando o Atributo (WebService) -> Propriedade (Namespace)
4 Visualizando o Atributo (WebServiceBinding) - > Propriedade (ConformsTo)
5 Visualizando o Atributo (ScriptService)
6 Visualizando a Herança da Classe Base WebService
7 Executando o Web Services (Service.asmx)
12
13. Demonstração
8 Conhecendo a Página Padrão dos Web Services
9 Alterando a Namespace (Tempuri.org)
10 Visualizando os Parâmetros (?Disco e ?Wsdl)
11 Conhecendo o Site www.xmethods.com
13
14. InfraEstrutura dos Web Services
Serviço de Descoberta
Descrição do Serviço
Protocolo de Transporte
14
15. Serviço de Descoberta
Considerações:
1 Processo de Localização de um Web Service (Intranet, Internet)
2 Arquivo .disco contém a Localização do Web Service no Servidor
3 Servidores UDDI contém Diversos Web Services
15
16. Descrição do Serviço
Considerações:
1 WSDL, Linguagem Baseada em XML
2 Descreve o Web Service (Métodos, Parâmetros, Tipos de Dados)
3 WSDL Permite que o Cliente Conheça os Membros do Web Service
16
17. Protocolo de Transporte
Considerações:
1 A Mensagem SOAP é Enviada pelo Protocolo HTTP
2 As Informações do Serviço ficam Dentro do Proxy
17
18. Demonstração (Entity Framework)
1 Criando a Base (CURSO) e Tabelas (TB_LINGUAGEM, TB_DESENVOLVEDOR)
2 Criando a Estrutura de Pastas do Projeto (Servicos)
3 Criando o Entity Framework (Modelagem.edmx)
4 Criando o Web Service (ServicoswsTB_LINGUAGEM.asmx)
5 Criando os Métodos (Listar, Inserir, Alterar, Excluir)
6 Visualizando os Métodos (Ordenados ASC) no Web Service
7 Visualizando os Parâmetros (?Disco e ?Wsdl)
18
20. Demonstração (Consumindo WS)
1 Consumindo os Serviços (Service, wsTB_LINGUAGEM)
2 Visualizando os Arquivos (Disco e Wsdl) do Proxy
3 Visualizando o Caminho dos Serviços no Web.Config
4 Criando a Estrutura de Pastas/Páginas do Projeto
5 Atualizando o Proxy
6 Executando a aplicação Cliente com o Serviço OFF-LINE
20
21. Considerações sobre Métodos
Considerações:
1 O Atributo [WebMethod] Controla a Visibilidade do Método
2 O Parâmetro [Description] Descreve a Funcionalidade do Método
3 O Parâmetro [MessageName] Permite a Sobrecarga de Métodos
21
22. Demonstração
1 Executando o Serviço (Service.asmx) COM/SEM o Atributo WebMethod
2 Colocando Descrições no Serviço (Service.asmx) com o Parâmetro Description
3 Conhecendo o parâmetro MessageName
22