14
Présentation de Windows Communication Foundation Live Meeting Technique N°3 Thomas LEBRUN – MVP WPF/Silverlight Florent SANTIN – MVP Team System Julien CORIOLAND - MSP

Live Meeting Technique N°3 Thomas LEBRUN – MVP WPF/Silverlight Florent SANTIN – MVP Team System Julien CORIOLAND - MSP

Embed Size (px)

Citation preview

Page 1: Live Meeting Technique N°3 Thomas LEBRUN – MVP WPF/Silverlight Florent SANTIN – MVP Team System Julien CORIOLAND - MSP

Présentation de Windows Communication

FoundationLive Meeting Technique N°3

Thomas LEBRUN – MVP WPF/SilverlightFlorent SANTIN – MVP Team System

Julien CORIOLAND - MSP

Page 2: Live Meeting Technique N°3 Thomas LEBRUN – MVP WPF/Silverlight Florent SANTIN – MVP Team System Julien CORIOLAND - MSP

DCOM COM+ MSMQ Enterprise Services Web Services XML .NET Remoting …

Chaque technologie dispose de son modèle de programmation spécifique

Historique de la communication

Page 3: Live Meeting Technique N°3 Thomas LEBRUN – MVP WPF/Silverlight Florent SANTIN – MVP Team System Julien CORIOLAND - MSP

Modèle de programmation unifiée

Interopérabilitéavec d’autresplateformes

ASMX

Programmationpar

attribut

Enterprise Services

Support desprotocoles

WS-*

WSE

Programmationorienté

message

System.Messaging

ExtensibilitéDisponibilité transparente

.NET Remoting

Page 4: Live Meeting Technique N°3 Thomas LEBRUN – MVP WPF/Silverlight Florent SANTIN – MVP Team System Julien CORIOLAND - MSP

Les avantages de WCF• Unification des couches de

distribution actuelles• Idéal pour du mono-machine, du

pluri-machines ou à travers Internet

• Interopérabilité avec des applications tournant sur d’autres plateformes

Unification

Interopérabilité

• Renforce les « best practices » pour construire des applications distribuées

• Permet le développement de services faiblement couplés

OrientéService

Page 5: Live Meeting Technique N°3 Thomas LEBRUN – MVP WPF/Silverlight Florent SANTIN – MVP Team System Julien CORIOLAND - MSP

Productivité: Visual Studio 2003

20,379 lines security

5,988 lines reliable messaging

25,507 lines transactions

Total lines 56,296

4,442 lines infrastructure

class HelloService { [WebMethod] public String Hello(String Greeting) {

X509CertificateCollection collection = new X509CertificateCollection();IntPtr blob = Marshal.AllocHGlobal(Marshal.SizeOf( typeof(CRYPTOAPI_BLOB))); IntPtr data = (IntPtr)((int)blob + Marshal.SizeOf(typeof(CRYPTOAPI_BLOB)));…

SeqAckRange range = new SeqAcknRange(id, low, high );SeqAckRange[] ranges = { range };ReliableQueue.ProcessAcks( ranges );…

BeginTransaction (NULL, ISOLATIONLEVEL_SERIALIZABLE, 0, pITxOptions, &pITransaction);…

return Greeting; }}

Page 6: Live Meeting Technique N°3 Thomas LEBRUN – MVP WPF/Silverlight Florent SANTIN – MVP Team System Julien CORIOLAND - MSP

Productivité: Visual Studio 2003 & WSE

10 lines security

1,804 lines reliable messaging

25,507 lines transactions

Total lines 27,321

