Parse.com : piattaforma cloud per desktop e mobile
La settimana scorsa ho tenuto un corso su Windows Presentation Foundation e MVVM e come spesso mi capita, nei tempi morti (a pranzo, oppure davanti alla macchinetta del caffè) si continua a chiaccherare di tecnologia con i partecipanti del corso stesso. E’ in una di queste chiaccherate che sono venuto a conoscenza di Parse.com, una piattaforma cloud che in pochi passaggi vi permette di avere un database documentale a vostra completa disposizione. E non solo questo, dal momento che potete usufruire di una serie di servizi come le push notification in ambito mobile, data analytics e così via. Data la scarsità del tempo che ho a disposizione in questi giorni, ho avuto poco tempo per studiare la piattaforma, ma secondo me è interessante, perchè vi toglie le preoccupazioni della gestione di un vostro server, o di altre tematiche come performance o scalabilità: parliamo di cloud puro, insomma. I punti di forza di Parse.com secondo me sono la gratuità del servizio (almeno fino a quando non avete bisogno di salire di qualità o di quantità di dati – visitate questa pagina per avere il pricing), ed il fatto che è multi-piattaforma (ci sono SDK e sample code per .NET, iOS, Android, Javascript, PHP e via dicendo).
Dal punto di vista tecnico – che sto un po’ studiando questa mattina – le cose sono molto semplici. Una volta registrati, si ottengono i soliti parametri Application ID e Client Key, da inserire nel codice della vostra applicazione.
ParseClient.Initialize("appKey", "secretKey");
Ovviamente trovate tranquillamente la libreria su NuGet:
Tutta la logica di caricamento & salvataggio delle vostre entity passa attraverso l’utilizzo della classe ParseObject. Quindi quello che dovete fare è trasformare le vostre entity di dominio (aggregate in ottica DDD, per capirci) in oggetti ParseObject, che dietro le quinte non sono nient’altro che Dictionary<string, object>. Ad esempio:
public async Task<string> SalvaAutomobileAsync(Automobile automobile) { string className = automobile.GetType().Name; ParseObject obj = new ParseObject(className); obj["Marca"] = automobile.Marca; obj["Modello"] = automobile.Modello; obj["Cilindrata"] = automobile.Cilindrata; await obj.SaveAsync(); return obj.ObjectId; }
E’ solo codice di esempio, chiaramente, giusto per capire come funzionano le cose.
Parse.com vi mette a disposizione una dashboard online per visualizzare le entity salvate (che vengono salvate in formato serializzato usando JSON) e per compiere tutta una serie di operazioni, che per ora ho trascurato e che prenderò in considerazione solo se finiranno per servirmi (mi riferisco a Cloud Code per schedulare dei job, oppure a App Configuration per salvare sul cloud le impostazioni della vostra applicazione, e via dicendo).
Insomma, Parse.com è un’alternativa come tante, uno strumento a disposizione di noi dev, per cui vale sempre la pena di darci un’occhiata per capire pro & contro.