PDA

View Full Version : [???] Creazione di un servizio web per la gestione di Utenze


[Kendall]
16-10-2013, 10:33
Salve ragazzi,
parto dicendo che per me (che ho alle spalle anni di programmazione tra desktop e mobile ma mai ho avuto moto di approfondire qualsiasi tematica sullo sviluppo web, sia lato client che lato server) questo è un campo assolutamente sconosciuto, e pertanto non so se userò terminologie adeguate e/o corrette.

Il mio problema è il seguente:
Ho scritto una applicazione (sia desktop che mobile, nel caso specifico Windows, Windows RT e Android) per la gestione interattiva di alcune schede per un gioco di ruolo. "
L'applicazione in oggetto si occupa di gestire tutta una serie di statistiche del personaggio giocato, oltre ad offrire una serie di tool utili per il gioco stesso (es° classico il tool per il tiro dei dadi e il calcolo dei successi).
Il salvataggio e la lettura di tutti i dati che concernono la scheda avviene tramite il classico file XML.
Attualmente caricamento e salvataggio vengono fatti dallo storage locale, con pregi e difetti che ne susseguono.

E qui viene l'effettivo problema mio:
Avrei la necessità di sviluppare un servizio web (è corretto chiamarlo così?) che si occupi della gestione di più utenze (con il classico login tramite username e password), e permetta il salvataggio e caricamento remoto delle schede di personaggio sui programmi client descritti sopra.

Potreste spiegarmi qual'è il tipo di servizio che dovrei creare, ed eventualmente le conoscenze che devo acquisire per farlo? (Io programmo in C# e Java, ma se fosse non ho alcun problema a imparare nuovi linguaggi/strumenti).
Ovviamente il prerequisito di questo servizio è la possibilità di dialogare con tecnologie diverse (cioè applicativi scritti in C# e Java, e magari pure altro in futuro se decidiamo di fare versioni per iOS e/o OSX).

Se servono altre informazioni ovviamente chiedete pure, e ringrazio chiunque vorrà aiutarmi. :)

ingframin
16-10-2013, 16:10
;40120749']Salve ragazzi,
parto dicendo che per me (che ho alle spalle anni di programmazione tra desktop e mobile ma mai ho avuto moto di approfondire qualsiasi tematica sullo sviluppo web, sia lato client che lato server) questo è un campo assolutamente sconosciuto, e pertanto non so se userò terminologie adeguate e/o corrette.

Il mio problema è il seguente:
Ho scritto una applicazione (sia desktop che mobile, nel caso specifico Windows, Windows RT e Android) per la gestione interattiva di alcune schede per un gioco di ruolo. "
L'applicazione in oggetto si occupa di gestire tutta una serie di statistiche del personaggio giocato, oltre ad offrire una serie di tool utili per il gioco stesso (es° classico il tool per il tiro dei dadi e il calcolo dei successi).
Il salvataggio e la lettura di tutti i dati che concernono la scheda avviene tramite il classico file XML.
Attualmente caricamento e salvataggio vengono fatti dallo storage locale, con pregi e difetti che ne susseguono.

E qui viene l'effettivo problema mio:
Avrei la necessità di sviluppare un servizio web (è corretto chiamarlo così?) che si occupi della gestione di più utenze (con il classico login tramite username e password), e permetta il salvataggio e caricamento remoto delle schede di personaggio sui programmi client descritti sopra.

Potreste spiegarmi qual'è il tipo di servizio che dovrei creare, ed eventualmente le conoscenze che devo acquisire per farlo? (Io programmo in C# e Java, ma se fosse non ho alcun problema a imparare nuovi linguaggi/strumenti).
Ovviamente il prerequisito di questo servizio è la possibilità di dialogare con tecnologie diverse (cioè applicativi scritti in C# e Java, e magari pure altro in futuro se decidiamo di fare versioni per iOS e/o OSX).

Se servono altre informazioni ovviamente chiedete pure, e ringrazio chiunque vorrà aiutarmi. :)

Visto che gia' lo conosci Java is the way...
Alla fine puoi dialogare tramite XML o JSON. Il linguaggio con cui sviluppi il web service e' indipendente dalla piattaforma con cui lo leggi, altrimenti dove sta il vantaggio del web? :P