class HelloService { [WebMethod] public String Hello(String Greeting) {

foreach ( SecurityToken tok in requestContext.Security.Tokens { X509SecurityToken token = tok as X509SecToken }

… SeqAckRange range = new SeqAcknRange(id,low,high ); SeqAckRange[] ranges = { range }; ReliableQueue.ProcessAcks( ranges ); …

BeginTransaction (NULL, ISOLATIONLEVEL_SERIALIZABLE, 0, pITxOptions, &pITransaction); …

return Greeting; }}

Page 7: Live Meeting Technique N°3 Thomas LEBRUN – MVP WPF/Silverlight Florent SANTIN – MVP Team System Julien CORIOLAND - MSP

Productivité: Visual Studio & WCF

1 code + 2 configsecurity

0 code + 1 config reliable messaging

2 code + 1 config transactions

Total lines:3 code + 4 config

[ServiceContract]class HelloService { [OperationContract] [PrincipalPermission(SecurityAction.Demand, Role = “Adminstrators")] [TransactionFlow(TransactionFlowOption.Mandatory)] [OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)] String Hello(String Greeting) {return Greeting;}}

<bindings> <wsHttpBinding> <binding name="Binding1" transactionFlow="true"> <security mode="Message"> <message clientCredentialType="Windows“/> </security> <reliableSession enabled="true" /> </binding> </wsHttpBinding></bindings>

Page 8: Live Meeting Technique N°3 Thomas LEBRUN – MVP WPF/Silverlight Florent SANTIN – MVP Team System Julien CORIOLAND - MSP

L’hôte: ◦ Héberge le service

Le contrat:◦ Interface qui définit les opérations implémentées par le

service

Le service:◦ Qui implémente l’interface

Des points de terminaisons (endpoints):◦ Exposent le service

Composition d’un service WCF

Page 9: Live Meeting Technique N°3 Thomas LEBRUN – MVP WPF/Silverlight Florent SANTIN – MVP Team System Julien CORIOLAND - MSP

Héberge le service WCF◦ Utilisation de la classe ServiceHost

Peut-être de différent type:◦ Application console◦ Service Windows◦ Site Web◦ Etc.

L’hôte

Page 10: Live Meeting Technique N°3 Thomas LEBRUN – MVP WPF/Silverlight Florent SANTIN – MVP Team System Julien CORIOLAND - MSP

Définit les opérations qui seront implémentées par le service

2 attributs indispensables:◦ ServiceContract: Indique qu’une interface est un

contrat de service◦ OperationContract: Indique qu’une méthode est

une opération d’un contrat de service

Le contrat

Page 11: Live Meeting Technique N°3 Thomas LEBRUN – MVP WPF/Silverlight Florent SANTIN – MVP Team System Julien CORIOLAND - MSP

Classe qui implémente l’interface définissant le contrat de service

Définit toute la logique métier du service WCF:◦ Accès à une base de données◦ Accès à un annuaire Active Directory◦ Accès au système de fichiers◦ Etc.

Le service

Page 12: Live Meeting Technique N°3 Thomas LEBRUN – MVP WPF/Silverlight Florent SANTIN – MVP Team System Julien CORIOLAND - MSP

Comporte au moins 3 éléments (ABC):◦ Address:

Adresse (emplacement réseau) du service

◦ Binding: Protocole de communication (transport, encodage, sécurité, etc.) 9 Bindings proposés en standard:

BasicHttpBinding WSHttpBinding NetTcpBinding

◦ Contract: L’interface qui représente le contrat de service

Les points de terminaison

Page 13: Live Meeting Technique N°3 Thomas LEBRUN – MVP WPF/Silverlight Florent SANTIN – MVP Team System Julien CORIOLAND - MSP

DémoWCF: From A To …

Page 14: Live Meeting Technique N°3 Thomas LEBRUN – MVP WPF/Silverlight Florent SANTIN – MVP Team System Julien CORIOLAND - MSP

WCF propose une approche unifiée du développement d’applications orientées service

Peu de code est nécessaire:◦ Presque tout passe par le fichier de configuration

Nous n’avons couvert qu’une petite partie:◦ WCF est une technologie complexe !◦ A vous de l’approfondir…

Conclusions