Lo Stack Tecnologico
Trend .NET Enterprise è un software ERP che opera in ambiente .NET, realizzato in full managed code con una architettura di tipo n-tier.
Quali sono, dunque, gli strati che costituiscono un software multi-strato? Generalmente dovrebbero essere almeno tre (3-tier application): presentazione dei dati, accesso ed elaborazione dei dati e sistema di gestione dei dati.
Il primo è l’interfaccia utente, il secondo è il motore dell’applicazione che elabora i dati, il terzo è il sistema che memorizza i dati, comunemente chiamato database.
Progettato per essere PERSONALIZZATO
Trend .NET Enterprise è stato progettato per essere personalizzato ed adattato alle esigenze dell’ azienda o dell’ industria. L’ Extensible Framework è il layer di Trend .NET Enterprise che ne permette la personalizzazione senza perdere la compatibilità con le release future di Trend .NET Enterprise.
Le personalizzazioni effettuate in TREND .NET continueranno a funzionare anche caricando gli aggiornamenti di release che costantemente TDA Informatica rilascia.
L'architettura 4-TIER di TREND .NET
Architettura a quattro strati interconnessi
La maggior parte dei software gestionali presenti nel mercato è progettato con un'architettura 2-tier, a due strati. Solitamente, infatti, uno strato contiene le interfacce e le logiche di elaborazione dei dati e l'altro memorizza i dati stessi (database).
Questo tipo di architettura, implicitamente, limita l’utilizzo del software e le sue possibilità di estendibilità.
I quattro strati di Trend .NET Enterprise sono lo strato Application, lo strato Core, lo strato Engine e lo strato Persistance (Database)
Schema Applicativo di Trend .NET Enterprise
Trend .NET Enterprise – un SISTEMA OPERATIVO di Applicazioni ERP
Trend .NET Enterprise è stato progettato per essere un Sistema operativo di applicazioni gestionali ERP. Utilizzando, infatti, il Software Development Kit di Trend .NET Enterprise il rivenditore o il C.E.D. dell’azienda può creare nuove TrendApp (Applicazioni TREND) che, memorizzate nel repository centrale di TREND .NET, interagiscono con tutte le altre applicazioni di TREND .NET come fossero delle applicazioni standard di TREND .NET.
Trend .NET CORE
Lo strato Core di TREND .NET è lo strato principale dell' applicazione Trend .NET Enterprise.
E' composto da un' insieme di librerie che sono utilizzate dallo strato Application per elaborare i dati ed esporli all'operatore. Il Core colloquia in autonomia con lo strato Engine che restituirà i dati derivanti dall'elaborazione alle TrendApp di Trend .NET Enterprise per poterle mostrare all'utente oppure per eseguire altre funzionalità previste dalle TrendApp. Una TrendApp, infatti, può avere o meno interfaccia utente e può eseguire anche altre funzionalità come ad esempio la stampa diretta di un report, la pubblicazione di dati su un sito web, e-commerce,...
Lo strato Trend .NET Core è suddiviso a sua volta in altri sotto-strati, ognuno di essi dedicato a funzionalità specifiche.
Extensible Database Model (EDM)
L’ Extensible Database Model permette di modificare la struttura dati di Trend .NET Enterprise in modo semplice ed intuitivo. Attraverso un apposito editor si possono editare le strutture dati ad oggetti, aggiungendone campi, nuove relazioni, modificandone le dimensioni oppure aggiungendo nuove strutture dati (tabelle).
Ogni modifica effettuata nell’editor viene propagata automaticamente sia al database che alle classi di dominio in modo trasparente all’utente. Le classi di dominio rappresentano il “ponte” tra il Core di Trend .NET Enterprise ed il Database. Ogni applicazione di TREND .NET (TrendApp) colloquia esclusivamente con il Core che a sua volta, utilizzando le classi di dominio, riceve o invia i dati al Database. Questo concetto viene generalmente chiamato “persistance ignorance” ovvero il programmatore non deve obbligatoriamente conoscere la sintassi dei linguaggi SQL utilizzati dai database (Trend .NET Enterprise è infatti database indipendente ed ogni database ha il proprio dialetto), non deve neanche conoscere i vari tools messi a disposizione dai database stessi per modificare, ad esempio, le strutture delle tabelle; lo sviluppatore deve esclusivamente “dialogare” con lo strato applicativo esposto dal FrameWork di Trend .NET Enterprise. Tutte le operazioni, generalmente chiamate CRUD (Create,Read,Update,Delete), verso il Database vengono gestite dal Framework di Trend in modo trasparente. Il Framework gestisce, oltre alle operazioni CRUD, operazioni di ottimizzazione per rendere l’applicazione e l’accesso ai dati il più prestante possibile; attraverso l’utilizzo di programmazione parallela e componenti LINQ estremamente indicizzati anche su database di grandissime dimensioni si hanno prestazioni vicine al tempo reale.
Modello Gerarchico Reticolare
Trend .NET Enterprise utilizza come modello di accesso ai dati il Modello Gerarchico Reticolare rispetto al tradizionale modello relazionale (utilizzato dalla maggior parte dei software applicativi). Nel modello Gerarchico Reticolare le relazioni tra i dati fanno parte della struttura stessa delle classi di dominio.
Questo significa che lo sviluppatore non deve necessariamente conoscere com’è organizzata la base dati e quindi conoscere la struttura dati per scrivere la classica query SQL con le relative join; sarà, il Framework a scriverla per lui evitando errori di scrittura in quanto le query vengono scritte in modo tipizzato e qualsiasi errore (nome campo errato, relazione sbagliata, ..) viene evidenziato a priori già in fase di compilazione e non in fase di esecuzione.
Facciamo un esempio per capire meglio il concetto di Modello Gerarchico Reticolare:
lineaMovMag è l’oggetto della corrente linea del movimento di magazzino, se volessimo ottenere, ad esempio, la descrizione della categoria merceologica del prodotto possiamo scrivere direttamente la seguente istruzione:
var desCategoria = lineaMovMag.np_ges_prod.np_cat_merc.descrizione;
In Trend .NET Enterprise il prefisso np_ è una convenzione che indica relazione (Navigation Property) che, in sè, ha le indicazioni di relazione (1..1, 1.. molti, oppure molti .. molti) per accedere ai dati in modo gerarchico e reticolare.
np_ges_prod è quindi la relazione che collega la corrente linea del movimento di magazzino all’anagrafica prodotti, che a sua volta ha una relazione che la collega il prodotto alla relativa categoria merceologica, il campo descrizione, quindi, è la descrizione inserita nella categoria merceologica. Sarà il Framework che automaticamente invierà la corretta istruzione SQL al database con le relative istruzioni di join per estrarre la descrizione dalla relativa categoria merceologica.
Lo Strato APPLICATION
Lo strato Application è quello che l' utilizzatore considera come il vero e proprio software. In questo livello si trovano tutte le TrendApp di Trend .NET Enterprise.
Le TrendApp sono collegate ai componenti del core per l'esposizione dei risultati delle elaborazioni.
Due, soprattutto, sono le caratteristiche importanti di questo livello. Una è che le TrendApp possono essere scritte in uno qualsiasi dei linguaggi che supportati dal .NET Framework. Questo permette ai programmatori di costruire nuove applicazioni per Trend.NET sfruttando le competenze già acquisite. Non meno importante è che è possibile costruire applicazioni per infrastrutture diverse come applicazioni WEB, applicazioni residenti in impianti automatizzati, ... senza perdere il supporto del framework di TREND .NET.
Le TrendApp standard sono sviluppate con il linguaggio di markup XAML (Extensible Application Markup Language) di Microsoft utilizzando il pattern di programmazione MVVM (Model View - View Model) che permette di separare l'interfaccia grafica dal codice. Il pattern MVVM è diventato un pattern di programmazione indispensabile a causa della crescita della complessità delle interfacce grafiche e della necessita dell'utenza di utilizzare lo stesso prodotto software con diverse infrastrutture, come il WEB, dispositivi Desktop, e i diversi apparati mobile per la telefonia. La separazione del codice dall'interfaccia permette, semplicemente, di ridisegnare l'interfaccia secondo l'esigenza infrastrutturale, riutilizzando lo stesso codice.
Trend Report System
Trend Report System è la parte del Core di Trend .NET Enterprise che si occupa della gestione della reportistica. Le classi è i metodi esposti da questa porzione della libreria vengono generalmente utilizzate dalle TrendApp. Oltre alle classiche funzioni di visualizzazione come zoom, adattamento della pagina, ricerca del testo contenuto nel report, integra funzioni avanzate quali iperlink, collegamento a sub-report, grafici, kpi, barcode, gestione immagini,…
Il Viewer dei report è di tipo vettoriale, permette quindi ingrandimenti del testo senza perdita di risoluzione, oltre a dare la possibilità di ruotare il testo stabilendo i gradi di rotazione. Altre funzioni interessanti sono l’esportazione nativa nei formati più diffusi come pdf,excel,html,mht, rtf,csv, …
Tra le varie funzionalità vi è la possibilità di inviare automaticamente mail del report includendolo come allegato in tutti i formati disponibili per l’esportazione, queste funzionalità possono essere automatizzate anche da codice senza bisogno di aprire l’anteprima grafica di visualizzazione.
Trend Extensible Framework
Trend Extensible Framework è la parte del Framework di TREND .NET che permette di personalizzare le applicazioni standard di TREND .NET Enterprise senza perdere la compatibilità con gli aggiornamenti futuri di Trend .NET Enterprise.
L'Extensible Framework è stato progettato per permettere la modifica logica, dell'interfaccia grafica, o della base dati delle applicazioni standard di TREND .NET senza modificare i sorgenti.
La modifica dei sorgenti genererebbe infatti un grande problema per il futuro, il rivenditore o il CED dell'azienda, ad ogni release della nuova versione di TREND .NET, dovrebbe riportare le integrazioni fatte nelle varie procedure per poter aggiornare il software al cliente finale. Quando le implementazioni diventano "importanti" e strutturali questo diventerebbe impossibile.
Personalizzazioni e AGGIORNAMENTI FUTURI di release
Il layer dell’ Extensible Framework interagisce automaticamente con tutta l’infrastruttura di Trend .NET Enterprise ed esegue le personalizzazioni logiche o di interfaccia effettuate per personalizzare il software per adattarlo alle esigenze dell’ utente finale. Se l’azienda, ad esempio, ha bisogno di modificare le logiche di calcolo delle provvigioni agenti perchè decide che l’ importo delle provvigioni deve essere calcolato sulla marginalità di prodotto e non sul fatturato, il rivenditore o il ced dell’azianda potrà creare un’ Extension che Trend .NET valuterà in tutti i punti del calcolo provvigionale ed attiverà le regole indicate.
Le Extension rappresentano una delle possibilità di estendibilità dell’ Extensible Framework, le extension vengono create con l’SDK di Trend .NET Enterprise ed indicano all’applicazione le differenti logiche di calcolo o applicative che l’azienda vuole applicare. Se l’extension viene caricata nel repository centrale di TREND .NET viene valutata ed eseguita, se l’extension non è presente vengono mantenute le logiche di calcolo standard.
Report Editor per utenti finali
TREND .NET integra un Editor di Report che permette di modificare anche i report standard di TREND .NET in base alle esigenze dell’ utente finale.
L’editor dei Report è disponibile nativamente anche in TREND .NET senza l’ausilio dell’ SDK. L’ editor dei report di tipo WYSIWYG (What You See Is What You Get) si attiva automaticamente quando l’utente (con gli appositi privilegi) attiva la “Modalità sviluppo”, questo permette di accedere al report che si desidera modificare direttamente dall’interfaccia utente. L’ utente finale, quindi, può personalizzarsi la reportistica con l’uso del Drag & Drop ed in modo visuale, Il dataBinding dei dati viene gestito automaticamente da TREND .NET, quindi l’utente per aggiungere o modificare la sorgente dati trascina semplicemente a video il campo che vuole includere o modificare. Anche tutte le relazioni vengo visualizzate a video e quindi i dati correlati possono essere gestite in modo semplice ed intuitivo.
Form Editor per utenti finali
TREND .NET integra un Editor di Form che permette di modificare le interfacce standard di TREND .NET in base alle esigenze dell’utente finale.
Anche l’editor dei Form è disponibile nativamente in TREND .NET senza l’ausilio dell’ SDK. L’ editor dei form è di tipo WYSIWYG (What You See Is What You Get) e si attiva automaticamente quando l’utente (con gli appositi privilegi) attiva la “Modalità sviluppo”, come avviene per l’editor dei report e questo permette di accedere al form che si desidera modificare direttamente dall’interfaccia utente. L’ utente finale, quindi, può personalizzare l’interfaccia grafica dei form modificandone i colori, la sorgente dati, la posizione oppure anche escludere dall’interfaccia determinati campi che, ad esempio, non utilizza.
I video sul Software Development Kit di Trend .NET Enterprise
Vuoi conoscere i dettagli tecnici?
Lasciaci i tuoi riferimenti nel form sottostante e ti invieremo
una e-mail contenenti i link da cui scaricare le nostre guide tecniche sullo stack tecnologico di Trend .NET Enterprise.
[contact-form-7 id=”3913″ title=”Contact form 2″]