Come creare un gestionale online? Te lo spieghiamo in 7 step

Come creare un gestionale online? Te lo spieghiamo in 7 step

 

Oggi la maggior parte delle soluzioni software in commercio sono “pacchettizzate”. Si tratta di applicativi già pronti realizzati per semplificare il processo di distribuzione e – nel caso in cui non girino in cloud – di installazione, fornendo agli utenti finali un modo conveniente per ottenere un insieme completo di funzionalità o risorse correlate. Questo approccio permette di raggruppare il software in modo che sia facile da gestire, distribuire e mantenere.

Tuttavia, quando le esigenze degli utenti sono più specifiche rispetto a quelle generiche offerte solitamente dai software pacchettizzati, soluzioni di questo tipo possono risultare inefficaci per un completo matching con i processi aziendali. In questi casi, lo scenario ideale diventa fornire loro soluzioni semi-personalizzate, solitamente realizzate modificando, se possibile, una soluzione pacchettizzata, o meglio ancora soluzioni totalmente personalizzate.

La risposta in questo ultimo caso è lo sviluppo “from scratch”, ovvero la scrittura di codice da zero: un’attività molto più laboriosa e costosa che però garantisce la massima personalizzazione e potenzialmente la massima scalabilità del software. Pur essendo un investimento importante per le aziende, di solito genera un vantaggio sotto diversi punti di vista: in primis di tipo “funzionale”, perché anziché adattare i processi e le persone a un software si adatta il software ai processi aziendali, ottimizzandone le tempistiche e i ritorni a medio-lungo termine.

Ma come si realizza questo genere di soluzioni?

Noi di ESSE I abbiamo sintetizzato in 7 punti quello che serve per creare un applicativo web entry-level che ti permetta di avvicinarti al nostro mondo, al “come si lavora da noi”. In realtà il nostro obiettivo non è informare gli sviluppatori esperti (che magari troveranno questo articolo non particolarmente utile) bensì quelli meno esperti, così come i nostri clienti e “prospect” più curiosi, per far loro comprendere meglio il lavoro (non affatto banale) che sta dietro alle nostre creazioni.

Bene, sei pronto per creare il tuo gestionale online da zero?

Segui attentamente questi passi per sviluppare la tua web application!

 

1) Analisi, pianificazione e progettazione

Questa prima importante fase si divide in 3 step: innanzitutto occorre identificare gli obiettivi principali del tuo gestionale online e le funzionalità richieste. Poi è necessario creare uno “schema concettuale” per visualizzare come le diverse componenti si relazionano tra loro. Infine occorre progettare l’interfaccia utente per garantire un’esperienza intuitiva e user-friendly.

Tali attività solitamente comportano il coordinamento di più membri del team, ognuno con competenze anche molto diverse tra loro. In pratica è difficile che una sola persona possegga le skill necessarie a coprire ogni tipo di esigenza in ambito IT, magari un full-stack developer potrebbe farlo, ma quanti FSDev sono anche bravi QE Test Eng, Sistemisti, DB Admin ecc.?

Proviamo comunque a seguire questi passi anche da soli, l’importante è concentrarsi sempre su domande fondamentali come: “Quali vantaggi otterranno dal software gli utenti?”.

 

2) Ambiente di sviluppo

In questa fase occorre scegliere e configurare l’ambiente di sviluppo su cui mettere le mani. In ESSE I usiamo diversi IDE (che sta per “Integrated Development Environment”) come Visual Studio, Visual Studio Code o Raider. Poiché noi sviluppiamo su stack Microsoft, assicurati di avere installati i componenti necessari come .NET.

Cos’è .NET?

.NET è un framework open source per i sistemi operativi Windows, Linux e MacOS. È il successore multipiattaforma di .NET Framework. Il progetto è sviluppato principalmente da dipendenti Microsoft tramite .NET Foundation e rilasciato con licenza MIT (fonte: Wikipedia).

 

