Software desktop
Ho iniziato la mia carriera di sviluppatore lavorando su un prodotto maturo in vb .net e Windows Form. Si trattava della classica applicazione client/server per sistemi Windows, che utilizzava uno stack di librerie proprietarie per ampliare le funzionalità di Windows form e permetterne una più gradevole stilizzazione grafica.
Il mio lavoro consisteva sostanzialmente nel bug fix, nell’implementazione di alcune piccole funzionalità – che potremmo definire di “perfezionamento” – di un software che contava ormai centinaia di installazioni, e, soprattutto, nello sviluppo di personalizzazioni ad hoc in base alle esigenze del cliente, di cui il consulente aziendale di turno redigeva le specifiche.
Era il 2012 e, mentre portavo a termine il mio stage in azienda, dovevo già prepararmi a passare al c# e alle web forms, perché già da alcuni anni il mercato italiano e internazionale era sempre più orientato alle web application. Negli anni sono poi passato ad asp .net mvc e web api, allo stack python/django/mysql, per poi approdare ad asp .net core/vue.js. Perché dunque continuo a fornire un servizio di sviluppo di software desktop?
Sezioni
Il supporto di Microsoft alle WPF
Con .net 5 Microsoft ha annunciato il pieno supporto alle applicazioni desktop e una serie di miglioramenti a Windows Presentation Foundation (WPF). Le wpf hanno rappresentato l’evoluzione delle Windows Form per lo sviluppo di applicazioni desktop, sia per quanto concerne le perfomance, sia per quanto riguarda la possibilità di personalizzazione dell’interfaccia grafica e la scalabilità di progettazione (anche se non obbligatorio, viene incentivato l’utilizzo del pattern MVVM per una completa separazione della presentazione dalla logica di business e dall’accesso ai dati, oltre che per una facile integrazione con pratiche di unit testing).
Le applicazioni desktop sono ancora molto diffuse, il loro sviluppo è duro a morire e la casa madre, dopo averne garantito il porting e il supporto in .net core, adesso ci rassicura che nei prossimi anni, in un certo senso, non ci abbandonerà.
Il software legacy e i costi del passaggio a una web app
Il passaggio da un software desktop a un’applicazione web quasi mai è indolore: oltre ai costi della migrazione, sono necessarie ore e ore di formazione. Spesso il fornitore del software offre un pacchetto conveniente per l’upgrade, tuttavia, in presenza di un software completamente personalizzato oppure sviluppato ad hoc negli anni (sia da risorse esterne, sia internamente all’azienda), il porting a web app può richiedere tempi e costi cospicui già solamente a partire dal lavoro di analisi. Se la bilancia costi – benefici di una simile “rivoluzione” pende troppo a sfavore dei benefici, non resta che la strada del mantenimento e dell’evoluzione del software esistente.
Se ti trovi in una situazione simile a quella descritta, contattami per espormi le tue esigenze
Lavoro offline e sicurezza
Tra i vantaggi nell’utilizzo di una desktop app possono essere annoverati la possibilità di lavorare offline e la sicurezza. A differenza di un software web, nella maggior parte dei casi il database server in cui l’applicativo conserva tutti i tuoi dati, risiede in un tuo server accessibile in rete locale. Nessun problema di connessione o mal funzionamento del tuo provider internet, quindi, ti impedirà di lavorare (anche se c’è da dire che pure una web app può girare tranquillamente in un server interno all’azienda!).
Inoltre, se il tuo sistemista ha avuto particolare cura della sicurezza della tua lan, non dovrai preoccuparti che il tuo applicativo sia esposto ad attacchi informatici nel web, dato che non si tratta di un tipico servizio accessibile a tutti su internet.
Oppure semplicemente, per una serie di motivazioni tue, potresti preferire tenerti tutto “in casa” e un software desktop soddisfa pienamente questa tua esigenza.
Integrazione con il sistema operativo
Un applicativo desktop classico per Windows utilizza tutte le funzionalità native del sistema operativo ospite. Questo offre una serie di vantaggi nelle perfomance, ma anche nella leggerezza dell’applicativo stesso. Dato che tutte le librerie necessarie sono già installate nel tuo pc, il software installerà una manciata di megabyte di file; inoltre hai mai visto sul task manager quanti processi e quanta ram e cpu consuma il browser su cui i software web girano meglio (Google Chrome)? Per alcune macchine un po’ vecchiotte che non puoi ancora sostituire, la fruizione di un software web potrebbe non essere un bel vivere, ma questo discorso vale anche per pc nuovi ma poco performanti. Infine il tuo browser deve essere supportato, altrimenti l’applicativo non funziona.
Integrazione con l’hardware
Spesso un applicativo desktop si utilizza in alcuni ambienti controllati, come lo schermo di un cruscotto, un pannello kiosk, una dashboard che comunica direttamente con hardware dedicato tramite librerie e protocolli particolari: in questi casi lo sviluppo di un software web è possibile, ma necessita di una serie di adattamenti che possono allungare i tempi di consegna e renderne più complessa la manutenzione, a differenza di quanto avverrebbe scrivendo codice che viene ospitato direttamente per la macchina target (che spesso è un mini pc Windows!).
Software desktop per Gnu/Linux
Purtroppo Windows form e wpf non hanno mai fornito un supporto crossplatform, neanche dopo la nascita di .net core (che invece può essere usato su sistemi operativi diversi da Windows). Anche in questo caso posso esserti utile, dato che ho sviluppato alcuni software con python e le librerie qt di cui trovi qualche esempio nel mio portfolio.
Aggiorno spesso queste pagine e il mio blog con articoli tecnici e news dal mondo informatico. Se vuoi rimanere aggiornato, iscriviti alla newsletter