WebService??

giovedì 06 febbraio 2014 - 20.00
Tag Elenco Tags  VB.NET  |  .NET 4.0

86Marco Profilo | Expert

Salve ragazzi e buona sera a tutti.
Da qualche anno sviluppo in asp.net discrete applicazioni web ma non ho mai utilizzato webservice.

Vorrei cominciare a studiare bene questi ultimi e capire dove e perché è meglio utilizzarli o meno...

Vorrei chiederVi cosa di fatto sia un webservice (asmx) e a cosa effettivamente può essere utile, inoltre vorrei sapere se qualcuno di Voi conoscere qualche buon libro che spieghi bene questi concetti oltre a come crearli e utilizzarli.

Grazie

alx_81 Profilo | Guru

>Salve ragazzi e buona sera a tutti.
ciao

>Vorrei cominciare a studiare bene questi ultimi e capire dove e perché è meglio utilizzarli o meno...
>Vorrei chiederVi cosa di fatto sia un webservice (asmx) e a cosa effettivamente può essere utile,
diciamo che sei un po' in ritardo. Come filosofia sono un concetto valido, come tecnologia sono passati anni luce. Quindi, personalmente, ti consiglio di cambiare approccio.
In generale un web service (senza parlare di asmx in particolare) è un servizio fornito via web utile a disaccoppiare il "chiamante" dal "chiamato".
Questo serve per rendere i vari componenti dell'applicazione che stai scrivendo molto autonomi e modulari (il che si può tradurre anche in termini "commerciali" con semplicità di lavoro in parallelo, terzializzazione, ecc.).
In poche parole un web service ti porta a definire quello che in gergo è definito "contratto" che servirà come protocollo di comunicazione (regole) tra chi chiama e chi è chiamato e risponde.
Il bello di questo (ed il punto forte) sta nel fatto che nessuno dei due punti (chiamante e chiamato) devono necessarimente sapere come è fatto l'altro in termini di tecnologia, logiche di business, infrastruttura, architettura.

E' un po' come dire che tu ed io parliamo l'italiano e applichiamo le regole della lingua. Ma quello che fai tu durante la giornata, a me non interessa. E nemmeno a te interessa cosa faccio io.. l'importante è che quando comunichiamo parliamo l'italiano.

In termini tecnici, una pagina web, potrebbe avere bisogno di un dato che sta su un server non proprio dell'applicazione.. Ad esempio un ente centrale che rilascia il calcolo del codice fiscale. La pagina web chiama un servizio dato dall'ente centrale (un'anagrafe informatica) passando quanto definito nel contratto (nome, cognome, data di nascita, genere, città di nascita, cittadinanza) e riceve una risposta "serializzata" nel formato scelto (XML, json, ..) usando il protocollo definito dai due (http, http rest, ..). La risposta ricevuta e deserializzata dall'XML all'oggetto interno poi, viene consumata nell'applicazione che ha chiamato.
Come vedi, l'app e l'ente nemmeno si conoscono. Sanno solo quello che uno fa e quello che serve.

Se prendi facebook, esso utilizza ajax (con javascript e i suoi più famosi framework - jquery su tutti) per fare chiamate a server. Quindi, nella sua realtà, non chiama enti, ma chiama componenti del proprio "mondo" usando logiche di servizio. In poche parole, il code behind a cui sei abiutato è solo un linguaggio lato server utile a chiamare servizi. Non più a fare logiche DENTRO al sito web e quindi NON RIUTILIZZABILI. Chiamando un servizio, si delega al componente che risponde di prendere le decisioni che servono per risolvere un problema.

Ho cercato di fartela breve.. ma c'è un mondo. Ora stanno andando forte gli MVC pattern e le WEBApi (che ti consiglio http://www.asp.net/web-api).
Ma c'è davvero un mondo. Secondo me devi chiederti cosa devi fare, ed, in base a quello, scegliere la migliore via (rapporto qualità/supporto) presente sul mercato.
Ormai il sapere un po' tutto in generale, per noi informatici, sta FINALMENTE morendo.. Ci sono talmente tante cose che è giusto iniziare a specializzarsi ed approfondire il più possibile sul settore di nostra competenza.

>Grazie
di nulla!
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

86Marco Profilo | Expert

Ciao Alessandro.
sei sempre molto chiaro! :) Grazie

86Marco Profilo | Expert

Ciao Alex,
ho letto, riletto, pensato e ripensato a quello che mi ha gentilmente risposto. Il tutto è molto chiaro ma dovendo procedere allo sviluppo si un piccolo programma non so che strada prendere.

Il programma in oggetto deve essere una win application (sviluppata in C# o Vb.net).

Questa applicazione dovrebbe collegarsi ad un servizio web (che risiede in un server web esterno) che, ricevuto dei parametri, effettua una serie di operazioni e poi restituisce un codice di prenotazione al client windows.

Ora: già in passato ho creato web service (molto semplici) con l'opportunità di poter essere questi agganciati da una win application, ma senza i web services non so quale strada prendere ... che mi consigli? Considera che io non ho nulla di pronto... devo creare sia la parte client che server.


grazie :)

alx_81 Profilo | Guru

>Questa applicazione dovrebbe collegarsi ad un servizio web (che
>risiede in un server web esterno) che, ricevuto dei parametri,
>effettua una serie di operazioni e poi restituisce un codice
>di prenotazione al client windows.
ma il web server comunque è "tuo", nel senso, puoi lavorarci?

>Ora: già in passato ho creato web service (molto semplici) con
>l'opportunità di poter essere questi agganciati da una win application,
>ma senza i web services non so quale strada prendere ... che
>mi consigli? Considera che io non ho nulla di pronto... devo
>creare sia la parte client che server.
Personalmente farei:
- webApi sul server web
- se il server web non può essere visto dai client, host che riceve le chiamate dai client e che si interfaccia con le webApi
- client in WPF che chiama l'host (o che chiama il web server se può)

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5