3) Tecnologie front-end

Mentre .NET lo usiamo sempre lato server, lato client scegliamo tecnologie diverse in base alla disponibilità di risorse, alle esigenze specifiche dei clienti o a eventuali caratteristiche. Solitamente scegliamo tra Blazor, React o Angular. Eccole in dettaglio:

 

Blazor

Blazor è un framework che fa parte di ASP.NET Core per creare interfacce web interattive lato client. Con Blazor puoi:

  • creare UI ricche e interattive usando C# invece di JavaScript;
  • condividere la logica dell’applicazione tra il lato server e il lato client scritta in .NET;
  • reindirizzare l’UI come HTML e CSS per un’ampia compatibilità con i browser, inclusi quelli mobili.

 

Blazor si basa su WebAssembly, una tecnologia che permette di eseguire codice .NET nel browser. Inoltre offre diverse modalità di sviluppo tra cui:

  • Blazor Server: esegue l’elaborazione lato server e usa SignalR per inviare al browser gli aggiornamenti da fare all’interfaccia;
  • Blazor WebAssembly: esegue l’elaborazione lato client nel browser usando WebAssembly;
  • Blazor Hybrid: esegue l’elaborazione lato client in app native per mobile e desktop.

 

Angular

Angular è una piattaforma di sviluppo per creare applicazioni web con TypeScript. Essa include:

  • un framework basato sui componenti per costruire applicazioni web scalabili;
  • una serie di strumenti e librerie per facilitare lo sviluppo, il testing, il deployment e la manutenzione delle applicazioni;
  • una comunità di sviluppatori e di partner che supportano e contribuiscono al progetto.

 

Angular è l’evoluzione di AngularJS, un framework precedente basato su JavaScript. Le due versioni non sono compatibili tra loro e usano approcci diversi per creare interfacce web interattive.

Angular, come dicevamo, usa TypeScript, un linguaggio che estende JavaScript con funzionalità come classi, interfacce, tipi e decoratori.

Questo framework permette di creare applicazioni web che girano su qualunque piattaforma, inclusi smartphone e tablet. Supporta anche il concetto di Single Page Application, cioè una singola pagina HTML che viene aggiornata dinamicamente senza dover ricaricare la pagina intera.

 

React

React è una libreria open-source JavaScript nata nel 2013 come evoluzione di XHP, un framework PHP creato da Facebook per migliorare le prestazioni delle sue pagine web che ti permette di costruire UI interattive usando componenti, cioè pezzi di codice riutilizzabili e componibili.

React usa una sintassi simile a XML, chiamata JSX, che consente di scrivere codice HTML e JavaScript nello stesso file (fonte). Può essere usato anche per creare applicazioni mobile con React Native, una libreria che utilizza lo stesso approccio di React ma genera codice nativo per iOS e Android (fonte).

Come Angular, React supporta il concetto di Single Page Application, cioè una singola pagina HTML che viene aggiornata dinamicamente senza dover ricaricare la pagina intera.

React si integra con diversi strumenti e librerie per facilitare lo sviluppo, il testing, il deployment e la manutenzione delle applicazioni.

Riteniamo che la qualità del risultato finale risieda soprattutto nella capacità di “amalgamare in modo armonioso” le tecnologie di front-end con quelle di back-end (sì, anche questa volta parliamo di armonia, ma è davvero necessaria se non si vuole perdere la testa tra così tante tecnologie, è il nostro modo di “trovare la quadra”).

Così facendo è possibile ottenere un’interfaccia pulita, veloce, responsive (che funzioni bene anche sui dispositivi mobili) e in grado di mettere a suo agio chi la utilizzerà.

 

4) Tecnologie back-end

In questa fase occorre scegliere e implementare una tecnologia back-end, ovvero un insieme di sistemi in grado di far girare il codice lato server, gestendo le chiamate dal front-end e dando delle risposte che si trasformano “dinamicamente” in codice lato client, di solito in HTML.

La tecnologia di Microsoft che usiamo è ASP.NET Core (C#).

Inoltre può essere necessario configurare un server web locale come IIS (Internet Information Services) o utilizzare il server integrato fornito dalla tecnologia back-end scelta.

Va ricordato tuttavia che questa fase può essere molto semplificata o addirittura “saltata” noleggiando un web server esterno. Di solito, a meno di progetti molto specifici o che richiedono risorse non banali, questa è proprio la soluzione migliore. In tal caso, più che di configurazione si parla di scelta dell’hosting migliore, andando incontro a una configurazione solitamente minima e molto semplificata.

O, meglio ancora, si parla di “scelta del fornitore di hosting” che possa rispondere in maniera più efficiente alle specifiche esigenze del progetto. In generale il nostro consiglio è di non lesinare sul prezzo, optando per hosting di buona qualità anche se non proprio economici.

 

5) Database e persistenza dei dati

Le informazioni devono essere sempre separate dai codici sorgenti e per semplicità consideriamo l’uso di un database relazionale.

Microsoft da anni mette a disposizione il suo solidissimo SQL Server per il quale ESSE I ha elevate competenze e ne consiglia sempre l’uso, ma anche database come MySQL o PostgreSQL possono essere soluzioni alternative valide per gestire i dati del tuo software online.

Una volta scelto il database più adatto occorre progettarne lo schema.

Come? Creando le tabelle necessarie per memorizzare le informazioni. Sarà possibile far interagire queste ultime con i codici sorgenti utilizzando linguaggi di query come SQL. Tra le operazioni possibili con SQL figurano non solo la lettura ma anche l’inserimento, l’aggiornamento e l’eliminazione delle informazioni contenute nel database (in realtà nei nuovi progetti non lavoriamo più così poiché usiamo l’entity Framework, che permette l’accesso ai dati attraverso un modello costituito da classi di entità e da un contesto che rappresenta una sessione con il database). In questo modo:

  • si consente agli sviluppatori .NET di lavorare con un database usando oggetti .NET;
  • si elimina la necessità della maggior parte del codice di accesso ai dati che in genere deve essere scritto;
  • si supportano molti motori di database, tra cui SQL Server, SQLite, PostgreSQL, MySQL e altri.

 

6) Implementazione delle funzionalità e fase di test

Siamo ormai nel vivo del coding. In questa fase occorre utilizzare le tecnologie back-end per implementare le funzionalità richieste nel gestionale online. Tra tali funzionalità ci saranno sicuramente la gestione della registrazione degli utenti, l’autenticazione e l’autorizzazione per proteggere l’accesso alle informazioni sensibili.

Riguardo invece alle altre funzionalità, la fase di sviluppo può seguire diversi modelli o metodologie a seconda dei requisiti, delle risorse e dei tempi disponibili.

Alcuni esempi di modelli sono:

  • il modello a cascata, che prevede una sequenza lineare di fasi, da quella di analisi dei requisiti a quella di rilascio del prodotto finale, con una documentazione dettagliata per ogni fase e una revisione formale prima di passare alla successiva;
  • il modello agile (adottato quasi sempre da ESSE I), che prevede un approccio iterativo e incrementale basato su cicli brevi di sviluppo chiamati sprint in cui le funzionalità vengono definite, implementate e testate in modo collaborativo tra il team di sviluppo e il cliente o il rappresentante degli utenti, con una valutazione continua del feedback e della qualità del prodotto;
  • il modello a prototipi, che prevede la creazione di versioni semplificate o parziali dell’applicativo chiamate prototipi, il cui scopo è quello di dimostrare le funzionalità principali e raccogliere il feedback degli utenti o dei clienti, per poi raffinare o modificare il design e l’implementazione in base alle esigenze.

 

