Con il termine web 2.0 si intende indicare un nuovo modo di sfruttare le tecnologie già esistenti per fornire una migliore e ricca esperienza su internet. Di fatto vuol dire utilizzare in modo completo gli standard ad essi dedicati, come il protocollo HTTP, l'HTML, CSS e JavaScript. AJAX non è altro che un nome per riassumere l'uso di queste tecnologie per rendere più dinamiche le pagine internet, a volte anche rimpiazzando quelle tipologie di applicazioni web che solitamente si è più portati a sviluppare in Flash o in Silverlight.
Il web 2.0 non è inteso solamente come tecnologie fini all'applicazione stessa, ma anche messe a disposizione per fruire delle informazioni con alternative all'HTML. Si espongono quindi servizi che possono essere consumati tramite HTTP mediante principalmente due tecniche:
- l'uso dei metodi HTTP (GET/POST/PUT/DELETE) per rappresentare ed eseguire operazioni, in genere CRUD in virtù dei significati del metodi;
- l'uso di SOAP e WS-* per effettuare richieste e ottenere risposte in XML.
La prima tecnica semplifica notevolmente l'approccio, rendendolo più manuale e personalizzabile. Il contenuto della richiesta e della risposta, la gestione degli errori, l'autenticazione sono aspetti demandati allo sviluppatore che deve fornire l'opportuna documentazione che le terze parti possono sfruttare.
Con SOAP e WS-* si sfruttano una serie di standard che definiscono molteplici aspetti, tra cui l'autenticazione, le policy di sicurezza, la gestione di transazioni, la codifica, e demandano allo sviluppatore, grazie ai framework per essi costruiti, solo la definizione della struttura dati, anch'essa definita mediante uno standard: XSD.
WCF come framework
In questo articolo si affronta la prima tecnica, la quale si presta maggiormente per la definizione di servizi che vengono poi consumati tramite AJAX, cioè da una pagina HTML. Per farlo si sfrutta un framework, di nome WCF (Windows Communication Foundation), nato per facilitare lo scambio di informazioni e la definizione di servizi. Con questo termine si indica qualcosa di molto generico che può avere un ampio significato per lo scambio di dati tra oggetti, tra AppDomain, tra processi, o tra macchine. Tutto questo fa quindi capire che WCF è un motore e non importa il mezzo di trasporto (HTTP, TCP, MSMQ, altri protocolli, altre astrazioni), ne la codifica che si utilizza (testo, XML, json, binario, altre codifiche), ne dove si trovano le informazioni.
Per questo motivo dalla versione 4.0 del .NET Framework, WCF si è arricchito di strumenti per supportare lo sviluppo di servizi REST/POX. Ciò significa che è in grado di sfruttare HTTP come mezzo di trasporto e la serializzazione dei dati (la trasformazione delle informazioni) in JSON o in XML. WCF non è l'unico strumento per creare servizi di questo genere e già si è avuto modo di parlare di ASP.NET MVC, così come in un futuro articolo si parla di ASP.NET. In questo articolo si propone l'uso di WCF perché presenta numerosi vantaggi:
- è sufficiente un solo skill per realizzare ogni genere di servizio;
- una volta sviluppato un servizio questo può essere consumato non solo tramite REST, ma anche con altre metodologie (feed RSS, SOAP, altro) arricchendolo di funzionalità che non sono possibili tramite REST (ad esempio callback di notifiche);
- permette una migliore gestione del versioning;
- non è strettamente legato ad ASP.NET;
- permette una gestione modulare di tutta la pipeline di gestione di una richiesta;
- è possibile sviluppare un servizio ignorando completamente la parte HTTP. Un servizio può essere sottoposto infatti a unit test;
- WCF fornisce una serie di automatismi di generazione codice javascript e HTML per supportare facilmente client AJAX.
Illustrato le caratteristiche principali del framework, è bene cominciare a capire come sviluppare un servizio REST /POX, dando per scontato che si conoscano le basi di WCF, affrontate nell'articolo introduttivo. L'esempio che si vuole sviluppare in questo articolo pone la realizzazione di un servizio di nome BookService per l'interrogazione e la manipolazione di un database di libri.
Attenzione: Questo articolo contiene un allegato.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Applicare un filtro per recuperare alcune issue di GitHub
Proteggere le risorse Azure con private link e private endpoints
Creazione di componenti personalizzati in React.js con Tailwind CSS
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Utilizzare Copilot con Azure Cosmos DB
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Testare l'invio dei messaggi con Event Hubs Data Explorer
Sfruttare lo stream rendering per le pagine statiche di Blazor 8
Migliorare l'organizzazione delle risorse con Azure Policy
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Creare una libreria CSS universale: Clip-path