SOLUZIONI GESTIONALI PER LE AZIENDE
ERP Trend Enterprise
Tecnologia
//TDAINFORMATICA/ ERP/ TREND ENTERPRISE
SOFTWARE ERP TREND ENTERPRISE:
LO STRUMENTO NEL FUTURO DELL’AZIENDA
QUESTO DOCUMEN...
TREND ENTERPRISE E I SUOI COLLEGHI
Facciamo alcune considerazioni che ci permetteranno di
distinguere Trend Enterprise dal...
L’ ARCHITETTURA DI TREND
Abbiamo detto che Trend Enterprise è un software client-server
con architettura di tipo n-tier, e...
ORM, OBJECT-RELATIONAL MAPPING
Abbiamo già accennato alla funzione di “interprete” dello
strato ORM tra il livello MODEL o...
TECNOLOGIASCHEMAAPPLICATIVO
GUIDA PER ESPERTI
RISE:APPLICAZIONEERP,4-TIER,
FRAMEWORKDIMICROSOFT
//TDAINFORMATICA/ERP/TRENDENTERPRISEARCHITETTURADITREND INTRODUZIONE
SCHEMAAPPLICATIVODITRENDENTER
SVILUPPATAINMANAGEDCODE...
009
TECNOLOGIASCHEMAAPPLICATIVO
GUIDA PER ESPERTI
Cisonodiversicontrolliespostidallelibreriequelli
maggiormenteutilizzatis...
//TDAINFORMATICA/ERP/TRENDENTERPRISEINTRODUZIONE
TrendReporting
TrendReportingèlapartedelCorediTrendEnterpriseche
sioccupa...
007
TECNOLOGIASCHEMAAPPLICATIVO
GUIDA PER TUTTI
Ilpatternutilizzatoèl’MVVM(ModelViewView-Model)che
permettediseparareleint...
//TDAINFORMATICA/ERP/TRENDENTERPRISEARCHITETTURADITREND INTRODUZIONE
Tutteleoperazioni,generalmentechiamateCRUD(Create
Rea...
005
L’AMBIENTEMICROSOFT.NET:
UNAGARANZIAPERILFUTURO
LATECNOLOGIACHEMICROSOFTELECOMUNITA’DISVILUPPATORI,INDICANOCOMERIFERIM...
L’ARCHITETTURADITREND
AbbiamodettocheTrendEnterpriseèunsoftwareclient-server
conarchitetturaditipon-tier,eprecisamente4-ti...
TRENDENTERPRISEEISUOICOLLEGHI
Facciamoalcuneconsiderazionichecipermetterannodi
distinguereTrendEnterprisedallamaggiorparte...
PREMESSA
Questodocumentoèun’introduzioneo,sevolete,unapiccolaguida,
alletecnologieconcuièstatopensato,progettatoerealizzat...
SOLUZIONIGESTIONALIPERLEAZIENDE
ERPTrendEnterprise
Tecnologia
Upcoming SlideShare
Loading in …5
×

Trend.Net Enterprise - Software gestionale ERP .net framework - wpf - Entity Framework - 4 tier application - Composit application - Database indipendent (SQL Server, Oracle, My Sql...)

462 views

Published on

Trend.Net Enterprise è un software gestionale ERP di ultima generazione sviluppato in C# per .NET Framework di Microsoft.
E' stato sviluppato utilizzando il pattern di programmazione MVVM Model-View-ViewModel che, in poche parole, permette di astrarre il codice dalle interfacce grafiche.
Trend.Net Enterprise è un software completamente personalizzabile sia nelle interfacce grafiche che nei report.
E' possibile inoltre creare plug-in ed extensions per customizzare l' applicazione in qualsiasi linguaggio compatibile con il .NET Framework di Microsoft (c#, VB.Net, F# ecc. ecc.)
Il database può essere personalizzato e, quindi, è possibile aggiungere nuovi campi, tabelle e/o relazioni ed automaticamente le variazioni apportate saranno disponibili nelle classi di dominio e nel database stesso.
L' ORM (Object Relation Mapping) utilizzato in Trend.Net Enterprise è Entity Framework di Microsoft.
E le interfacce grafiche, al momento, sono realizzate in XAML per WPF Windows Presentation Fundation.
Nel file allegato e' possibile vedere l' infrastruttora software dell' applicativo, è divisa in due sezioni, una per utenti meno esperti ed una per sviluppatori.
In questi link un breve video:

Italian version :
http://www.youtube.com/watch?v=-tRUrBX4Kas

English version :
http://www.youtube.com/watch?v=sOxBgd3lwPo

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
462
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Trend.Net Enterprise - Software gestionale ERP .net framework - wpf - Entity Framework - 4 tier application - Composit application - Database indipendent (SQL Server, Oracle, My Sql...)

  1. 1. SOLUZIONI GESTIONALI PER LE AZIENDE ERP Trend Enterprise Tecnologia
  2. 2. //TDAINFORMATICA/ ERP/ TREND ENTERPRISE SOFTWARE ERP TREND ENTERPRISE: LO STRUMENTO NEL FUTURO DELL’AZIENDA QUESTO DOCUMENTO È UNA INTRODUZIONE, UNA PICCOLA GUIDA, ALLE TECNOLOGIE CON LE QUALI È STATO PENSATO, PROGETTATO E REALIZZATO L’APPLICATIVO GESTIONALE ERP TREND ENTERPRISE. ARCHITETTURA DI TRENDINTRODUZIONE PREMESSA Questo documento è un’introduzione o, se volete, una piccola guida alle tecnologie con cui è stato pensato, progettato e realizzato l’applicativo gestionale ERP Trend Enterprise. Poiché non tutti i lettori di questo documento sono esperti delle terminologie e delle più moderne tecniche di sviluppo software, abbiamo pensato di scriverlo in due forme: una chiara e comprensibile a tutti, una per esperti programmatori. State per iniziare la lettura rivolta a tutti… ribaltate la brochure per leggere l’altra. Lo scopo di questa guida è dimostrare che Trend Enterprise è progettato secondo le ultime tecnologie che, Microsoft e le comunità di sviluppatori, indicano come riferimento per gli anni a venire. INTRODUZIONE Trend Enterprise è un software client-server che opera in ambiente .NET, realizzato con una architettura di tipo n-tier o multi-tier, un aggettivo che può essere spiegato come “applicazione a enne-strati o livelli”. Quali sono, dunque, gli strati che costituiscono un software multi-strato? Teoricamente sono tre (3-tier): 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 trasforma i dati, il terzo è il sistema che memorizza e gestisce i dati, comunemente chiamato database. I vantaggi della stratificazione sono dovuti al fatto che, per apportare modifiche alle procedure, è sufficiente modificare solo il livello interessato alle variazioni, il che rende l’applicazione molto flessibile e le parti del livello intermedio utilizzabili per più di una procedura. L’architettura di Trend Enterprise è di tipo 4-tier.
  3. 3. TREND ENTERPRISE E I SUOI COLLEGHI Facciamo alcune considerazioni che ci permetteranno di distinguere Trend Enterprise dalla maggior parte degli altri software gestionali, attualmente reperibili nel mercato: la maggior parte di questi sono progettati con una architettura di tipo 2-tier, a due livelli. Solitamente, infatti, uno strato contiene sia le interfacce sia le logiche di elaborazione dei dati e un altro comprende i dati stessi. Si può affermare che quest’architettura, implicitamente, limita l’utilizzo del software o le sue capacità, ad esempio: 1- Un software 2-tier sarà un’applicazione desktop o per il web o per un altro tipo d’infrastruttura, ma non entrambe. 2- Il database, che contiene i dati, determina lo sviluppo dell’applicazione; ne consegue che non è possibile scegliere tra diversi “database”. 3- I programmatori, quando sviluppano una nuova interfaccia, devono riscriverla insieme alle logiche per l’elaborazione dei dati e queste non saranno riutilizzabili. Questo perché i suddetti software sono stati realizzati, probabilmente, con strumenti che risalgono agli anni passati e che non avevano le prerogative che avrebbero permesso ai programmatori di sviluppare diversamente. In questo caso tutti i produttori di software dovranno fare i conti con la politica di Microsoft che, in un periodo di circa 3 o 4 anni, non riproporrà la compatibilità dei nuovi sistemi operativi con questi strumenti. In caso diverso non avrebbe nessuna logica, pensando al futuro, scegliere questo tipo di architettura. 003 TREND ENTERPRISE E LA TECNOLOGIA .NET IL FUTURO DEI SOFTWARE GESTIONALI L’ARCHITETTURA 4-TIER E LA TECNOLOGIA .NET FANNO DI TREND ENTERPRISE UNO STRUMENTO IL CUI FUTURO È ALLINEATO ALLE INDICAZIONI DI MICROSOFT E DELLE COMUNITÀ DI SVILUPPATORI. TECNOLOGIA SCHEMA APPLICATIVO GUIDAPERESPERTI
  4. 4. L’ ARCHITETTURA DI TREND Abbiamo detto che Trend Enterprise è un software client-server con architettura di tipo n-tier, e precisamente 4-tier; è stato realizzato in ambiente .NET con il linguaggio di programmazione C# (C-Sharp) di Microsoft. Lo schema successivo mostra i quattro strati e, per ognuno di essi, i contenuti tecnologici e “sottostrati” di cui si compongono. Come abbiamo anticipato Vi proponiamo due tipi di guida alla comprensione di questo schema, una molto più tecnica dell’altra: scegliete quella che meglio Vi si addice. RDBMS, RELATIONAL DATABASE MANAGEMENT SYSTEM Lo strato RDBMS è il più semplice da comprendere. Comunemente chiamato database, è identificato, spesso e in maniera semplicistica, con “l’Archivio dei Dati”. Con le architetture di tipo 1, 2, 3-tier, i programmatori sono obbligati a sviluppare le logiche dei software in funzione del RDBMS che sarà utilizzato. L’architettura 4-tier, al contrario, permette l’indipendenza dell’applicazione dal RDBMS, poiché uno strato di cui parleremo in seguito, l’ORM, funge da “interprete” tra il database e il livello dell’applicazione stessa, detta CORE oppure MODEL. Ciò è molto importante, perché in questo modo Trend Enterprise diventa “RDBMS Indipendente” e, le aziende che lo adotteranno, potranno scegliere il database in funzione delle proprie esigenze, oppure, eventualmente, utilizzare quello di cui già dispongono. In effetti, purché il RDBMS sia compatibile con le specifiche del mondo ADO.NET potrà essere utilizzato con il nostro applicativo. Si contano ormai oltre cinquanta “database”, compatibili con ADO.NET, tra i quali sono compresi SQL, Oracle e MYSQL. L’ ARCHITETTURA 4-TIER DI TREND: TRAZIONE INTEGRALE I COMPONENTI PRINCIPALI DELL’ ARCHITETTURA DI TREND SONO QUATTRO: APPS, MODEL, ORM, RDBMS; SONO QUESTI GLI “STRATI” (TIER) DELL’ APPLICAZIONE .NET //TDAINFORMATICA/ ERP/ TREND ENTERPRISE ARCHITETTURA DI TRENDINTRODUZIONE
  5. 5. ORM, OBJECT-RELATIONAL MAPPING Abbiamo già accennato alla funzione di “interprete” dello strato ORM tra il livello MODEL o CORE, e il RDBMS che determina l’indipendenza dell’applicazione .NET dal sistema che gestisce i dati. L’ORM di cui è dotato Trend Enterprise è ENTITY FRAMEWORK, un componente di .NET Framework 4.5 di Microsoft, cui abbiamo implementato TDEF, Trend Dynamics Entity Framework. EF, ENTITY FRAMEWORK, rende disponibili al MODEL (il motore dell’applicazione) i dati contenuti nel database, secondo la tecnologia ADO.NET. La cosa più interessante è che i programmatori non devono conoscere quale database sarà utilizzato dall’applicazione; questo consente loro di scrivere molto meno codice per l’elaborazione dei dati in quanto l’accesso agli stessi è gestito dall’interprete. L’ORM converte le operazioni richieste dall’applicazione nei comandi specifici del RDBMS cui è connesso. È stato necessario implementare nell’ORM un sottostrato con funzioni specifiche quali, ad esempio, la gestione di architetture multiprocessore, l’ottimizzatore della velocità di accesso ai dati e una gestione avanzata del blocco dei record per una migliore amministrazione dei casi di concorrenza sui dati. Ulteriormente sono state implementate numerose librerie che permettono l’accesso dinamico ai dati. MODEL O CORE Lo strato CORE è il motore dell’applicazione Trend Enterprise. È un insieme di librerie che sono utilizzate dallo strato APPLICATION per esporre i dati. È necessario descrivere questo strato in modo meno semplicistico, considerandolo dal punto di vista degli sviluppatori: essi vedono il MODEL unito all’ORM come il supporto per creare le APPS di Trend Enterprise. Questa unione è TREND FRAMEWORK, TF. TF, in pratica, è una collezione di comandi, routine, tools, controlli, classi e librerie che gli sviluppatori hanno a disposizione per implementare le APPS che, in definitiva, sono ciò che l’utilizzatore considera come il software vero e proprio. TEEF unisce le logiche generiche di .NET Framework 4.5 e del suo componente Entity Framework, a quelle specifiche, e necessarie per una applicazione gestionale, di Trend SDK e Trend Dinamic Entity Framework. La caratteristica più importante del MODEL è che il set di comandi, routine, controlli e classi che comprende, è disponibile per più di un applicazione, è riutilizzabile. Questo permette ai programmatori di non riscrivere tali componenti per ogni applicazione, il che riduce il tempo di sviluppo e limita la possibilità di errori. Queste parti, inoltre, possono essere implementate e/o sostituite per accrescere la versatilità e flessibilità del framework senza che ne risentano gli altri strati. APPLICATION Lo strato APPLICATION è quello che l’utilizzatore considera come il vero e proprio software. In questo livello si trovano le interfacce grafiche, che si collegano ai componenti del MODEL, per l’esposizione dei risultati delle elaborazioni. Due, soprattutto, sono le caratteristiche importanti di questo livello. Una è che le APPS possono essere scritte in uno qualsiasi dei linguaggi che supportano la tecnologia .NET. Questo permette ai programmatori di costruire nuove applicazioni per gli utenti sfruttando le competenze di cui, eventualmente, già dispongono. Non meno importante, il fatto che sia possibile sviluppare applicazioni per infrastrutture diverse, non solo quindi applicazioni desktop per Windows, ma anche per il Web e per sistemi mobile senza perdere il supporto del framework di Trend. 005 L’ AMBIENTE MICROSOFT .NET: UNA GARANZIA PER IL FUTURO LA TECNOLOGIA CHE MICROSOFT E LE COMUNITÀ DI SVILUPPATORI, INDICANO COME RIFERIMENTO PER GLI ANNI A VENIRE. TECNOLOGIA SCHEMA APPLICATIVO GUIDAPERESPERTI
  6. 6. TECNOLOGIASCHEMAAPPLICATIVO GUIDA PER ESPERTI RISE:APPLICAZIONEERP,4-TIER, FRAMEWORKDIMICROSOFT
  7. 7. //TDAINFORMATICA/ERP/TRENDENTERPRISEARCHITETTURADITREND INTRODUZIONE SCHEMAAPPLICATIVODITRENDENTER SVILUPPATAINMANAGEDCODEPER.NE
  8. 8. 009 TECNOLOGIASCHEMAAPPLICATIVO GUIDA PER ESPERTI Cisonodiversicontrolliespostidallelibreriequelli maggiormenteutilizzatisono: - teBrowseSearch - teButton - teButtonGlobal - teButtonTransparent - teCheckBox - teCheckBoxDimmer - teCheckBoxPower - teCheckBoxSlider - teComboBoxEdit - teDateEdit - teEditBox - teEditBoxValidate - teGridControl - teGridColumn - teGridViewCard - teGridViewTable - teGridViewTreeList - teLabel - teMemoEdit - teTabControl - teTabItem - teWindow TrendExtensibleFramework TrendExtensibleFrameworkèlapartedelFrameworkchesi occupadellapossibilitàdipersonalizzareTrendEnterprise. L’utentee/oilprogrammatorechepossiedegliappositiprivilegi halapossibilitàdiattivareunafunzionechenoichiamiamo modalitàsviluppo.QuandoTrendEnterpriseèinmodalità sviluppopermettedicustomizzarel’applicazionestandarddi Trend.Tuttelemodificheeffettuateconlamodalitàsviluppo vengonoposizionateinunsottostratodell’applicativoed eseguitearun-time.Inquestomodosihal’enormevantaggio dinondovervariareisorgentidell’applicazionepermettendo l’aggiornamentoallesuccessivereleasediTrendsenzadover reinsierelemodificheeffettuateperl’utentefinale. Ognimodificaeffettuatapuòessererimossa,inquestocaso, Trendriutilizzeràlefunzionistandarddell’applicativo. AttraversoTrendExtensibleFrameworksipossonomodificare leproprietàdeglioggettistandarddiTrend(colori,dimensioni, sorgentedatiecc.ecc.).Sipossonocrearenuovioggettinell’ interfacciasiaespostidalframeworkdiTrendcheoggetti standarddel.NETFrameworke/oditerzeparti. PRISE. ENTOSULLABASEDELLEPROPRIEESIGENZE. SipossonoinoltrecrearedeiPlug-in(conqualsisilinguaggiodel .NETFramework)chemodificanoilcomportamentostandard delleAppdiTrendEnterprise.Iplug-inpossonomodificaresia le“regoledicalcolo”standard(ades:sesivuolemodificareil metododicalcoloprovvigionalee/oleregolediapplicazionedi ricaricadeiprezziecc.ecc.)cheleregolediinterfacciautente (ades:sivuoleinibirelacancellazionedeiclientiagliutentidel gruppomagazzino,oppuresivuoleabilitarelavisualizzazione dell’IBANdellabancadiappoggiodeiclientiaisoliutenti delgruppocontabilitàecc.ecc.TrendExtensibleFramework permetteindefinitivadimodificareleapplicazionistandarddi TrendEnterprisepersoddisfareleesigenzedell’utentefinale senzadoversipoipreoccuparedellamanutenzionedellestesse conifuturiaggiornamentidirelease. APPLICATION LostratoAPPLICATIONèquellochel’utilizzatoreconsidera comeilveroepropriosoftware.Inquestolivellositrovanole interfaccegrafiche,chesicolleganoaicomponentidelMODEL, perl’esposizionedeirisultatidelleelaborazioni. Due,soprattutto,sonolecaratteristicheimportantidiquesto livello.UnaècheleAPPSpossonoesserescritteinunoqualsiasi deilinguaggichesupportanolatecnologia.NET.Questopermette aiprogrammatoridicostruirenuoveapplicazionipergliutenti sfruttandolecompetenzedicui,eventualmente,giàdispongono. Nonmenoimportante,comeleggeretepiùavanti,ilfattoche siapossibilesviluppareapplicazioniperinfrastrutturediverse enonsoloapplicazionidesktopperWindows,senzaperdere ilsupportodelframeworkdiTrend.LeTrendAPPSStandard sonosviluppateconillinguaggiodimarkupXAML(Extensible ApplicationMarkupLanguage)diMicrosoft,utilizzandoilpattern diprogrammazioneMVVM(ModelView-ViewModel)che permettedisepararel’interfacciadalcodice.IlMODEL,come abbiamovisto,èilmotoreoCOREdell’applicativo,laVIEWè l’interfaccia,laAPP.IlVIEWMODELèilcollegamentotraqueste. MVVMèdiventatounpatternindispensabileacausadellacrescita dellacomplessitàdelleinterfaccegraficheedellanecessità dell’utenzadiutilizzarelostessoprodottosoftwarecondiverse infrastrutture,comeilweb,dispositividesktopeidiversiapparati mobileperlatelefonia.Laseparazionedalcodicepermette, semplicemente,di“ridisegnare”l’interfacciasecondol’esigenza infrastrutturale,riutilizzandolostessocodice.
  9. 9. //TDAINFORMATICA/ERP/TRENDENTERPRISEINTRODUZIONE TrendReporting TrendReportingèlapartedelCorediTrendEnterpriseche sioccupadellagestionedellareportistica.Leclassiemetodi espostidaquestaporzionedellalibreriavengonogeneralmente utilizzatedirettamentedalleTrendApps. TrendReportinghaunViewerdireportWYSIWYG(What YouSeeIsWhatYouGet)integratocheoltreallefunzionidi visualizzazioneclassichecomezoom,adattamentoallapagina, navigazionesullepagine,ricercadeltestocontenutonelreport, hafunzioniavanzatequaliiperlinksulreportstessooreport correlati,graficiekpi. IlViewerdireportèditipovettoriale,permettequindi ingrandimentideltestosenzaperditadirisoluzione,oltreadare lapossibilitàdiruotareiltestostesso. Altrefunzioniinteressantisonol’esportazionenativadeireport neiseguentiformati: - PDF - HTML - MHT - RTF - XLS(Excel) - XLSX(Excelnuovoformato) - CSV - Text - Image(png,bmp,emf,wmf,tiff,jpgecc.ecc.) - XPS PossibilitàdiinviareautomaticamenteunaMailallegandoil reportneiformatisopraindicati. SalvataggiodelReportnelformatonativo,perriaprirlo successivamentedalviewerstesso. OltrealviewerTrendReportingintegraunEditordiReportche permettedimodificareireportstandarddiTrendinbasealle esigenzedell’utentefinalee/odicrearenuovireportdazero. L’editordiReportsiattivaautomaticamentequandol’utente (congliappositiprivilegi)attivala“modalitàsviluppo”. Questopermettediaccederealreportchesidesideramodificare direttamentedall’interfacciadiTrend(menù,toolbarecc.ecc.). Anchel’editordireporte’ditipoWYSIWYG,l’utente,quindi, modificailreportconunacomodainterfacciautenteetramiteil Drag&Dropdeglioggettigrafici. IldataBindingdeidativienecontrollatodalmoduloTrend DataAccess;quindil’utenteperaggiungeree/omodificarela sorgendedeidatisfruttalenavigationpropertyespostedalle classididominio,inquestomodo,automaticamente,tuttele relazionivengonogestiteautomaticamentedalcorediTrend Enterprise. Logicamente,comegiàspiegato,TrendDataAccesscolloquia conL’ExtensibleDatabaseModel,percui,seilprogrammatore haaggiuntotabelle,campie/orelazioniautomaticamente questevengonovistedall’editorstessoconlapossibilità,quindi, diaggiungerlesiasuireportstandarddiTrendEnterpriseche suinuovireport. TrendEnterprisehainoltrelapossibilitàdiselezionareglistili dellareportisticapermodificareinunasolaparteicolori,ifont, ledimensioneecc.ecc.dituttiireportdiTrend. Glistiligestisconolagerarchiadiclasse,percui,senonsi modificanoleproprietàtuttiglioggettidelreportereditano dallostilecorrentementeselezionatoamenochèl’operatore vogliaimpostareunaproprietàdifferente. SonogiàpresentinelsetupdiTrendEnterprisediversistili standard,l’operatorehapoilapossibilitàdicrearestili personalizzatie/odimodificarequellistandard. TrendControls TrendControlsèun’insiemediControlli(CustumControleUser Control)chevengonoutilizzatidalleAppsdiTrendEnterprise. IlProgrammatorepuòsceglierediutilizzarequesticontrolli oppurepuòancheoptareperl’utilizzodicontrollistandardo diterzeparti. IcontrollidiTrendhannovariecaratteristichechepermettono divelocizzarenotevolmentelosviluppodiapplicazionigestionali e/odicustomizzarequellegia’esistenti. Unadelleprincipalicaratteristichee’ilBindingavanzato,ogni controlloesponeunaDependencyProperty(TrendControlSource) cheautomaticamentegestisceilBindingconilcontrollostesso. SeadesempiovogliamovisualizzaresuunaGridlelineedi dettagliodellatestatal’unicacosachedevefarelosviluppatore e’quelladivalorizzarenelcontrolloteGridControllaproprietà (DependencyProperty)TrendControlSource.Adesempio: QuestaistruzioneinseritanelloXamloselezionatanellafinestra proprietàdiVisualStudio: TrendControlSource=”Record.np_tab_vl” gestisceautomaticamenteilBindingbidirezionaletracciandole modificheetutteleoperazioniCRUDversoildatabaseditutte lelineedell’oggettoRecordchee’espostoautomaticamente nelRepositorydallalibreriaTrendDataAccess. UtilizzandoicontrollistandarddelFrameworksievita, quindi,digestiretuttalamolediinformazioniecodice inseritonormalmentenelViewModelqualiadesempiole ObservableCollectionbindingecc.ecc.inquantoe’ilFramework stessocheeffettuaquestolavoropernoi. LOSTATOMODELOCOREDELL’APPLICAZIONE: ILMOTOREPOTENTEDITRENDENTERPRISE ILLIVELLOCORE,DETTOANCHEMODEL,DELL’APPLICAZIONEE’,ATUTTIGLIEFFETTI,ILMOTOREDELL’ERPTRENDENTE QUESTOMOTOREPUÒESSEREMODELLATOINBASEALLEESIGENZEDELL’UTILIZZATORE,PEROTTIMIZZAREILFUNZIONA ARCHITETTURADITREND
  10. 10. 007 TECNOLOGIASCHEMAAPPLICATIVO GUIDA PER TUTTI Ilpatternutilizzatoèl’MVVM(ModelViewView-Model)che permettediseparareleinterfaccegrafichedalcodice. TrendDataAccesseffettuaautomaticamenteunascansione avanzatadell’objecttrackingottimizzandolerisorsedella memoriaattraversoun’indicizzazionedeglistessiperun notevoleaumentoprestazionale. TrendDataAccessèlapartedelCorechesioccupadelRecord LockinggestendoautomaticamenteleinformazionisulLockdei recordcomeadesempiol’utentechestàbloccandoilrecord,il terminalel’oraeladatadiblocco. IlRecordLocking,asecondadelleesigenzeedelladimensione aziendale,puòessereconfiguratocomeOttimisticoo Pessimistico.IlRecordlockingpessimistico,inognicaso, permetteinfasedilocklaletturadelrecordmanonlamodifica dellostesso. TrendDataAccesse’compostodaun’ulteriorestratochiamato Applicationall’internodelqualesonopresentileclassiedi metodistrettamenteapplicativi.LostratoApplicationèasua voltasuddivisoinvarieclassiasecondadelmodulointeressato ades: - Application.mov_mag:Insiemediclassiemetodi utilizzabilidalmodulomagazzino(determinazionedel prezzodiunprodotto,numerazionedelprotocollodi magazzino,gestionedellevariantidiprodottoecc. ecc.) - Application.ges_dbas:Insiemediclassiemetodi utilizzabilidalmodulodistintedibase(sviluppoadb monolivello,multilivello,gestionedellevariantidi distinta,determinazionedelprezzodiunprodotto sviluppandolarelativadistintabaseecc.ecc.) - Application.mov_con:Insiemediclassie metodiutilizzabilidalmodulomovimenticontabili (creazioneautomaticadiunareg.contabilepassando iparametrinecessari,totaleivadiunadeterminata registrazione,totaleprimanotadiunadeterminata registrazione,saldoschedacontabilediuncliente– fornitoreocontopianodeiconti,ecc.ecc.) - Nonelenchiamoquituttelesuddivisionidellostrato application,ognimodulodiTrendEnterpriseha, generalmente,ilpropriostratoapplication. TrendGenericLibrary TrendGenericLibraryèlapartedelCorediTrendEnterprise cheesponeclassi,metodiecommandadusotrasversalee generale. Leclassiespostedaquestaporzionedellalibreriavengono utilizzatesiadalleTrendAppschedallealtrepartidel Frameworkstesso. Inquestalibreriasonopresenticlassidiutilizzogeneralecome adesempio: - Aperturaeconnessionealdatabase. - InterrogazionisullostatodiLockdeiRecord. - Esecuzionediquerydinamiche(tipizzateenon tipizzateinbaseall’occorrenza). - Visualizzazionediformnelcorrentedesktop selezionato. - Caricamentodiimmaginiegestioneavanzatadei controlli. - Esecuzionedianimazioni. - Conoscerelostatodell’utenteloggato(ades:see’in DevelopmentMode) - Conoscerelostatodell’attualeDBselezionato (Multiazienda) - GestionedelleGlobalperaccessoaidatitramite iperlink. - MetodieClassipersemplificarel’usodelpattern MVVM. - Ecosivia. TrendDataAccessLibrary TrendDataAccessèlapartedelCorediTrendEnterpriseche esponeclassi,metodiecommandriguardantil’accessoaidati. Leclassiespostedaquestaporzionedellalibreriavengono generalmenteutilizzatedirettamentedalleTrendApps. Inquestalibreriasonopresenticlassichesioccupano esclusivamentedell’accessoalleinformazioniedellarelativa gestione. Fannoparteadesempiodiquestalibreriatuttalagestionedel Repositoryconivaricommand,metodiedeventiespostiper gestireautomaticamenteleoperazioniC.R.U.D.delleinterfacce video. Questapartedellalibreriasioccupaanchedell’ottimizzazione dell’accessoaidatisfruttandounmotoredioggettiinmemoria fortementeindicizzato,vienegestito,ovenecessarioil parallelismoel’utilizzomultiprocessore. PRISE. ENTOSULLABASEDELLEPROPRIEESIGENZE.
  11. 11. //TDAINFORMATICA/ERP/TRENDENTERPRISEARCHITETTURADITREND INTRODUZIONE Tutteleoperazioni,generalmentechiamateCRUD(Create ReadUpdateDelete),versoilDatabasevengonogestitedal Frameworkstesso. IlFrameworkgestisce,oltrealleoperazioniCRUD,operazioni diottimizzazioneperrenderel’applicazioneel’accessoai datiilpiùprestantepossibile;attraversoilparallelismoe componentiLINQestremamenteindicizzatianchesudatabase digrandissimedimensionisihannoprestazionivicinealtempo reale. ModelloRelazionale->ModelloGerarchico Reticolare TrendEnterpriseutilizzacomemodellodiaccessoaidatiil ModelloGerarchicoReticolare. NelmodelloGerarchicoReticolarelerelazionitraidatifanno partedellastrutturastessadelleclassiesposteneldominio; questosignificachelosviluppatorenondevenecessariamente conoscerecom’èorganizzatalabasedatiequindiconoscerne lastrutturaperscriverelaclassicaquerySQLconlerelative join;sarà,invece,ilFrameworkascriverlaperluievitando erroridiscritturainquantolequeryvengonogeneralmente scritteinmodotipizzatoequalsiasierrore(nomecampoerrato, navigationpropertyerrataecc.)vieneevidenziataapriorigiàin fasedicompilazioneenoninfasediesecuzione. FacciamounesempiopercapiremeglioilconcettodiModello GerarchicoReticolare: lineaMovMage’l’oggettodellacorrentelineadelmovimentodi magazzino: Sevogliamoricavareadesempioladescrizionedellacategoria merceologicapossiamoscrivere: vardesCategoria=lineaMovMag.np_ges_prod.np_cat_merc. descrizion; InTrendEnterpriseilprefissonp_indicaNavigationProperty che,inse,haleindicazionidirelazione(1..1,1..moltioppure molti..molti)peraccedereaidatiinmodogerarchicoe reticolare. Np_ges_prode’lanavigationpropertyche“collega”lacorrente lineadelmovimentodimagazzinoall’anagraficaprodotti,chea suavoltahaunanavigationproperty,np_cat_merc,checollega ilprodottoallarelativacategoriamerceologica. Saràilframeworkcheautomaticamenteinvialacorretta istruzioneSQLaldatabaseconlerelativejoinperestrarrela descrizionedellacategoria. MODELOCORE LostratoMODELoCOREèilmotoredell’applicazioneTrend Enterprise.Èuninsiemedilibreriechesonoutilizzatedallo stratoAPPLICATIONperelaborareidatieesporliall’utilizzatore. IlCOREcolloquiaconlostratoORMerestituisceidatiderivati dall’elaborazionealleAPPSdiTrendEnterprise. IlCOREèasuavoltasuddivisoinseidifferentiareeche interagisconotraloro,echevedremoseparatamente: - ExtensibleDatabaseModel - TrendGenericLibrary - TrendDataAccessLibrary - TrendReporting - TrendControls - TrendExtensibleFramework ExtensibleDatabaseModel ExtensibleDatabaseModelpermettedimodificarelastruttura datidell’applicazioneTrendEnterpriseinmodosempliceed intuitivo. Attraversounappositoeditorsipossonoeditarelestrutture delletabelle,dellerelazioni,deicampiecosivia. E’possibileadesempioaggiungerenuovicampi,modificarela dimensionedeicampigiàpresenti,aggiungerenuovetabellee nuoverelazioni. Ognimodificaeffettuatanell’editorvienepropagata automaticamentesiaaldatabasechealleclassididominioin modotrasparenteall’utente. Leclassididominiorappresentanoil“ponte”trailCorediTrend EnterpriseedilDatabase. OgniapplicazionediTrendEnterprise(TrendApp)colloquia esclusivamenteconilCore(Model)cheasuavoltaattraversole classididominioricevee/oinviaidatialdatabase. Questoconcettovienegeneralmentechiamato“persistance ignorance”ovveroilprogrammatorenondeveconoscerela sintassideldatabase(TrendEnterprisee’infattidatabase indipendenteeognidatabasehaunpropriodialetto)enon deveneancheconoscereivaritoolsmessiadisposizionedai databasestessipermodificare,adesempio,lestrutturedelle tabelle;losviluppatoredeveesclusivamente“dialogare”conlo stratoapplicativoespostodalFrameWorkdiTrendEnterprise. LOSTATOMODELOCOREDELL’APPLICAZIONE: ILMOTOREPOTENTEDITRENDENTERPRISE ILLIVELLOCORE,DETTOANCHEMODEL,DELL’APPLICAZIONEE’,ATUTTIGLIEFFETTI,ILMOTOREDELL’ERPTRENDENTE QUESTOMOTOREPUÒESSEREMODELLATOINBASEALLEESIGENZEDELL’UTILIZZATORE,PEROTTIMIZZAREILFUNZIONA
  12. 12. 005 L’AMBIENTEMICROSOFT.NET: UNAGARANZIAPERILFUTURO LATECNOLOGIACHEMICROSOFTELECOMUNITA’DISVILUPPATORI,INDICANOCOMERIFERIMENTOPERGLI ANNIAVENIRE. TECNOLOGIASCHEMAAPPLICATIVO GUIDA PER TUTTI RDBMS,RELATIONALDATABASE MANAGEMENTSYSTEM LostratoRDBMSèilpiùsemplicedacomprendere. Comunementechiamatodatabase,èidentificato,spessoe inmanierasemplicistica,con“l’ArchiviodeiDati”.Conle architettureditipo1,2,3-tier,iprogrammatorisonoobbligati asvilupparelelogichedeisoftwareinfunzionedelRDBMS chesaràutilizzato.L’architettura4-tier,alcontrario,permette l’indipendenzadell’applicazionedalRDBMS,poichéunostrato dicuiparleremoinseguito,l’ORM,fungeda“interprete”trail databaseeillivellodell’applicazionestessa,dettaCOREoppure MODEL.Ciòèmoltoimportante,perchéinquestomodoTrend Enterprisediventa“RDBMSIndipendente”e,leaziendechelo adotteranno,potrannoscegliereildatabaseinfunzionedelle proprieesigenze,oppure,eventualmente,utilizzarequellodi cuigiàdispongono. Ineffetti,purchéilRDBMSsiacompatibileconlespecifichedel mondoADO.NETpotràessereutilizzatoconilnostroapplicativo. Sicontanoormaioltrecinquanta“database”,compatibilicon ADO.NET,traiqualisonocompresiSQL,OracleeMYSQL. ORM,OBJECT-RELATIONALMAPPING Abbiamogiàaccennatoallafunzionedi“interprete”dellostrato ORMtraillivelloMODELoCORE,eilRDBMSchedetermina l’indipendenzadell’applicazione.NETdalsistemachegestiscei dati.L’ORMdicuièdotatoTrendEnterpriseèENTITYFRAMEWORK, uncomponentedi.NETFramework4.5diMicrosoft,cuiabbiamo implementatoTDEF,TrendDynamicsEntityFramework. EF,ENTITYFRAMEWORK,rendedisponibilialMODEL(il motoredell’applicazione)idaticontenutineldatabase,secondo latecnologiaADO.NET.Lacosapiùinteressanteèchei programmatorinondevonoconoscerequaledatabasesarà utilizzatodall’applicazione;questoconsentelorodiscrivere moltomenocodiceperl’elaborazionedeidatiinquantol’accesso aglistessiègestitodall’interprete.L’ORMconverteleoperazioni richiestedall’applicazioneneicomandispecificidelRDBMS cuièconnesso.Èstatonecessarioimplementarenell’ORMun sottostratoconfunzionispecifichequali,adesempio,lagestione diarchitetturemultiprocessore,l’ottimizzatoredellavelocitàdi accessoaidatieunagestioneavanzatadelbloccodeirecordper unamiglioreamministrazionedeicasidiconcorrenzasuidati. Ulteriormentesonostateimplementatenumeroselibrerieche permettonol’accessodinamicoaidati.
  13. 13. L’ARCHITETTURADITREND AbbiamodettocheTrendEnterpriseèunsoftwareclient-server conarchitetturaditipon-tier,eprecisamente4-tier;èstato realizzatoinambiente.NETconillinguaggiodiprogrammazione C#(C-Sharp)diMicrosoft.Loschemasuccessivomostrai quattrostratie,perognunodiessi,icontenutitecnologicie “sottostrati”dicuisicompongono.Comeabbiamoanticipato Viproponiamoduetipidiguidaallacomprensionediquesto schema,unamoltopiùtecnicadell’altra:sceglietequellache meglioVisiaddice TRENDFRAMEWORK TutteleAppsStandarddiTrendEnterprise,sonostatesviluppate utilizzandoTrendFramework,chepuòessereutilizzatodai programmatori(sianoessiicomponentideirepartiCED oppureiprogrammatorideiRivenditoridiTrend)persviluppare nuoveAPPSopercustomizzarequellegiàesistenti,colfinedi soddisfareleesigenzedell’utentefinale. TrendFrameworksemplificanotevolmentelosviluppodi nuoveapplicazioni;ilprogrammatoresidovràconcentrare esclusivamentesullaAPPSchedeverealizzareenonsu comerealizzarla,inquantoTrendFrameworkgestisce automaticamentetutteleregoledibinding,diverificae controllo(dicosa?),digestionedellegridedirelazionetrale tabelle.Lestesseroutineperlareportisticasonointegratein TrendFrameworke,utilizzandol’appositoeditor,èpossibile modificarelestampeesistentiocrearnedinuove. Iprogrammatori,sfruttandoglieditordell’ExstensibleDatabase Model,possonoaggiungereemodificareicampi,letabelle elerelazionidelleclassididominioinmodotrasparente; questemodifichesarannoautomaticamenteinviate(achi?) aggiornandoildatabaseeresedisponibiliallostratoApplication. L’ARCHITETTURA4-TIERDITREND: TRAZIONEINTEGRALE //TDAINFORMATICA/ERP/TRENDENTERPRISEARCHITETTURADITREND INTRODUZIONE ICOMPONENTIPRINCIPALIDELL’ARCHITETTURADITRENDSONOQUATTRO:APPS,MODEL,ORM,RDBMS; SONOQUESTIGLI“STRATI”(TIER)DELL’APPLICAZIONE.NET
  14. 14. TRENDENTERPRISEEISUOICOLLEGHI Facciamoalcuneconsiderazionichecipermetterannodi distinguereTrendEnterprisedallamaggiorpartedeglialtri softwaregestionali,attualmentereperibilinelmercato:la maggiorpartediquestisonoprogettaticonunaarchitetturadi tipo2-tier,aduelivelli.Solitamente,infatti,unostratocontiene sialeinterfaccesialelogichedielaborazionedeidatieunaltro comprendeidatistessi.Sipuòaffermarechequest’architettura, implicitamente,limital’utilizzodelsoftwareolesuecapacità,ad esempio: 1-Unsoftware2-tiersaràun’applicazionedesktopoperilweb operunaltrotipod’infrastruttura,manonentrambe. 2-Ildatabase,checontieneidati,determinalosviluppo dell’applicazione;neconseguechenonèpossibilescegliere tradiversi“database”. 3-Iprogrammatori,quandosviluppanounanuovainterfaccia, devonoriscriverlainsiemeallelogicheperl’elaborazionedei datiequestenonsarannoriutilizzabili. Questoperchéisuddettisoftwaresonostatirealizzati, probabilmente,construmenticherisalgonoagliannipassati echenonavevanoleprerogativecheavrebberopermessoai programmatoridisvilupparediversamente.Inquestocasotutti iproduttoridisoftwaredovrannofareiconticonlapoliticadi Microsoftche,inunperiododicirca3o4anni,nonriproporrà lacompatibilitàdeinuovisistemioperativiconquestistrumenti. Incasodiversononavrebbenessunalogica,pensandoalfuturo, sceglierequestotipodiarchitettura. 003 TECNOLOGIASCHEMAAPPLICATIVO GUIDA PER TUTTI TRENDENTERPRISEELATECNOLOGIA.NET ILFUTURODEISOFTWAREGESTIONALI L’ARCHITETTURA4-TIERELATECNOLOGIA.NETFANNODITRENDENTERPRISEUNOSTRUMENTOILCUIFUTURO ÈALLINEATOALLEINDICAZIONIDIMICROSOFTEDELLECOMUNITÀDISVILUPPATORI.
  15. 15. PREMESSA Questodocumentoèun’introduzioneo,sevolete,unapiccolaguida, alletecnologieconcuièstatopensato,progettatoerealizzato l’applicativogestionaleERPTrendEnterprise.Poichénontutti ilettoridiquestodocumentosonoespertidelleterminologiee dellepiùmodernetecnichedisvilupposoftware,abbiamopensato discriverloindueforme:unachiaraecomprensibileatutti,una perespertiprogrammatori. Stateperiniziarelaletturaperipiùesperti…ribaltatela brochureperleggerel’altra. LoscopodiquestaguidaèdimostrarecheTrendEnterpriseè progettatosecondoleultimetecnologieche,Microsoftele comunitàdisviluppatori,indicanocomeriferimentoperglianni avenire. INTRODUZIONE TrendEnterpriseèunsoftwareclient-servercheoperain ambiente.NET,realizzatoconunaarchitetturaditipon-tier omulti-tier,unaggettivochepuòesserespiegatocome “applicazioneaenne-stratiolivelli”.Qualisono,dunque,glistrati checostituisconounsoftwaremulti-strato?Teoricamentesono tre(3-tier):PresentazionedeiDati,AccessoedElaborazionedei DatieSistemadiGestionedeiDati.Ilprimoèl’interfacciautente, ilsecondoèilmotoredell’applicazionechetrasformaidati,il terzoèilsistemachememorizzaegestisceidati,comunemente chiamatodatabase.Ivantaggidellastratificazionesonodovutial fattoche,perapportaremodifichealleprocedure,èsufficiente modificaresoloillivellointeressatoallevariazioni,ilcherende l’applicazionemoltoflessibileelepartidellivellointermedio utilizzabiliperpiùdiunaprocedura.L’architetturadiTrend Enterpriseèditipo4-tier. //TDAINFORMATICA/ERP/TRENDENTERPRISEARCHITETTURADITREND INTRODUZIONE SOFTWAREERPTRENDENTERPRISE: LOSTRUMENTONELFUTURODELL’AZIENDA QUESTODOCUMENTOÈUNAINTRODUZIONEEUNAPICCOLAGUIDA,ALLETECNOLOGIECONLEQUALIÈSTATO PENSATO,PROGETTATOEREALIZZATOL’APPLICATIVOGESTIONALEERPTRENDENTERPRISE.
  16. 16. SOLUZIONIGESTIONALIPERLEAZIENDE ERPTrendEnterprise Tecnologia

×