BlogServiceHost.Create()

WCF & Azure - Il blog di Fabio Cozzolino

Recent Posts

Tags

My

Twitter

Community

Archives

Email Notifications

Social Bar Widget

November 2008 - Posts

[WCF REST #0] REST in WCF

Con questo post inizio una serie dedicata a REST e al suo utilizzo all'interno di WCF. Partiamo quindi dall'inizio. Cos'è REST? REST sta per REpresentional State Transfer ed indica uno stile architetturale (non una tecnologia o una specifica, tenetelo bene a mente) per la realizzazione di soluzioni distribuite.

Non mi dilungo molto sulla definizione di REST per la quale vi rimando alle seguenti risorse:

Anche nella precedente versione di WCF era possibile utilizzare REST, ma si doveva scrivere parecchio codice prima di raggiungere un risultato accettabile. Nella versione 3.5, invece, sono state introdotte diverse novità che semplificano di molto l'approccio ma soprattutto l'integrazione con le altre tecnologie come ASP.NET AJAX e Silverlight.

Concetti base di REST

L'approccio REST, trattandosi appunto di uno stile architetturale, ci impone l'adozione di alcune regole. Innanzitutto, a differenza di quanto accadde nelle SOA, l'obiettivo principale non è il servizio reso, ma la risorsa con la quale intendiamo interagire. La risorsa deve necessariamente essere identificata univocamente e per questo necessità di un URI ben definito. Immaginiamo di voler accedere alle informazioni della risorsa "fabio.cozzolino" che identifica un utente nel dominio dotnetside.org. A quel punto il suo URI potrebbe essere:

http://dotnetside.org/members/fabio.cozzolino

In questo modo viene identificato univocamente l'utente "fabio" nel dominio dotnetside.org. Identificata la risorsa, posso decidere quali sono i metodi HTTP che devo utilizzare per richiedere la risorsa stessa o modificarne lo stato.

Metodo HTTP Descrizione
GET Recupera una risorsa
E’ in sola lettura
Cacheable
PUT Aggiorna una risorsa
Utilizzato anche per creare le risorse se il client ne conosce l’indirizzo a priori
Idempotent
DELETE Cancella la risorsa specificata
Idempotent
POST Crea una nuova risorsa
Unsafe

Il vantaggio di utilizzare i metodi HTTP consiste nel fornire le nostre applicazioni di una interfaccia unica e condivisa. GET,PUT,DELETE,POST sono metodi universalmente conosciuti e ampiamente supportati da diversi framework. In sostanza, quindi, l'utilizzo dell'HTTP, dei suoi metodi e più ampiamente anche dei suoi messaggi di risposta (Status Code) consente l'accesso alla nostra applicazione a qualsiasi client che li supporta, semplificandone l'utilizzo rispetto al più complesso sistema gestito in SOA.

REST sostituisce SOAP?

E' questa una domanda piuttosto frequente alla quale cercherò di dare una risposta definitiva. ASSOLUTAMENTE NO!!! Parliamo di due cose decisamente differenti. SOAP è un protocollo per lo scambio di messaggi tra un client ed un servizio. A SOAP, basato su xml e il cui formato è sostanzialmente molto semplice, si sono via via aggiunte negli anni una serie di specifiche (WS-*), di sicuro necessarie, che ne hanno reso però complesso l'utilizzo.

Ma con REST non stiamo scoprendo l'acqua calda. Esiste da diversi anni. Semplicemente il crescere di soluzioni web che fanno uso di AJAX o di Silverlight richiedono lo sviluppo di servizi semplici, facilmente consumabili. Questo ha portato alla ricerca di una soluzione alternativa a quella Service Oriented, spostando l'attenzione quindi su una soluzione ora definita come Resource Oriented (ROA, Resource Oriented Architecture).

Nei prossimi post vedremo come utilizzare REST in WCF.

Posted: Nov 30 2008, 05:24 AM by Fabio.Cozzolino | with 3 comment(s)
Filed under: ,
1000 e più ... GRAZIE !!!

Oggi abbiamo superato quota 1000 ISCRITTI !!! Un risultato grandissimo. GRAZIE a tutti!!!

Tutto questo si aggiunge all'ottima partecipazione avuta ieri durante l'evento Microsoft Days'08. Durante la giornata erano presenti all'incirca 300 persone mentre al Community After Hour eravamo sulla cinquantina di presenti. Un evento con un bacino di partecipanti più ristretto ma che hanno tenuto duro fino alla conclusione quando le lancette segnavano ormai inesorabilmente le 22:30.

E' sempre un piacere incontrare vecchi e nuovi amici. La community cresce e ci fa davvero molto piacere. Ed il prossimo anno ne vedrete delle belle, promesso ... Smile.

Come promesso durante l'evento, nei prossimi giorni approfondirò molti dei temi trattati attraverso una serie di post. A breve pubblicherò anche le slide e le demo fatte durante l'evento. Nel frattempo giusto qualche foto scattate con la mia fotocamera di emergenza, il telefonino Big Smile:

Pietro all'opera...

26112008(005) 26112008(006)

Giuseppe, un fiume in piena ... Wink

26112008(007) 26112008(008)

DotNetSide @ Microsoft Days'08

Manca ormai pochissimo alla tappa di Bari dei Microsoft Days'08 e i preparativi fervono. La sera, a partire dalle 18:00, vi aspettiamo con il Community After Hour e ho finalmente il piacere di annunciarvi che, oltre alle tre sessioni già previste, si aggiunge una sessione di apertura tenuta da Giuseppe Dimauro. Giuseppe è un grande amico di .netSide e, quando può, come in questo caso, ci dà molto volentieri una mano. Da parte mia non posso che ringranziarlo e ribadirgli che il suo contributo è davvero molto importante per noi.

Oltre all'evento community, noi di .netSide saremo presenti tutto il giorno e disponibili a chiacchierare con chiunque di voi abbia il piacere di farlo. Fatevi avanti, saremo lì apposta Wink.

Per tutto il resto ... ci vediamo mercoledì, vi aspettiamo...

Se non siete ancora registrati potete farlo da qui

BASTA!Italia

BASTA! è attualmente la più grande ed importante conferenza tedesca su .NET. Finalmente ora sbarca anche in italia grazie alla collaborazione con Dino Esposito, più volte speaker nell'edizione tedesca, che insieme a Sebastian Meyen ha creato BASTA!Italia, un evento con tre giorni di workshop e sei track differenti previsto a Roma dal 16 Marzo al 18 Marzo 2009. Un evento sicuramente imperdibile.

Per chi è interessato fino al 12 Dicembre è possibile prenotarsi con la formula del Very Early Bind. Prima prenotate più risparmiate.

Tutte le info sul sito ufficiale: http://www.bastaitalia.it.

Posted: Nov 09 2008, 03:39 PM by Fabio.Cozzolino | with no comments
Filed under:
[Messaggio di servizio] Per i partecipanti all'evento ASP.NET 3.5 Web Development...

... che hanno vinto un premio, compreso chi ha vinto il buono per il libro di Simone, vi chiedo di ricontattarmi privatamente attraverso questa pagina semplicemente per confermare i vostri contatti (email, etc...) al fine di poter ricevere il vostro premio. Grazie.

Linq To SQL is dead?

Negli ultimi giorni la notizia è rimbalzata molto. Forse troppo. Ad una prima lettura non mi era sembrato di aver letto che Microsoft ha deciso di "ammazzare" Linq To SQL. E' chiaro che due prodotti che in sostanza hanno lo stesso obiettivo si pestano un po i piedi. Una scelta è quindi d'obbligo e mi sembra scontato che Linq To Entities e Entity Framework hanno la meglio. E' semplice. Microsoft sta investendo davvero molto in Entity Framework.

Ecco che Microsoft ha voluto essere schietta e "avvisare" le community di sviluppatori che Linq To Entities sarà la strada maestra, quella su cui conviene investire. Ed è stata l'impressione che personalmente ho avuto dopo aver letto il post. Ma vari commenti che ho letto successivamente mi hanno un attimo lasciato perplesso. Linq To SQL è già morto? Anche se qualcuno è contento Big Smile... probabilmente no. Anzi, Linq To SQL continuerà a vivere ma vedrà crescere molto più rapidamente il suo fratellino, che senza dubbio un giorno, quando sarà grande, avrà deciso cosa fare.

L'ho detto diversi mesi fa: ero e sono convinto che Linq To SQL confluirà in Linq To Entities. Quello che funziona in Linq To SQL verrà senza dubbio introdotto in Linq To Entities. Chi ha investito in Linq To SQL continuerà (forse) ad utilizzarlo e non credo che nelle prossime versioni del .NET Framework verrà eliminato. Di sicuro non dobbiamo aspettarci novità, quelle sono riservate a Linq To Entities. Ma credo che l'investimento attualmente fatto in progetti, già conclusi o magari in corso di realizzazione, che sfruttano Linq To SQL non è assolutamente in bilico. L'avviso mira semplicemente a dire: se dovete investire, fatelo in Linq To Entities ma soprattutto diteci cosa salvereste di Linq To SQL. E lo hanno chiarito oggi.

Ma nel frattempo che si fa? Se Linq To SQL non evolverà e se Linq To Entities v1, la versione attualmente distribuita, è praticamente inutilizzabile, che si fa? Cosa dobbiamo utilizzare se vogliamo utilizzare un OR/M? NHibernate o ci scriviamo una DAL "old-style"? Boh...

Vedremo nei prossimi mesi, quelli che ci dividono dall'uscita del .NET Framework 4.0.

La mia non è la voce ufficiale Microsoft, assolutamente no. Sono solo mie considerazioni che vorrebbero aprire ad una discussione. I commenti sono aperti.

Posted: Nov 01 2008, 06:28 PM by Fabio.Cozzolino | with 2 comment(s)
Filed under: