Rafael Godinho is a Microsoft developer specialist based in Brazil. The document discusses Windows Communication Foundation (WCF) and provides an overview of service-oriented architecture, WCF hosting and binding options, and common WCF usage scenarios.
1. Rafael Godinho
Especialista em Desenvolvimento
http://blogs.msdn.com/rafaelgodinho
Microsoft Brasil
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
2. Camada de serviços
O que NÃO é WCF
O que é WCF
Cenários de uso
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
4. Fonte: Martin Fowler - Patterns of Enterprise Application Architecture
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
5. “A camada de serviço define uma fronteira da
aplicação com as operações disponíveis a partir
da perspectiva dos clientes. Ela encapsula as
regras de negócio, controla as transações e
coordena as respostas.”
Fonte: Martin Fowler - Patterns of Enterprise Application Architecture – Tradução livre
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
6. SOA – Service Oriented Architecture
Web Service
WSDL
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
7. Plataforma unificada de comunicação
.NET
Remoting
ASMX
My My
WCF
WSE
System Service
MSMQ
Enterprise
Services
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
8. Evolução do .NET Framework
ao longo dos anos
SP1
.net 3.5
.net 3.0
.net 2.0
.net 1.1
Microsoft .NET Framework 1.0 2002
Microsoft .NET Framework 1.1 2003
Microsoft .NET Framework 2.0 2005
.net 1.0 Microsoft .NET Framework 3.0 2006
Microsoft .NET Framework 3.5 2007
Microsoft .NET Framework 3.5 SP1 2008
Microsoft .NET Framework 4.0 2009
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
9. .NET Framework 3.5 SP1
ADO.NET ADO.NET ASP.NET
ASP.NET
Entity Data Dynamic
Routing
Framework Services Data
.NET Framework 3.5
REST AJAX LINQ RSS
POX ATOM JSON +BCL
.NET Framework 3.0
Card
WCF WPF WF
Space
.NET Framework 2.0
Web
ADO.NET CLR Services
ASP.NET
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
10. Cliente Serviço
Bv A B C Bv
Bv C B A Mensagem A B C Bv
Address Binding Contract
(Onde) (Como) (O quê)
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
12. [ServiceContract]
public interface IMyInterface
{ Definição do
[OperationContract] contrato
public void MyMethod();
}
public class MyService: IMyInterface
{
public void MyMethod()
Implementação do
{
serviço
...
}
}
<service>
Address +
<endpoint name=“MyService”
Binding +
address=“...”
binding=“netTcpBinding” Contract =
contract=“IMyInterface” /> Endpoint
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
13. Aspectos de nível
lógico e contratos
Aspectos de
comportamentos e
serviços
Aspectos de
multi-protocolo e
mensagens
Aspectos de
multi-hosting
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
14. Similar à um protocolo de rede
Aplicação Aplicação
TCP TCP
IP IP
Ethernet Ethernet
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
15. Client
Service
Endpoints
Proxy
Service
Channel Dispatcher
Channel
Channel
Channel
Transport Transport
Channel Channel
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
16. Criando um serviço em WCF
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
17. Self-Hosting
Cenários
Não possui controle do ambiente
Aplicações P2P
Como
Windows Service
Console Application (Desenvolvimento)
WinForms/WPF
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
18. Managed-Hosting
Cenário
Possui controle do ambiente
Alta escalabilidade e disponibilidade
Como
Windows 2008: IIS/WAS (Windows Process
Activation Service)
Windows 2008 R2/.NET Framework 4.0: Dublin
(Futuro)
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
24. Plain-Old-XML
GET/GetCustomers
GetCustomers()
POST/CreateCustomer CreateCustomer(...) POX
POST/SaveCustomer Service
SaveCustomer(...)
POST/DeleteCustomer DeleteCustomer(...)
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
25. Representational State Transfer
GET/Customers
GetCustomers()
POST/Customers CreateCustomer(...) REST
PUT/Customer(x) Service
SaveCustomer(...)
DELETE/Customer(x) DeleteCustomer(...)
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
26. JavaScript Object Notation
JavaScript Silverlight Flash
JSON
WCF Service
IIS
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
27. Início
Somente leitura Manipulação de informações
AtomPub
Clientes antigos
Atom RSS
Fim
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
28. Característica Descrição
Hospedagem IIS6 –> Windows Server 2003
IIS7 -> Windows Server 2008
Protocolo Transposte HTTP, HTTPS
Protocolo Mensageria XML, JSON
Autenticação Basic Authentication
Segurança SSL
Binding WebHttpBinding
WebHttpBehavior
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
29. REST
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
30. WCF - WCF
Client
Proxy
Windows
Token
AD
Binary/TCP
Service
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
31. Característica Descrição
Hospedagem Windows NT Service -> Windows Server 2003
WAS -> Windows Server 2008
Protocolo TCP
Transporte Named Pipes (cliente e serviço na mesma máquina)
Protocolo SOAP + Binary
Mensageria
Segurança Credencial Windows
Certificado X.509
Binding NetTcpBinding
NetNamedPipeBinding
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
32. Client Client
Proxy Proxy
Queued Queued
Service Service
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
33. Característica Descrição
Hospedagem Windows NT Service -> Windows Server 2003
WAS -> Windows Server 2008
Protocolo Transporte MSMQ
Protocolo Mensageria SOAP + Binary
Segurança Certificado X.509
Binding MsmqIntegrationBinding (Legado)
NetMsmqBinding (WCF – WCF)
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
34. Camada de serviços
O que NÃO é WCF
Visão geral do WCF
ABC
Hospedagem
Cenários de uso
Enterprise Web Services
Web 2.0
Aplicações na Intranet
Mensagens Enfileiradas
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
35. Windows Communication Foundation: Application Deployment
Scenarios
http://msdn.microsoft.com/en-us/library/cc512374.aspx
Meu blog
http://blogs.msdn.com/rafaelgodinho
Criando serviços REST com WCF
http://msdn.microsoft.com/pt-br/library/dd941696.aspx
P&P WCF Security Guidance Project
http://www.codeplex.com/WCFSecurity/
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |
36. Rafael Godinho
Especialista em Desenvolvimento
http://blogs.msdn.com/rafaelgodinho
Microsoft Brasil
| Rafael Godinho | http://blogs.msdn.com/rafaelgodinho |