Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Greenpeace
Programming WCF Services (terza edizione)
Recensito da Fabio Carucci il 09-02-2011 ore 11:15
Copertina ISBN: 9780596805487
Autori: Lowy Juval
Editore: O'Reilly Media
Lingua: Inglese
Anno: 2010
Pagine: 912
Allegati: Nessuno
Intel Cluster Studio XE
Questa terza edizione di un titolo molto popolare, aggiornato alle novità della versione 4 di Microsoft .NET Framework e relative a Windows Communication Foundation (WCF), scritto da una delle leggende dello sviluppo software industriale, dalle mie parti verrebbe definito un "mattone"; in realtà dopo averlo letto penso che chi voglia sapere "quasi" tutto riguardo WCF non può permettersi di ignorare questo testo.

Parecchie delle cose scritte in questo libro effettivamente non le ho mai trovate in altre fonti, non me ne meraviglio vista la fama dell'autore in termini di background e conoscenza. Riguardo il lettore tipo di questo testo non ho dubbi: il neofita troverà le basi per iniziare a progettare e sviluppare servizi WCF, l'intermediate e l'esperto troveranno pane per i loro denti.

Il primo capitolo riassume, in ottanta pagine, i fondamenti di WCF, utile lettura per il neofita, elencando con brevi esempi di codice i vari tipi di binding, di hosting, nonché in generale l'architettura. Il secondo e il terzo capitolo sono dedicati rispettivamente ai Service Contract e ai Data Contract; Lowy spiega come progettare una service contract factory e quali benefici ne conseguono in termini di disaccoppiamento di contratti contenenti poche operazioni; inoltre rende disponibile il codice d'esempio di un metodo statico di helper, utilizzabile quando si vuole interrogare un servizio e capire se esiste un endpoint, che espone un particolare contratto adatto ai nostri scopi; in altre parole Lowy mostra come interagire con System.ServiceModel.Description e le sue classi di helper, che permettono di processare programmaticamente i metadati dei servizi.

Il quarto e quinto capitolo sono a mio avviso decisamente importanti, poiché riguardano la gestione delle modalità di istanziazione dei servizi WCF rispetto ai client consumer e le modalità di invocazione dei singoli metodi WCF (Operation), l'autore spiega in dettaglio quali sono le differenze e i benefici rispetto alla scelta di configurare un servizio Per-Call, Per-Session Singleton, inoltre fornisce suggerimenti riguardo la configurazione del Throttling. Vengono descritte in dettaglio le modalità di invocazione dei metodi WCF, come configurare una operazione One-Way unitamente alla reliability, come sfruttare al meglio le invocazioni callback, farne il setup e gestirne il funzionamento; infine le ultime pagine del quinto capitolo sono dedicate allo streaming di messaggi di grandi dimensioni.

Il sesto capitolo illustra le exception restituite da WCF e soprattutto mostra alcune tecniche di gestione, la creazione del fault contract, il debugging semplice e, in caso di callback, la possibilità di creare behaviour custom della propagazione delle eccezioni nel codice.

Le cento pagine del settimo capitolo descrivono l'argomento Transaction, altro punto fondamentale di WCF; vi è la descrizione di ogni protocollo utilizzabile secondo il contesto e le esigenze delle transazioni (Lightweight, OleTx, WSAT) unitamente alla descrizione dei rispettivi manager (LTM, KTM, DTC). Ampio spazio con esempi di codice viene dato alla classe Transaction, alla configurazione dell'ambiente transazionale e ai metodi di propagazione da utilizzare in maniera dichiarativa; con la classe TransactionScope e le sue opzioni viene discussa la parte programmatica della gestione transazionale in WCF. Un altro argomento mostrato è la gestione della modalità di istanziazione dei servizi nelle transazioni, quindi come gestire la modalità Per-Call, Per-Session Singleton e il callback.

La gestione delle istanze, unitamente alle problematiche di concorrenza, è l'argomento dell'ottavo capitolo: il ConcurrencyMode.Single, Multiple, Reentrant sono le prime modalità descritte e l'accesso concorrente è mostrato suddiviso per Per-Call, e Singleton; inoltre molto interessanti sono le informazioni e gli esempi di codice riguardanti la necessità, in alcuni scenari, che WCF sia in grado di aggiornare user interface e quindi operare in contesti di thread differenti, nonché effettuare attività con operazioni callback sincrone e asincrone. Veramente un ottimo capitolo.

Altro capitolo decisamente importante è il nono, in cui l'autore disquisisce riguardo i servizi disconnessi e quindi la gestione degli accodamenti di messaggi WCF; una breve panoramica architetturale, come configurare i queue service, la creazione di una coda per MSMQ, la gestione di essa in una transazione e la gestione delle code dead-letter sono alcuni degli argomenti discussi.

Il decimo capitolo contiene quasi cento pagine in cui Lowy parla di sicurezza: le modalità di protezione a livello di trasporto e di messaggio e la gestione delle identità e delle autenticazioni sono i principali argomenti affrontati; nel capitolo c'è anche una suddivisione delle tipologie di security secondo scenari intranet, internet, B2B e anonymous application, quindi si discute di tipi di binding utilizzabili, di protezione dei messaggi, di impersonation e di windows authentication.

L'undicesimo capitolo è dedicato esclusivamente a WCF integrato in Windows Azure, altrimenti chiamato AppFabric Service Bus: l'autore spiega cos'è un Relay Service Address, a cosa serve il Service Bus Registry, il Service Bus Explorer, il buffering service, la security e soprattutto quali sono i binding disponibili per questo tipo di WCF esposto dal namespace Microsoft.ServiceBus.

Juval Lowy ha inoltre arricchito il libro con ben sette appendici utili a neofiti ed esperti, nelle quali trovano posto: la storia della Service Orientation; gli header e i context; il discovery dei servizi; il servizio di Publish-Subscribe; un piccolo framework chiamato Generic Interceptor spiegato e reso disponibile dall'autore; un elenco di regole standard e best practice per la codifica di WCF; infine la lista dei metodi di ServiceModelEx, l'estensione per WCF scritta dallo stesso autore e reperibile su sito O'Reilly.
proQuesto testo è una sorta di Bibbia per chi implementa servizi WCF e contiene soluzioni a problemi non documentati, oltre a parecchio codice di esempio.
controNessuno.
Precedente: Dieci minuti con JavaScript
Successiva: Documentare un DB SQL Server con le extended property
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.325 secondi.