Indipendentemente dal modello scelto, la fase di sviluppo delle funzionalità richiede le seguenti attività:

  • la definizione dei requisiti funzionali, cioè le specifiche delle funzionalità che l’applicativo deve offrire, in termini di input, output, prestazioni, vincoli e scenari d’uso;
  • la progettazione dell’architettura e dell’interfaccia dell’applicativo, cioè la struttura logica e fisica dei componenti software e hardware che lo costituiscono, e il modo in cui interagiscono tra loro e con gli utenti.
  • l’implementazione del codice sorgente dell’applicativo, cioè la traduzione della progettazione in linguaggio di programmazione, usando gli strumenti e le tecnologie appropriate;
  • il testing dell’applicativo, ossia la verifica della correttezza, della qualità e della sicurezza delle funzionalità implementate, tramite tecniche di analisi statica, dinamica e automatizzata del codice e dell’esecuzione;
  • il rilascio dell’applicativo, cioè la distribuzione del prodotto finale agli utenti o ai clienti, eventualmente accompagnata da una documentazione tecnica e utente e da un supporto post-vendita.

 

7) Deployment e monitoraggio

La fase di deploying e monitoraggio di un applicativo web è il processo che consiste nel pubblicare, gestire e controllare il funzionamento dell’applicativo sul web. Questa fase richiede le seguenti attività:

  • la scelta del servizio di hosting, cioè il fornitore che offre lo spazio e le risorse necessarie per ospitare l’applicativo sul web, in base ai requisiti di scalabilità, affidabilità, sicurezza e costo;
  • la configurazione del dominio, ossia il nome univoco che identifica l’applicativo sul web, e del certificato SSL, ossia il documento che garantisce la crittografia e l’autenticità delle comunicazioni tra l’applicativo e gli utenti;
  • la pubblicazione dell’applicativo, cioè il trasferimento dei file e dei dati dell’applicativo dallo sviluppatore al servizio di hosting tramite protocolli come FTP, SFTP o SSH o mediante strumenti di automazione quali Git o Docker;
  • la gestione dell’applicativo, ossia la manutenzione e l’aggiornamento dell’applicativo sul web tramite il pannello di controllo del servizio di hosting o mediante strumenti di automazione come Ansible o Kubernetes;
  • il monitoraggio dell’applicativo, cioè la raccolta e l’analisi delle informazioni sulle prestazioni, sull’utilizzo e sulle anomalie dell’applicativo sul web, tramite strumenti come Google Analytics, New Relic o Sentry.

 

Conclusioni

Come avrai visto, la creazione di un gestionale online richiede un impegno enorme e costante. Ma con una pianificazione attenta e l’utilizzo delle giuste tecnologie potrai realizzare un’applicazione potente e funzionale.

Certamente è complesso, per non dire impossibile, in caso di grandi progetti fare tutto questo lavoro da soli. Tuttavia vogliamo darti un consiglio: non smettere mai di cimentarti e sporcarti le mani con il codice. Sperimentare e testare è un’attività che vale sempre la pena fare perché consente di imparare più velocemente.

Se invece – super consigliato! – preferisci affidare la creazione del tuo software gestionale online a un team professionale come il nostro, non hai che da chiedere.

Contattaci senza impegno per un colloquio e capiremo insieme se collaborare.

 

 

(Foto: Pexels)

Newsletter

Desidero iscrivermi alla newsletter periodica del blog con articoli informativi su software, soluzioni ITC e novità dal mondo ESSE I. Potrai cancellarti quando lo desideri nel pieno rispetto della Privacy Policy .

Codice Anti Spam

Riportare nel box sottostante "Codice di verifica", il codice alfanumerico che trovi a fianco

NEWSLETTER

Iscriviti alla newsletter periodica del blog con articoli informativi su software, soluzioni ITC e novità dal mondo ESSE I.

Non registreremo la tua email in alcun modo fino a quando non avrai accettato le condizioni nel form successivo.

RIMANIAMO IN CONTATTO
Vai al FORM
Seguici sui SOCIAL