Revisione 0.06
La creazione di gestioni e gestionali è un’attività difficile e con forti vincoli, per esempio dover utilizzare l’ambiente Microsoft per le App Desktop e la necessità di App Mobile e Web.
Non esiste un unico ambiente e framework per lo sviluppo di software che permetta di rendere al meglio ogni aspetto, ma si può introdurre il concetto di framework ibrido, ovvero un mosaico con ogni tassello realizzato medianteil framework più adatto.
Infatti la parte blog conviene sia realizzata, per esempio, in WordPress, l’area di accesso web riservata ai clienti, per esempio, in Yii2, le App Desktop MSWindows in Visual Studio od Embarcadero Dx Delphi.
Il Framework Ibrido si appoggia sui pilastri:
- Sistemi Operativo Server
- RDBMS di appoggio
- Framework per Microsoft App Desktop
- Framework Mobile e Web
- Servizi lato Server
- Framework Reports, Business Intelligence o Business Object
- Integrazione Contabilità / ERP / CRM / Groupware commerciali
- Storage locale od accessibile da internet con servizi gestione file
L’esperienza porta ad utilizzare UNIX Linux Ubuntu Server LTS come Sistema Operativo di appoggio per ogni servizio.
L’estrema robustezza, l’assenza di costo di acquisto, la possibilità di allineamento di versioni, l’assenza dei malware che sono praticamente solo per gli ambienti MS Windows, rende questo sistema operativo l’appoggio ideale per qualsiasi realizzazione.
Sul RDBMS la scelta più ovvia sarebbe Microsoft SQL Server. Ma si aprono questione di costi, di allineamento versioni, di difficoltà con i linguaggi embedded, di problemi di licenza, di difficoltà nel realizzare veri cluster RDBMS, di vincoli di dover soggiacere su Sistemi Operativi MS Windows Server, ed altro.
Il nodo centrale è costituito dal connettore al RDBMS, ovvero Microsoft ODBC.
Mysql, con la sua dominanza nel web, crea difficoltà proprio con il connettore MS ODBC.
PostgreSQL risulta imbattibile anche per l’ottimo connettore MS ODBC PostgreSQL.
- permette l’utilizzo in ampia scala di RDBMS e la normalizzazione alla stessa versione non avendo vincoli di licenza
- abbatte i costi vivi
- si appoggia in modo perfetto in ambiente UNIX Linux Ubuntu Server 64 LTS
- ha una robustezza, anche network, impressionante
- permette una vera clusterizzazione
- ha opzioni di sicurezza estreme
- è usabile in ambiti extranet in SSL puro
- ha una velocità vistosa
- ottimizza i backup nel rapporto costi benefici
- la versione 10 introduce vistose novità
Ma ha delle ulteriori caratteristiche ineguagliabili:
- ha vari linguaggi embedded, anche untrusted, che sono proprio esattamente quei linguaggi di fascia alta, usati in genere per creare programmi ad uso amministrativo in ambito server
- ha connettori MS ODBC 32 e 64 incredibilmente stabili e ben curati
- ha opzioni di sicurezza ed utilizzo dal network confrontabili con Apache
- permette il reale allestimento in server dedicato in internet
- permette la realizzazione del miglior middleware, anche basato sulla tabella commands, per accesso anche da internet
- permette una scalabilità incredibile
- regge a poll pesanti
- indici full text search incredibili in termini di velocità e precisione
- ottimi e realmente amichevoli programmi di amministrazione
- è usato da i maggiori framework web ed altri servizi (Owncloud, Jaspereport, …)
- e molto altro
Quindi è naturale scegliere PL Python 3 Untrusted come ambiente sviluppo embedded. In sostanza è la completa versione Linux Python 3, ovvero tra i migliori ambienti per lo sviluppo di servizi lato server, integrata nel server RDBMS.
Nello stile ERP Odoo, molto codice viene delegato, e quindi uniformato, a funzioni PL/PY3u.
Come esempio si può pensare alla costruzione di eventi realizzati mediante procedure su TRIGGER, per esempio, al SQL INSERT.
Sul Framework per la realizzazione di App Microsoft Desktop, non è stato scelto l’ottimo Embarcadero, ma il classico Microsoft Visual Studio, l’utlime versioni non .net, integrato dal framework C C++ Qt con MINGW.
DLL in C++ Qt permettono di eludere le restrizioni che Microsoft impone nell’uso dei processi e del winsock.
Così la gestione di processi esterni, anche detached, diventa precisa in un ambiente client difficile quale OS MS Windows.
Inoltre sono integrabili e direttamente utilizzabili librerie in C e C++ eccellenti, per esempio per gestire il winsock o XML o RE e molto altro.
E’ in corso il port di codice MS Windows 32 e 64 in ambito simulatore MS Windows per UNIX Linux e Virtual Machine Open Source e MSwin32 compatibile.
Il tutto ha portato alla costruzione di librerie per lo sviluppo di gestionali, con caratteristiche del codice che genera codice, di rapidissimo sviluppo MS App Desktop a partire dal database nel RDBMS.
Quindi se le tabelle dell’applicazione che si intende sviluppare sono dell’ordine del centinaio, le pagine della GUI da creare siano della decina e le griglie a centinaia, nel classico stile visuale di Visual Studio e con il Framework SQL, si produce la App Desktop, a partire dalle tabelle nel RDBMS e con le specifiche pronte, in pochi giorni.
Gli stili ampiamente utilizzati sono visuale e codice chje genera codice.
E’ corso la riscrittura della libreria realizzata in Visual Studio per il framework Qt, in un certo senso indipendente dal OS, con le su form native descritte nel formato XML.
Le tabelle di appoggio locali, sqlite o dbf, sono conformi alle tabelle in RDBMS. Le funzioni nella libreria di base realizzano la bijezione tra dati e tipi locali e lato RDBMS. Le tabelle sqlite sono ampiamente diffuse e la libertà dai tipi può essere origine di qualche ambiguità. Il vecchio standard DBF brilla in robustezza, ma risente per una generale rigidità. Comunque la conversione in linea, dinamica, e la popolazione di centinaia di migliaia di righe dal server nelle tabelle locali è di una strabiliante velocità. L’idea utilizzata in ambito Visual Studio è di mappare il record in matrice sul quale agire con la trasformazione necessaria. Quindi aggiungerlo nel cursore locale oppure nel remoto.
Una caratteristica è data dalla personalizzazione estrema dei flussi di informazioni, anche per contesti massivi, ovvero importazioni ed esportazioni mediante fogli elettronici, prima nota verso Gamma, creazione di file PDF e collocazione in OwnCloud, ampia integrazione IoT,…
L’integrazione con documenti nel formato Microsoft Office o OpenDocument avviene mediante le API UNO Libreoffice.
Sono stati creati servizi in produzione, non interrotta, di conversione file DOC e DOCX in PDF o Text per la full text index. Oppure servizi da XLS o XLSX che producono per ogni riga un record nel RDBMS con relativa full text index.
La parte Mobile e Web UI viene delegata al framework web Yii2 con il framework CSS.
La reportistica e Business Intelligence all’ambiente JasperReport.
Storage locale in RDBMS è Samba.
Storage con Web UI è Owncloud.
La creazione e gestione di file Office a servizi che utilizzano API UNO di LibreOffice su UNIX.
L’integrazione IoT avviene mediante board Arm, quali Rpi, ed AVR, quali Arduino, in particolare:
- gestioni seriali RS 232, RS 422, RS 485, MODBUS
- gestione completa bus USB, in particolare con servizi di aggiornamento stato dispositivi verso RDBMS
- intregrazioni mediante telnetd anche in tunnel SSH
- LCD ed interruttori / pulsanti
- attuatori
- sensori
- AVR firmware nello stile Arduino per servizio wrapper in Qt verso RDBMS