[WCF #01] Come non iniziare dall'ABC ??
L'avrete sentito centinaia di volte...no?? Allora ci provo io ...
Alla base dell'architettura di Windows Communication Foundation c'è l'ABC:
In sostanza un endpoint di un servizio è costituito dall'insieme di questi tre elementi. L'address indica come poter raggiungere il servizio (dove). Il binding indica la modalità con cui un consumer deve comunicare con il servizio (come). Il contract, infine, definisce quello che il servizio può fare (cosa). Se diamo un'occhiata al file di configurazione di un servizio WCF troveremo tutti e tre gli elementi:
<system.serviceModel>
<services>
<service name="MyService">
<endpoint address="http://localhost/MyService/MyService.svc"
binding="basicHttpBinding"
contract="IMyService" />
</service>
</services>
</system.serviceModel>
Tradotto in codice un contratto altro non è che una interfaccia, come vediamo dall'interfaccia IMyService:
[ServiceContract()]
public interface IMyService
{
[OperationContract]
string GetMyName();
}
L'uso degli attributi ServiceContract e OperationContract servono per dichiarare un contratto di servizio WCF. L'implementazione di questa interfaccia è poi il codice che realmente servirà le richieste verso quel determinato endpoint. Esempio:
public class MyService : IMyService
{
public string GetMyName()
{
return "Fabio";
}
}
---
Che mondo sarebbe senza comunicazione ...