Technology Experience
.NET World

Software WPF e pagamenti via PayPal

Oggi vi voglio raccontare una storia.

Qualcuno di voi lettori sa che ormai da anni faccio parte di Piloti Virtuali Italiani. E’ un’associazione italiana, senza scopo di lucro, che mira alla diffusione di cultura aeronautica in tutti i modi che riesce: attività online di vario tipo, corsi di volo virtuale tenuti da piloti ed ex-piloti, contest, partecipazione a fiere ed eventi correlati al volo, e molto altro ancora. Cosa utilizziamo? I nostri PC, con Microsoft Flight Simulator X (attualmente in vendita su Steam), X-Plane, Prepar 3D ed altri software minori (volo in elicottero, missioni spaziali, etc.).

Raccontata così sembra più che altro un videogioco, ma vi assicuro che la cosa è serissima: bisogna preparare il piano di volo, imbarcare il carburante giusto, dialogare con i controllori di volo in lingua inglese, seguire le stesse regole del volo reale per l’avvicinamento e l’atterraggio finale, gestire eventuali emergenze, controllare continuamente lo stato dei motori, le velocità, etc. etc. Come si può ben facilmente immaginare, io sono un po’ (insieme ad altre persone, non sono solo) il ramo informatico di PVI e come tale ho scritto un piccolo software, battezzato VivendoByte Fsx Logger, che è una sorta di scatola nera degli aerei simulati.

L’interfaccia è piuttosto semplice: uno Start per cominciare la registrazione del volo ed uno Stop per fermarlo. C’è dell’altro, ovviamente, ma sorvolerò. Questa applicazione WPF parla via P/Invoke con una DLL proprietaria di FSX (messa a disposizione da Microsoft stessa), oppure con un’altra DLL che è diventata lo standard di riferimento (FSUIPC.dll). In ogni secondo di volo vengono registrate diverse decine di parametri di volo (se siete interessati andate qui), che alla fine vengono impacchettati in un bel file zip protetto e spediti via WCF ad un server che si occupa di ricevere lo zip e di elaborarlo. Ogni volo viene promosso o bocciato, ottiene dei punti (in ottica social), generare statistiche, etc. etc. Ed è così che si ottengono pagine come questa che elenca i voli effettuati dai soci PVI o come questa che invece dettaglia il volo singolo. Flight Simulator X permette di scattare delle foto durante il volo: in tal caso il mio Fsx Logger se ne accorge, cattura i JPG generati, li include nel pacchetto e finiscono online. E si ottengono pagine come questa, che mostra le foto catturate durante un certo volo. Fsx Logger, lato client e lato server, fa tantissime cose, ma lo scopo del post non è quello di raccontarvele tutte. Sappiate – giusto per parlare – che si tratta di un sistema davvero molto ampio, che utilizza tantissime tecnologie:

  • Windows Presentation Foundation
  • Windows Communication Foundation
  • P/Invoke
  • ASP.NET MVC
  • Google Calendar, Google Maps, Facebook, Twitter
  • Varie app per Windows Phone (deprecata), Windows 8 / 10, etc.
  • Distribuzione via ClickOnce, setup completamente on-line
  • Altro che sicuramente mi sto dimenticando

E’ un software che è in produzione da diversi anni, non è su Azure, ma è hostato sullo stesso provider dove state leggendo il mio blog. Su Azure ho solamente posizionato tutto lo storage: i file zip, i log di volo, gli screenshot catturati occupano ad oggi circa 85GB di dati, accumulati dal 2009 circa (anno di prima pubblicazione) ad oggi. Nessun hosting provider è in grado di offrire uno spazio di storage di tali dimensioni, ma Azure sì, tra l’altro per pochi euro al mese.

VivendoByte Fsx Logger è gratuito per i soci di Piloti Virtuali Italiani – poco meno di 400 persone in tutta Italia e non solo, che ogni giorno volano virtualmente ogni giorno e pubblicano i loro log di volo sul sito. E’ anche in vendita per tutti gli altri.

Come ho implementato il sistema di pagamento? Sfruttando PayPal. Tramite questa pagina chiunque può procedere all’acquisto: a me arriva una mail di notifica e c’è una procedura automatica che crea l’utente e gli consente l’attivazione della licenza per utilizzarlo al 100%. E’ così che ogni tanto mi accorgo che viene acquistato da diverse parti del mondo, in UK, in Brasile, in diverse zone di Europa, addirittura presso alcuni dipartimenti universitari che trattano con il mondo del volo.

Recentemente ho tentato di replicare lo stesso modello di acquisto via PayPal in un’applicazione UWP, per scoprire che prima del 29 Giugno 2015 la cosa sarebbe stata possibile, oggi no. Dopo quella data, gli sviluppatori UWP devono far acquistare le licenze (ed in generale gli add-on delle app UWP) tramite le API Microsoft messe a disposizione proprio per questo scopo.

E come si fa? Ne parlerò in un prossimo post!

Send to Kindle

Igor Damiani

La sua passione per l'informatica nasce nella prima metà degli anni '80, quando suo padre acquistò un Texas Instruments TI-99. Da allora ha continuato a seguire l'evoluzione sia hardware che software avvenuta nel corso degli anni. E' un utente, un videogiocatore ed uno sviluppatore software a tempo pieno. Igor ha lavorato e lavora anche oggi con le più moderne tecnologie Microsoft per lo sviluppo di applicazioni: .NET Framework, XAML, Universal Windows Platform, su diverse piattaforme, tra cui spiccano Windows 10 piattaforme mobile. Numerose sono le app che Igor ha creato e pubblicato sul marketplace sotto il nome VivendoByte, suo personale marchio di fabbrica. Adora mantenere i contatti attraverso Twitter e soprattutto attraverso gli eventi delle community .NET.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.