Come abbiamo visto WCF è disponibile dal Framework 3.0 di .Net
Espone servizi con 4 diversi tipi di protocollo:
Si basa su 3 semplici concetti:
1. Cosa voglio comunicare (Contract) che si divide in :
· OperationContract : metodi del servizio utilizzabili dal client
· DataContract : strutture dati (classi enum e struct) condivisi con il client
· DataMember : Proprietà pubbliche del servizio
2. Come voglio comunicare (Binding)
3. Dove voglio sia accessibile (Address)
Abbiamo quindi i seguenti attributi da tener presente :
[ServiceContract] =>Indica che l’interfaccia è il contratto
[OperationContract] =>Le operazioni possibili
[DataContract] =>I dati
[DataMember]=>Si definiscono i membri del dato
Ovviamente i DataContract devono essere oggetti serializzabili!!!!!!
Un servizio WCF può essere configurato come servizio di sistema
Un servizio WCF può essere ospitato da IIS
Un servizio WCF può essere inserito all’interno di una applicazione ASP.NET (WebService)
E infine abbiamo WCF – ADO.NET Data Services, dove abbiamo ADO.NET Entity Framework come modello per l’accesso ai dati utilizzato dal servizio e possiamo interrogare un nostro db tramite query string via URI:
CustomersBindingSource.DataSource = NorthwindContext.Execute(Of Orders)(new uri(“/Customers(‘ALFKI’)/Orders?orderby=OrderDate”, UriKind.Relative))
O tramite LINQ to Data Services
NorthwindContext = new NORTHWNDEntities(new Uri(“http://localhost:1552/NorthwindWebDataService.svc”))
Dim categorie = From cat in NorthwindContext.Categoria _
Order By cat.CategoryName _
Select cat
E abbiamo dei metodi specifici per le operazioni CRUD.