SlideShare una empresa de Scribd logo
1 de 10
luca.milan@dotdotnet.org
 E’una libreria basata di WCF che facilita il compito
  dello sviluppatore che vuole creare API di natura
  Web
 Glenn Block durante il MIX11 ha presentato l’ultima
  versione, la più stabile e matura WCF Web API
  Preview 4
 Ad oggi non è un progetto Open Source; tuttavia è
  scaricabile dal link: https://hg01.codeplex.com/wcf
Semplificano la creazione ed il consumo di servizi
RESTful (SOAP) con il runtime WCF, grazie a:

   Un «modello ad oggetti» basato sul protocollo HTTP in
    cui trovano posto: URI, Verbs, StatusCode, Header,
    Operations, Request e Response, ecc…
   Un «modello di programmazione» basato sullo stile
    REST in cui sono espliciti i concetti di: Risorsa e
    Rappresentazione;
Vi sono alcuni scenari di utilizzo (laddove http://...):

   Realizzare Servizi Web in grado di esporre risorse in
    formato diverso a seconda del device connesso (JSON,
    CSV, XML, ecc..);
   Realizzare Architetture Scalabili in grado di sfruttare
    appieno le caratteristiche offerte by-default dall’HTTP
    (Caching Layer: Etag, Headers if-modified / if-modified-
    since)
Risorsa da manipolare

                     Operazioni da
                     compiere




                       Parametri delle
                       operazioni




Tipi di ritorno delle operazioni
Operation          Resource       Operation


OpHandler   OpHandler              OpHandler   OpHandler


OpHandler   OpHandler              OpHandler   OpHandler


OpHandler   OpHandler              OpHandler   OpHandler




                   Message Handler



                   Message Handler
1.   Semplici da Configurare, grazie ad una intuitiva
     interfaccia fluente in grado di nascondere la
     complessità di configurazione tipica di WCF;
2.   Semplici da Estendere, grazie ad un disegno
     architetturale SOLID che ha fatto buon uso dei
     Design Patterns nel codice;
3.   Facili da Consumare, grazie ad una serie di classi per
     gestire le richieste-risposte HTTP lato client (vi è
     anche un progetto a parte per l’integrazione con
     JQuery)
   Message Handlers : vengono utilizzati per modificare le richieste
    o le risposte HTTP oppure per concludere immediatamente una
    richiesta restituendo una risposta appropriata (usati per
    concerns quali: logging, security, caching);
   Operation Handlers: vengono utilizzati per valorizzare i
    parametri di input e di output di un’operazione partendo dal
    messaggio in arrivo o viceversa (usati per trasformare in oggetti
    porzioni di URI o parti dell’header)
   Formatters: vengono utilizzati per trasformare il contenuto di
    un messaggio in un oggetto o viceversa (Json, Xml, Image, ecc..)
   Resource Factory: viene utilizzata per creare le delle istanze
    delle Risorse/Servizi (qui posso sfruttare un DI/IOC Container)
   Il codice proposto nella sessione è scaricabile da:
    http://bit.ly/k8vbHL
   Info Utili:
    ◦ http://wcf.codeplex.com/wikipage?title=WCF%20HTTP
    ◦ http://weblogs.asp.net/cibrax/default.aspx
    ◦ http://codebetter.com/glennblock/
   Sito e Codice Sorgente per le WCF WebAPI:
    http://wcf.codeplex.com
   La DotDotNet è un'associazione culturale con il compito di
    promuovere la più ampia diffusione dell'informatica, della
    telematica, della multimedialità e dei collaborative tools, con
    particolare attenzione allo sviluppo di software su piattaforma
    Microsoft .NET. (dall’art. 1 dello statuto DotDotNet)
   Associazione no-profit
    ◦ Opera in tutta la regione
   Gruppo di professionisti, studenti e appassionati.
   Feedback
   Adesione:
    http://dotdotnet.org/content/Adesione.aspx

Más contenido relacionado

Destacado

Web Api – The HTTP Way
Web Api – The HTTP WayWeb Api – The HTTP Way
Web Api – The HTTP Way
Luca Milan
 
Generazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NETGenerazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NET
Stefano Ottaviani
 
Deep diving C# 4 (Raffaele Rialdi)
Deep diving C# 4 (Raffaele Rialdi)Deep diving C# 4 (Raffaele Rialdi)
Deep diving C# 4 (Raffaele Rialdi)
DotNetMarche
 
Architetttura Della Soluzione
Architetttura Della SoluzioneArchitetttura Della Soluzione
Architetttura Della Soluzione
Luca Milan
 

Destacado (20)

Introduzione a MVVM e Caliburn.Micro
Introduzione a MVVM e Caliburn.MicroIntroduzione a MVVM e Caliburn.Micro
Introduzione a MVVM e Caliburn.Micro
 
Slide Prelaurea. Alessandro Andreosè
Slide Prelaurea. Alessandro AndreosèSlide Prelaurea. Alessandro Andreosè
Slide Prelaurea. Alessandro Andreosè
 
Web Api – The HTTP Way
Web Api – The HTTP WayWeb Api – The HTTP Way
Web Api – The HTTP Way
 
Brokering over WCF @ dotNetMarche
Brokering over WCF @ dotNetMarcheBrokering over WCF @ dotNetMarche
Brokering over WCF @ dotNetMarche
 
m-v-vm @ UgiAlt.Net
m-v-vm @ UgiAlt.Netm-v-vm @ UgiAlt.Net
m-v-vm @ UgiAlt.Net
 
Data binding for dummies - Microsoft publish 2014
Data binding for dummies - Microsoft publish 2014Data binding for dummies - Microsoft publish 2014
Data binding for dummies - Microsoft publish 2014
 
Linq ed oltre
Linq ed oltreLinq ed oltre
Linq ed oltre
 
Tesi Laurea Specialistica Ingegneria Informatica. Alessandro Andreosè
Tesi Laurea Specialistica Ingegneria Informatica. Alessandro AndreosèTesi Laurea Specialistica Ingegneria Informatica. Alessandro Andreosè
Tesi Laurea Specialistica Ingegneria Informatica. Alessandro Andreosè
 
le novità di C# 6
le novità di C# 6le novità di C# 6
le novità di C# 6
 
C# 3.0 e LINQ
C# 3.0 e LINQC# 3.0 e LINQ
C# 3.0 e LINQ
 
Generazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NETGenerazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NET
 
TFS - Quale source control
TFS - Quale source controlTFS - Quale source control
TFS - Quale source control
 
Deep diving C# 4 (Raffaele Rialdi)
Deep diving C# 4 (Raffaele Rialdi)Deep diving C# 4 (Raffaele Rialdi)
Deep diving C# 4 (Raffaele Rialdi)
 
Tutte le novità di ASP.NET MVC3
Tutte le novità di ASP.NET MVC3Tutte le novità di ASP.NET MVC3
Tutte le novità di ASP.NET MVC3
 
Introduzione WPF
Introduzione WPFIntroduzione WPF
Introduzione WPF
 
Windows 10 app design
Windows 10 app designWindows 10 app design
Windows 10 app design
 
Architetttura Della Soluzione
Architetttura Della SoluzioneArchitetttura Della Soluzione
Architetttura Della Soluzione
 
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLDTYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
 
Managed Extensibility Framework (MEF)
Managed Extensibility Framework (MEF)Managed Extensibility Framework (MEF)
Managed Extensibility Framework (MEF)
 
Dai delegati a LINQ con C#
Dai delegati a LINQ con C#Dai delegati a LINQ con C#
Dai delegati a LINQ con C#
 

Similar a Usare le nuove WCF Web Api per creare servizi RESTful

Signal r to the-max
Signal r to the-maxSignal r to the-max
Signal r to the-max
DotNetCampus
 
Del furia signalr-to-the-max
Del furia   signalr-to-the-maxDel furia   signalr-to-the-max
Del furia signalr-to-the-max
DotNetCampus
 

Similar a Usare le nuove WCF Web Api per creare servizi RESTful (20)

Yii Framework - yes it is rapid web application development (Parte 1)
Yii Framework - yes it is rapid web application development (Parte 1)Yii Framework - yes it is rapid web application development (Parte 1)
Yii Framework - yes it is rapid web application development (Parte 1)
 
Cv 2014 richard_gennaro_ eur_it
Cv 2014 richard_gennaro_ eur_itCv 2014 richard_gennaro_ eur_it
Cv 2014 richard_gennaro_ eur_it
 
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3
 
ASP.NET performance optimization
ASP.NET performance optimizationASP.NET performance optimization
ASP.NET performance optimization
 
CakePhp Linux Day Torino '09
CakePhp Linux Day Torino '09CakePhp Linux Day Torino '09
CakePhp Linux Day Torino '09
 
World wide web
World wide webWorld wide web
World wide web
 
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
 
Ddive Xpage852
Ddive Xpage852Ddive Xpage852
Ddive Xpage852
 
Catasto Rumore Struttura Informatica
Catasto Rumore Struttura InformaticaCatasto Rumore Struttura Informatica
Catasto Rumore Struttura Informatica
 
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...
 
Esposizione RIA
Esposizione RIAEsposizione RIA
Esposizione RIA
 
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!
 
Signal r to the-max
Signal r to the-maxSignal r to the-max
Signal r to the-max
 
Del furia signalr-to-the-max
Del furia   signalr-to-the-maxDel furia   signalr-to-the-max
Del furia signalr-to-the-max
 
Installazione del cms alfresco
Installazione del cms alfrescoInstallazione del cms alfresco
Installazione del cms alfresco
 
phpday 2006 - SEA case study
phpday 2006 - SEA case studyphpday 2006 - SEA case study
phpday 2006 - SEA case study
 
Grasso Frameworks Ajax
Grasso Frameworks AjaxGrasso Frameworks Ajax
Grasso Frameworks Ajax
 
Link. php [santi caltabiano]
  Link. php [santi caltabiano]  Link. php [santi caltabiano]
Link. php [santi caltabiano]
 
September 2010 - Gatein
September 2010 - GateinSeptember 2010 - Gatein
September 2010 - Gatein
 

Más de Luca Milan

Azure WebSites for Developers
Azure WebSites for DevelopersAzure WebSites for Developers
Azure WebSites for Developers
Luca Milan
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni web
Luca Milan
 
Il difficile mestiere dello sviluppatore: un approccio feature oriented.
Il difficile mestiere dello sviluppatore: un approccio feature oriented.Il difficile mestiere dello sviluppatore: un approccio feature oriented.
Il difficile mestiere dello sviluppatore: un approccio feature oriented.
Luca Milan
 
What's new in Asp.Net 4.5 (and WebApi)
What's new in Asp.Net 4.5 (and WebApi)What's new in Asp.Net 4.5 (and WebApi)
What's new in Asp.Net 4.5 (and WebApi)
Luca Milan
 

Más de Luca Milan (7)

Enabling DevOps for Machine Learning with Azure Pipelines
Enabling DevOps for Machine Learning with Azure PipelinesEnabling DevOps for Machine Learning with Azure Pipelines
Enabling DevOps for Machine Learning with Azure Pipelines
 
"Don't call us, we'll call you" - AngularJS meets Event-Driven Architecture
"Don't call us, we'll call you" - AngularJS meets Event-Driven Architecture"Don't call us, we'll call you" - AngularJS meets Event-Driven Architecture
"Don't call us, we'll call you" - AngularJS meets Event-Driven Architecture
 
Azure WebSites for Developers
Azure WebSites for DevelopersAzure WebSites for Developers
Azure WebSites for Developers
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni web
 
Il difficile mestiere dello sviluppatore: un approccio feature oriented.
Il difficile mestiere dello sviluppatore: un approccio feature oriented.Il difficile mestiere dello sviluppatore: un approccio feature oriented.
Il difficile mestiere dello sviluppatore: un approccio feature oriented.
 
What's new in Asp.Net 4.5 (and WebApi)
What's new in Asp.Net 4.5 (and WebApi)What's new in Asp.Net 4.5 (and WebApi)
What's new in Asp.Net 4.5 (and WebApi)
 
Approccio Pratico al Domain Driven Design
Approccio Pratico al Domain Driven DesignApproccio Pratico al Domain Driven Design
Approccio Pratico al Domain Driven Design
 

Usare le nuove WCF Web Api per creare servizi RESTful

  • 2.  E’una libreria basata di WCF che facilita il compito dello sviluppatore che vuole creare API di natura Web  Glenn Block durante il MIX11 ha presentato l’ultima versione, la più stabile e matura WCF Web API Preview 4  Ad oggi non è un progetto Open Source; tuttavia è scaricabile dal link: https://hg01.codeplex.com/wcf
  • 3. Semplificano la creazione ed il consumo di servizi RESTful (SOAP) con il runtime WCF, grazie a:  Un «modello ad oggetti» basato sul protocollo HTTP in cui trovano posto: URI, Verbs, StatusCode, Header, Operations, Request e Response, ecc…  Un «modello di programmazione» basato sullo stile REST in cui sono espliciti i concetti di: Risorsa e Rappresentazione;
  • 4. Vi sono alcuni scenari di utilizzo (laddove http://...):  Realizzare Servizi Web in grado di esporre risorse in formato diverso a seconda del device connesso (JSON, CSV, XML, ecc..);  Realizzare Architetture Scalabili in grado di sfruttare appieno le caratteristiche offerte by-default dall’HTTP (Caching Layer: Etag, Headers if-modified / if-modified- since)
  • 5. Risorsa da manipolare Operazioni da compiere Parametri delle operazioni Tipi di ritorno delle operazioni
  • 6. Operation Resource Operation OpHandler OpHandler OpHandler OpHandler OpHandler OpHandler OpHandler OpHandler OpHandler OpHandler OpHandler OpHandler Message Handler Message Handler
  • 7. 1. Semplici da Configurare, grazie ad una intuitiva interfaccia fluente in grado di nascondere la complessità di configurazione tipica di WCF; 2. Semplici da Estendere, grazie ad un disegno architetturale SOLID che ha fatto buon uso dei Design Patterns nel codice; 3. Facili da Consumare, grazie ad una serie di classi per gestire le richieste-risposte HTTP lato client (vi è anche un progetto a parte per l’integrazione con JQuery)
  • 8. Message Handlers : vengono utilizzati per modificare le richieste o le risposte HTTP oppure per concludere immediatamente una richiesta restituendo una risposta appropriata (usati per concerns quali: logging, security, caching);  Operation Handlers: vengono utilizzati per valorizzare i parametri di input e di output di un’operazione partendo dal messaggio in arrivo o viceversa (usati per trasformare in oggetti porzioni di URI o parti dell’header)  Formatters: vengono utilizzati per trasformare il contenuto di un messaggio in un oggetto o viceversa (Json, Xml, Image, ecc..)  Resource Factory: viene utilizzata per creare le delle istanze delle Risorse/Servizi (qui posso sfruttare un DI/IOC Container)
  • 9. Il codice proposto nella sessione è scaricabile da: http://bit.ly/k8vbHL  Info Utili: ◦ http://wcf.codeplex.com/wikipage?title=WCF%20HTTP ◦ http://weblogs.asp.net/cibrax/default.aspx ◦ http://codebetter.com/glennblock/  Sito e Codice Sorgente per le WCF WebAPI: http://wcf.codeplex.com
  • 10. La DotDotNet è un'associazione culturale con il compito di promuovere la più ampia diffusione dell'informatica, della telematica, della multimedialità e dei collaborative tools, con particolare attenzione allo sviluppo di software su piattaforma Microsoft .NET. (dall’art. 1 dello statuto DotDotNet)  Associazione no-profit ◦ Opera in tutta la regione  Gruppo di professionisti, studenti e appassionati.  Feedback  Adesione: http://dotdotnet.org/content/Adesione.aspx