[Kendall]
16-10-2013, 16:23
Visto che gia' lo conosci Java is the way...
Alla fine puoi dialogare tramite XML o JSON. Il linguaggio con cui sviluppi il web service e' indipendente dalla piattaforma con cui lo leggi, altrimenti dove sta il vantaggio del web? :P

Il C#, che preferisco e che so comunque usare decisamente meglio del Java, è un'altra alternativa valida?
Hai per caso qualche lettura da consigliarmi riguardo lo sviluppo di web services?

Comunque grazie per l'aiuto, gentilissimo ;)

tomminno
17-10-2013, 11:13
;40122877']Il C#, che preferisco e che so comunque usare decisamente meglio del Java, è un'altra alternativa valida?
Hai per caso qualche lettura da consigliarmi riguardo lo sviluppo di web services?

Comunque grazie per l'aiuto, gentilissimo ;)

Se conosci meglio c# allora buttati su WCF.
Qui (http://msdn.microsoft.com/en-us/library/dd483346.aspx) ci sono alcuni esempi di utilizzo.
La documentazione in rete è ampiamente disponibile.

RobyG_08
17-10-2013, 11:56
Se ti trovi bene con C# sei praticamente a cavallo, ti sviluppi la tua libreria di gestione dei dati o quel che ti serve e poi implementi un webservice che espone i metodi che ti serve raggiungere. Come ti han già detto utilizzando uno standard di serializzazione/deserializzazione (io andrei di JSON), non sussiste il problema della piattaforma di utilizzo. Visto che si tratta anche di login e quant'altro cerca di curare anche l'aspetto security del tuo servizio web.

Tuvok-LuR-
17-10-2013, 12:15
In realtà non ti serve un servizio web ma un semplice server che potrebbe benissimo comunicare via TCP, se hai intenzione di farlo in C# è sicuramente la via migliore.

Se hai intenzione di comunicare con delle web app in futuro però forse è meglio creare un'API RESTful ed in quel campo è decisamente meglio puntare su Java e Servlets.
Come formato JSON ormai è lo standard ma se vuoi puoi benissimo usare xml.

Poi devi considerare anche le implicazioni pratiche, se il server deve essere raggiungibile da ovunque non potrai farlo sul pc di casa ma dovrai hostarlo da qualche parte e la prima implementazione è leggermente meno comune e più costosa.

tomminno
17-10-2013, 13:52
In realtà non ti serve un servizio web ma un semplice server che potrebbe benissimo comunicare via TCP, se hai intenzione di farlo in C# è sicuramente la via migliore.

Se hai intenzione di comunicare con delle web app in futuro però forse è meglio creare un'API RESTful ed in quel campo è decisamente meglio puntare su Java e Servlets.
Come formato JSON ormai è lo standard ma se vuoi puoi benissimo usare xml.

Poi devi considerare anche le implicazioni pratiche, se il server deve essere raggiungibile da ovunque non potrai farlo sul pc di casa ma dovrai hostarlo da qualche parte e la prima implementazione è leggermente meno comune e più costosa.

Un'API RESTful si può fare anche con WCF molto semplicemente.
Se poi uno ha anche il problema dell'hosting, difficile trovarne uno Java, molto più semplice trovarne uno Windows.

[Kendall]
17-10-2013, 14:07
Ragazzi, davvero grazie mille per le dritte che mi avete dato tutti.
Data la conoscenza ben più ampia di C# cercherò informazioni e materiale riguardo alle WCF (già ieri sera avevo addocchiato qualcosa leggendo sul web che queste API erano la via preferenziale per quello che serviva a me, e ora con le vostre dritte ne ho avuto ampia conferma).

Riguardo al JSON non dovrei aver alcun problema a trasformare le attuali api che ho scritto per il salvataggio/caricamento dei dati in XML.

Quindi direi di partire: quasi sicuro che nel futuro prossimo vi stressero ulteriormente su questo topic (dato che appunto per me quello dei servizi web e affini è tutto un campo nuovo).

Nel frattempo grazie ancora a tutti!

Ovviamente se avete altre dritte dite pure!