trend.net enterprise - software gestionale erp .net framework - wpf - entity framework - 4 tier...

of 16 /16
SOLUZIONI GESTIONALI PER LE AZIENDE ERP Trend Enterprise Tecnologia

Author: franco-candieracci

Post on 10-Jun-2015

282 views

Category:

Technology


1 download

Embed Size (px)

DESCRIPTION

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

TRANSCRIPT

  • 1. SOLUZIONI GESTIONALI PER LE AZIENDE ERP Trend Enterprise Tecnologia

2. //TDAINFORMATICA/ ERP/ TREND ENTERPRISE SOFTWARE ERP TREND ENTERPRISE: LO STRUMENTO NEL FUTURO DELLAZIENDA QUESTO DOCUMENTO UNA INTRODUZIONE, UNA PICCOLA GUIDA, ALLE TECNOLOGIE CON LE QUALI STATO PENSATO, PROGETTATO E REALIZZATO LAPPLICATIVO GESTIONALE ERP TREND ENTERPRISE. ARCHITETTURA DI TRENDINTRODUZIONE PREMESSA Questo documento unintroduzione o, se volete, una piccola guida alle tecnologie con cui stato pensato, progettato e realizzato lapplicativo 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 laltra. 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 linterfaccia utente, il secondo il motore dellapplicazione 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 lapplicazione molto flessibile e le parti del livello intermedio utilizzabili per pi di una procedura. Larchitettura di Trend Enterprise di tipo 4-tier. 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 questarchitettura, implicitamente, limita lutilizzo del software o le sue capacit, ad esempio: 1- Un software 2-tier sar unapplicazione desktop o per il web o per un altro tipo dinfrastruttura, ma non entrambe. 2- Il database, che contiene i dati, determina lo sviluppo dellapplicazione; ne consegue che non possibile scegliere tra diversi database. 3- I programmatori, quando sviluppano una nuova interfaccia, devono riscriverla insieme alle logiche per lelaborazione 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 LARCHITETTURA 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. 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 dellaltra: 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 lArchivio 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. Larchitettura 4-tier, al contrario, permette lindipendenza dellapplicazione dal RDBMS, poich uno strato di cui parleremo in seguito, lORM, funge da interprete tra il database e il livello dellapplicazione 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. 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 lindipendenza dellapplicazione .NET dal sistema che gestisce i dati. LORM 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 dellapplicazione) i dati contenuti nel database, secondo la tecnologia ADO.NET. La cosa pi interessante che i programmatori non devono conoscere quale database sar utilizzato dallapplicazione; questo consente loro di scrivere molto meno codice per lelaborazione dei dati in quanto laccesso agli stessi gestito dallinterprete. LORM converte le operazioni richieste dallapplicazione nei comandi specifici del RDBMS cui connesso. stato necessario implementare nellORM un sottostrato con funzioni specifiche quali, ad esempio, la gestione di architetture multiprocessore, lottimizzatore 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 laccesso dinamico ai dati. MODEL O CORE Lo strato CORE il motore dellapplicazione 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 allORM 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 lutilizzatore 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 lutilizzatore considera come il vero e proprio software. In questo livello si trovano le interfacce grafiche, che si collegano ai componenti del MODEL, per lesposizione 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. TECNOLOGIASCHEMAAPPLICATIVO GUIDA PER ESPERTI RISE:APPLICAZIONEERP,4-TIER, FRAMEWORKDIMICROSOFT 7. //TDAINFORMATICA/ERP/TRENDENTERPRISEARCHITETTURADITREND INTRODUZIONE SCHEMAAPPLICATIVODITRENDENTER SVILUPPATAINMANAGEDCODEPER.NE 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 TrendExtensibleFrameworklapartedelFrameworkchesi occupadellapossibilitdipersonalizzareTrendEnterprise. Lutentee/oilprogrammatorechepossiedegliappositiprivilegi halapossibilitdiattivareunafunzionechenoichiamiamo modalitsviluppo.QuandoTrendEnterpriseinmodalit sviluppopermettedicustomizzarelapplicazionestandarddi Trend.Tuttelemodificheeffettuateconlamodalitsviluppo vengonoposizionateinunsottostratodellapplicativoed eseguitearun-time.Inquestomodosihalenormevantaggio dinondovervariareisorgentidellapplicazionepermettendo laggiornamentoallesuccessivereleasediTrendsenzadover reinsierelemodificheeffettuateperlutentefinale. Ognimodificaeffettuatapuessererimossa,inquestocaso, Trendriutilizzerlefunzionistandarddellapplicativo. AttraversoTrendExtensibleFrameworksipossonomodificare leproprietdeglioggettistandarddiTrend(colori,dimensioni, sorgentedatiecc.ecc.).Sipossonocrearenuovioggettinell interfacciasiaespostidalframeworkdiTrendcheoggetti standarddel.NETFrameworke/oditerzeparti. PRISE. ENTOSULLABASEDELLEPROPRIEESIGENZE. SipossonoinoltrecrearedeiPlug-in(conqualsisilinguaggiodel .NETFramework)chemodificanoilcomportamentostandard delleAppdiTrendEnterprise.Iplug-inpossonomodificaresia leregoledicalcolostandard(ades:sesivuolemodificareil metododicalcoloprovvigionalee/oleregolediapplicazionedi ricaricadeiprezziecc.ecc.)cheleregolediinterfacciautente (ades:sivuoleinibirelacancellazionedeiclientiagliutentidel gruppomagazzino,oppuresivuoleabilitarelavisualizzazione dellIBANdellabancadiappoggiodeiclientiaisoliutenti delgruppocontabilitecc.ecc.TrendExtensibleFramework permetteindefinitivadimodificareleapplicazionistandarddi TrendEnterprisepersoddisfareleesigenzedellutentefinale senzadoversipoipreoccuparedellamanutenzionedellestesse conifuturiaggiornamentidirelease. APPLICATION LostratoAPPLICATIONquellochelutilizzatoreconsidera comeilveroepropriosoftware.Inquestolivellositrovanole interfaccegrafiche,chesicolleganoaicomponentidelMODEL, perlesposizionedeirisultatidelleelaborazioni. Due,soprattutto,sonolecaratteristicheimportantidiquesto livello.UnacheleAPPSpossonoesserescritteinunoqualsiasi deilinguaggichesupportanolatecnologia.NET.Questopermette aiprogrammatoridicostruirenuoveapplicazionipergliutenti sfruttandolecompetenzedicui,eventualmente,gidispongono. Nonmenoimportante,comeleggeretepiavanti,ilfattoche siapossibilesviluppareapplicazioniperinfrastrutturediverse enonsoloapplicazionidesktopperWindows,senzaperdere ilsupportodelframeworkdiTrend.LeTrendAPPSStandard sonosviluppateconillinguaggiodimarkupXAML(Extensible ApplicationMarkupLanguage)diMicrosoft,utilizzandoilpattern diprogrammazioneMVVM(ModelView-ViewModel)che permettedisepararelinterfacciadalcodice.IlMODEL,come abbiamovisto,ilmotoreoCOREdellapplicativo,laVIEW linterfaccia,laAPP.IlVIEWMODELilcollegamentotraqueste. MVVMdiventatounpatternindispensabileacausadellacrescita dellacomplessitdelleinterfaccegraficheedellanecessit dellutenzadiutilizzarelostessoprodottosoftwarecondiverse infrastrutture,comeilweb,dispositividesktopeidiversiapparati mobileperlatelefonia.Laseparazionedalcodicepermette, semplicemente,diridisegnarelinterfacciasecondolesigenza infrastrutturale,riutilizzandolostessocodice. 9. //TDAINFORMATICA/ERP/TRENDENTERPRISEINTRODUZIONE TrendReporting TrendReportinglapartedelCorediTrendEnterpriseche sioccupadellagestionedellareportistica.Leclassiemetodi espostidaquestaporzionedellalibreriavengonogeneralmente utilizzatedirettamentedalleTrendApps. TrendReportinghaunViewerdireportWYSIWYG(What YouSeeIsWhatYouGet)integratocheoltreallefunzionidi visualizzazioneclassichecomezoom,adattamentoallapagina, navigazionesullepagine,ricercadeltestocontenutonelreport, hafunzioniavanzatequaliiperlinksulreportstessooreport correlati,graficiekpi. IlViewerdireportditipovettoriale,permettequindi ingrandimentideltestosenzaperditadirisoluzione,oltreadare lapossibilitdiruotareiltestostesso. Altrefunzioniinteressantisonolesportazionenativadeireport neiseguentiformati: -PDF -HTML -MHT -RTF -XLS(Excel) -XLSX(Excelnuovoformato) -CSV -Text -Image(png,bmp,emf,wmf,tiff,jpgecc.ecc.) -XPS PossibilitdiinviareautomaticamenteunaMailallegandoil reportneiformatisopraindicati. SalvataggiodelReportnelformatonativo,perriaprirlo successivamentedalviewerstesso. OltrealviewerTrendReportingintegraunEditordiReportche permettedimodificareireportstandarddiTrendinbasealle esigenzedellutentefinalee/odicrearenuovireportdazero. LeditordiReportsiattivaautomaticamentequandolutente (congliappositiprivilegi)attivalamodalitsviluppo. Questopermettediaccederealreportchesidesideramodificare direttamentedallinterfacciadiTrend(men,toolbarecc.ecc.). AncheleditordireporteditipoWYSIWYG,lutente,quindi, modificailreportconunacomodainterfacciautenteetramiteil Drag&Dropdeglioggettigrafici. IldataBindingdeidativienecontrollatodalmoduloTrend DataAccess;quindilutenteperaggiungeree/omodificarela sorgendedeidatisfruttalenavigationpropertyespostedalle classididominio,inquestomodo,automaticamente,tuttele relazionivengonogestiteautomaticamentedalcorediTrend Enterprise. Logicamente,comegispiegato,TrendDataAccesscolloquia conLExtensibleDatabaseModel,percui,seilprogrammatore haaggiuntotabelle,campie/orelazioniautomaticamente questevengonovistedalleditorstessoconlapossibilit,quindi, diaggiungerlesiasuireportstandarddiTrendEnterpriseche suinuovireport. TrendEnterprisehainoltrelapossibilitdiselezionareglistili dellareportisticapermodificareinunasolaparteicolori,ifont, ledimensioneecc.ecc.dituttiireportdiTrend. Glistiligestisconolagerarchiadiclasse,percui,senonsi modificanolepropriettuttiglioggettidelreportereditano dallostilecorrentementeselezionatoamenochloperatore vogliaimpostareunaproprietdifferente. SonogipresentinelsetupdiTrendEnterprisediversistili standard,loperatorehapoilapossibilitdicrearestili personalizzatie/odimodificarequellistandard. TrendControls TrendControlsuninsiemediControlli(CustumControleUser Control)chevengonoutilizzatidalleAppsdiTrendEnterprise. IlProgrammatorepusceglierediutilizzarequesticontrolli oppurepuancheoptareperlutilizzodicontrollistandardo diterzeparti. IcontrollidiTrendhannovariecaratteristichechepermettono divelocizzarenotevolmentelosviluppodiapplicazionigestionali e/odicustomizzarequellegiaesistenti. UnadelleprincipalicaratteristicheeilBindingavanzato,ogni controlloesponeunaDependencyProperty(TrendControlSource) cheautomaticamentegestisceilBindingconilcontrollostesso. SeadesempiovogliamovisualizzaresuunaGridlelineedi dettagliodellatestatalunicacosachedevefarelosviluppatore equelladivalorizzarenelcontrolloteGridControllapropriet (DependencyProperty)TrendControlSource.Adesempio: QuestaistruzioneinseritanelloXamloselezionatanellafinestra proprietdiVisualStudio: TrendControlSource=Record.np_tab_vl gestisceautomaticamenteilBindingbidirezionaletracciandole modificheetutteleoperazioniCRUDversoildatabaseditutte lelineedelloggettoRecordcheeespostoautomaticamente nelRepositorydallalibreriaTrendDataAccess. UtilizzandoicontrollistandarddelFrameworksievita, quindi,digestiretuttalamolediinformazioniecodice inseritonormalmentenelViewModelqualiadesempiole ObservableCollectionbindingecc.ecc.inquantoeilFramework stessocheeffettuaquestolavoropernoi. LOSTATOMODELOCOREDELLAPPLICAZIONE: ILMOTOREPOTENTEDITRENDENTERPRISE ILLIVELLOCORE,DETTOANCHEMODEL,DELLAPPLICAZIONEE,ATUTTIGLIEFFETTI,ILMOTOREDELLERPTRENDENTE QUESTOMOTOREPUESSEREMODELLATOINBASEALLEESIGENZEDELLUTILIZZATORE,PEROTTIMIZZAREILFUNZIONA ARCHITETTURADITREND 10. 007 TECNOLOGIASCHEMAAPPLICATIVO GUIDA PER TUTTI IlpatternutilizzatolMVVM(ModelViewView-Model)che permettediseparareleinterfaccegrafichedalcodice. TrendDataAccesseffettuaautomaticamenteunascansione avanzatadellobjecttrackingottimizzandolerisorsedella memoriaattraversounindicizzazionedeglistessiperun notevoleaumentoprestazionale. TrendDataAccesslapartedelCorechesioccupadelRecord LockinggestendoautomaticamenteleinformazionisulLockdei recordcomeadesempiolutentechestbloccandoilrecord,il terminaleloraeladatadiblocco. IlRecordLocking,asecondadelleesigenzeedelladimensione aziendale,puessereconfiguratocomeOttimisticoo Pessimistico.IlRecordlockingpessimistico,inognicaso, permetteinfasedilocklaletturadelrecordmanonlamodifica dellostesso. TrendDataAccessecompostodaunulteriorestratochiamato Applicationallinternodelqualesonopresentileclassiedi metodistrettamenteapplicativi.LostratoApplicationasua 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 TrendGenericLibrarylapartedelCorediTrendEnterprise cheesponeclassi,metodiecommandadusotrasversalee generale. Leclassiespostedaquestaporzionedellalibreriavengono utilizzatesiadalleTrendAppschedallealtrepartidel Frameworkstesso. Inquestalibreriasonopresenticlassidiutilizzogeneralecome adesempio: -Aperturaeconnessionealdatabase. -InterrogazionisullostatodiLockdeiRecord. -Esecuzionediquerydinamiche(tipizzateenon tipizzateinbasealloccorrenza). -Visualizzazionediformnelcorrentedesktop selezionato. -Caricamentodiimmaginiegestioneavanzatadei controlli. -Esecuzionedianimazioni. -Conoscerelostatodellutenteloggato(ades:seein DevelopmentMode) -ConoscerelostatodellattualeDBselezionato (Multiazienda) -GestionedelleGlobalperaccessoaidatitramite iperlink. -MetodieClassipersemplificarelusodelpattern MVVM. -Ecosivia. TrendDataAccessLibrary TrendDataAccesslapartedelCorediTrendEnterpriseche esponeclassi,metodiecommandriguardantilaccessoaidati. Leclassiespostedaquestaporzionedellalibreriavengono generalmenteutilizzatedirettamentedalleTrendApps. Inquestalibreriasonopresenticlassichesioccupano esclusivamentedellaccessoalleinformazioniedellarelativa gestione. Fannoparteadesempiodiquestalibreriatuttalagestionedel Repositoryconivaricommand,metodiedeventiespostiper gestireautomaticamenteleoperazioniC.R.U.D.delleinterfacce video. Questapartedellalibreriasioccupaanchedellottimizzazione dellaccessoaidatisfruttandounmotoredioggettiinmemoria fortementeindicizzato,vienegestito,ovenecessarioil parallelismoelutilizzomultiprocessore. PRISE. ENTOSULLABASEDELLEPROPRIEESIGENZE. 11. //TDAINFORMATICA/ERP/TRENDENTERPRISEARCHITETTURADITREND INTRODUZIONE Tutteleoperazioni,generalmentechiamateCRUD(Create ReadUpdateDelete),versoilDatabasevengonogestitedal Frameworkstesso. IlFrameworkgestisce,oltrealleoperazioniCRUD,operazioni diottimizzazioneperrenderelapplicazioneelaccessoai datiilpiprestantepossibile;attraversoilparallelismoe componentiLINQestremamenteindicizzatianchesudatabase digrandissimedimensionisihannoprestazionivicinealtempo reale. ModelloRelazionale->ModelloGerarchico Reticolare TrendEnterpriseutilizzacomemodellodiaccessoaidatiil ModelloGerarchicoReticolare. NelmodelloGerarchicoReticolarelerelazionitraidatifanno partedellastrutturastessadelleclassiesposteneldominio; questosignificachelosviluppatorenondevenecessariamente conoscerecomorganizzatalabasedatiequindiconoscerne lastrutturaperscriverelaclassicaquerySQLconlerelative join;sar,invece,ilFrameworkascriverlaperluievitando erroridiscritturainquantolequeryvengonogeneralmente scritteinmodotipizzatoequalsiasierrore(nomecampoerrato, navigationpropertyerrataecc.)vieneevidenziataapriorigiin fasedicompilazioneenoninfasediesecuzione. FacciamounesempiopercapiremeglioilconcettodiModello GerarchicoReticolare: lineaMovMageloggettodellacorrentelineadelmovimentodi 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_prodelanavigationpropertychecollegalacorrente lineadelmovimentodimagazzinoallanagraficaprodotti,chea suavoltahaunanavigationproperty,np_cat_merc,checollega ilprodottoallarelativacategoriamerceologica. Sarilframeworkcheautomaticamenteinvialacorretta istruzioneSQLaldatabaseconlerelativejoinperestrarrela descrizionedellacategoria. MODELOCORE LostratoMODELoCOREilmotoredellapplicazioneTrend Enterprise.uninsiemedilibreriechesonoutilizzatedallo stratoAPPLICATIONperelaborareidatieesporliallutilizzatore. IlCOREcolloquiaconlostratoORMerestituisceidatiderivati dallelaborazionealleAPPSdiTrendEnterprise. IlCOREasuavoltasuddivisoinseidifferentiareeche interagisconotraloro,echevedremoseparatamente: -ExtensibleDatabaseModel -TrendGenericLibrary -TrendDataAccessLibrary -TrendReporting -TrendControls -TrendExtensibleFramework ExtensibleDatabaseModel ExtensibleDatabaseModelpermettedimodificarelastruttura datidellapplicazioneTrendEnterpriseinmodosempliceed intuitivo. Attraversounappositoeditorsipossonoeditarelestrutture delletabelle,dellerelazioni,deicampiecosivia. Epossibileadesempioaggiungerenuovicampi,modificarela dimensionedeicampigipresenti,aggiungerenuovetabellee nuoverelazioni. Ognimodificaeffettuatanelleditorvienepropagata automaticamentesiaaldatabasechealleclassididominioin modotrasparenteallutente. LeclassididominiorappresentanoilpontetrailCorediTrend EnterpriseedilDatabase. OgniapplicazionediTrendEnterprise(TrendApp)colloquia esclusivamenteconilCore(Model)cheasuavoltaattraversole classididominioricevee/oinviaidatialdatabase. Questoconcettovienegeneralmentechiamatopersistance ignoranceovveroilprogrammatorenondeveconoscerela sintassideldatabase(TrendEnterpriseeinfattidatabase indipendenteeognidatabasehaunpropriodialetto)enon deveneancheconoscereivaritoolsmessiadisposizionedai databasestessipermodificare,adesempio,lestrutturedelle tabelle;losviluppatoredeveesclusivamentedialogareconlo stratoapplicativoespostodalFrameWorkdiTrendEnterprise. LOSTATOMODELOCOREDELLAPPLICAZIONE: ILMOTOREPOTENTEDITRENDENTERPRISE ILLIVELLOCORE,DETTOANCHEMODEL,DELLAPPLICAZIONEE,ATUTTIGLIEFFETTI,ILMOTOREDELLERPTRENDENTE QUESTOMOTOREPUESSEREMODELLATOINBASEALLEESIGENZEDELLUTILIZZATORE,PEROTTIMIZZAREILFUNZIONA 12. 005 LAMBIENTEMICROSOFT.NET: UNAGARANZIAPERILFUTURO LATECNOLOGIACHEMICROSOFTELECOMUNITADISVILUPPATORI,INDICANOCOMERIFERIMENTOPERGLI ANNIAVENIRE. TECNOLOGIASCHEMAAPPLICATIVO GUIDA PER TUTTI RDBMS,RELATIONALDATABASE MANAGEMENTSYSTEM LostratoRDBMSilpisemplicedacomprendere. Comunementechiamatodatabase,identificato,spessoe inmanierasemplicistica,conlArchiviodeiDati.Conle architettureditipo1,2,3-tier,iprogrammatorisonoobbligati asvilupparelelogichedeisoftwareinfunzionedelRDBMS chesarutilizzato.Larchitettura4-tier,alcontrario,permette lindipendenzadellapplicazionedalRDBMS,poichunostrato dicuiparleremoinseguito,lORM,fungedainterpretetrail databaseeillivellodellapplicazionestessa,dettaCOREoppure MODEL.Cimoltoimportante,perchinquestomodoTrend EnterprisediventaRDBMSIndipendentee,leaziendechelo adotteranno,potrannoscegliereildatabaseinfunzionedelle proprieesigenze,oppure,eventualmente,utilizzarequellodi cuigidispongono. Ineffetti,purchilRDBMSsiacompatibileconlespecifichedel mondoADO.NETpotressereutilizzatoconilnostroapplicativo. Sicontanoormaioltrecinquantadatabase,compatibilicon ADO.NET,traiqualisonocompresiSQL,OracleeMYSQL. ORM,OBJECT-RELATIONALMAPPING Abbiamogiaccennatoallafunzionediinterpretedellostrato ORMtraillivelloMODELoCORE,eilRDBMSchedetermina lindipendenzadellapplicazione.NETdalsistemachegestiscei dati.LORMdicuidotatoTrendEnterpriseENTITYFRAMEWORK, uncomponentedi.NETFramework4.5diMicrosoft,cuiabbiamo implementatoTDEF,TrendDynamicsEntityFramework. EF,ENTITYFRAMEWORK,rendedisponibilialMODEL(il motoredellapplicazione)idaticontenutineldatabase,secondo latecnologiaADO.NET.Lacosapiinteressantechei programmatorinondevonoconoscerequaledatabasesar utilizzatodallapplicazione;questoconsentelorodiscrivere moltomenocodiceperlelaborazionedeidatiinquantolaccesso aglistessigestitodallinterprete.LORMconverteleoperazioni richiestedallapplicazioneneicomandispecificidelRDBMS cuiconnesso.statonecessarioimplementarenellORMun sottostratoconfunzionispecifichequali,adesempio,lagestione diarchitetturemultiprocessore,lottimizzatoredellavelocitdi accessoaidatieunagestioneavanzatadelbloccodeirecordper unamiglioreamministrazionedeicasidiconcorrenzasuidati. Ulteriormentesonostateimplementatenumeroselibrerieche permettonolaccessodinamicoaidati. 13. LARCHITETTURADITREND AbbiamodettocheTrendEnterpriseunsoftwareclient-server conarchitetturaditipon-tier,eprecisamente4-tier;stato realizzatoinambiente.NETconillinguaggiodiprogrammazione C#(C-Sharp)diMicrosoft.Loschemasuccessivomostrai quattrostratie,perognunodiessi,icontenutitecnologicie sottostratidicuisicompongono.Comeabbiamoanticipato Viproponiamoduetipidiguidaallacomprensionediquesto schema,unamoltopitecnicadellaltra:sceglietequellache meglioVisiaddice TRENDFRAMEWORK TutteleAppsStandarddiTrendEnterprise,sonostatesviluppate utilizzandoTrendFramework,chepuessereutilizzatodai programmatori(sianoessiicomponentideirepartiCED oppureiprogrammatorideiRivenditoridiTrend)persviluppare nuoveAPPSopercustomizzarequellegiesistenti,colfinedi soddisfareleesigenzedellutentefinale. TrendFrameworksemplificanotevolmentelosviluppodi nuoveapplicazioni;ilprogrammatoresidovrconcentrare esclusivamentesullaAPPSchedeverealizzareenonsu comerealizzarla,inquantoTrendFrameworkgestisce automaticamentetutteleregoledibinding,diverificae controllo(dicosa?),digestionedellegridedirelazionetrale tabelle.Lestesseroutineperlareportisticasonointegratein TrendFrameworke,utilizzandolappositoeditor,possibile modificarelestampeesistentiocrearnedinuove. Iprogrammatori,sfruttandoglieditordellExstensibleDatabase Model,possonoaggiungereemodificareicampi,letabelle elerelazionidelleclassididominioinmodotrasparente; questemodifichesarannoautomaticamenteinviate(achi?) aggiornandoildatabaseeresedisponibiliallostratoApplication. LARCHITETTURA4-TIERDITREND: TRAZIONEINTEGRALE //TDAINFORMATICA/ERP/TRENDENTERPRISEARCHITETTURADITREND INTRODUZIONE ICOMPONENTIPRINCIPALIDELLARCHITETTURADITRENDSONOQUATTRO:APPS,MODEL,ORM,RDBMS; SONOQUESTIGLISTRATI(TIER)DELLAPPLICAZIONE.NET 14. TRENDENTERPRISEEISUOICOLLEGHI Facciamoalcuneconsiderazionichecipermetterannodi distinguereTrendEnterprisedallamaggiorpartedeglialtri softwaregestionali,attualmentereperibilinelmercato:la maggiorpartediquestisonoprogettaticonunaarchitetturadi tipo2-tier,aduelivelli.Solitamente,infatti,unostratocontiene sialeinterfaccesialelogichedielaborazionedeidatieunaltro comprendeidatistessi.Sipuaffermarechequestarchitettura, implicitamente,limitalutilizzodelsoftwareolesuecapacit,ad esempio: 1-Unsoftware2-tiersarunapplicazionedesktopoperilweb operunaltrotipodinfrastruttura,manonentrambe. 2-Ildatabase,checontieneidati,determinalosviluppo dellapplicazione;neconseguechenonpossibilescegliere tradiversidatabase. 3-Iprogrammatori,quandosviluppanounanuovainterfaccia, devonoriscriverlainsiemeallelogicheperlelaborazionedei datiequestenonsarannoriutilizzabili. Questoperchisuddettisoftwaresonostatirealizzati, probabilmente,construmenticherisalgonoagliannipassati echenonavevanoleprerogativecheavrebberopermessoai programmatoridisvilupparediversamente.Inquestocasotutti iproduttoridisoftwaredovrannofareiconticonlapoliticadi Microsoftche,inunperiododicirca3o4anni,nonriproporr lacompatibilitdeinuovisistemioperativiconquestistrumenti. Incasodiversononavrebbenessunalogica,pensandoalfuturo, sceglierequestotipodiarchitettura. 003 TECNOLOGIASCHEMAAPPLICATIVO GUIDA PER TUTTI TRENDENTERPRISEELATECNOLOGIA.NET ILFUTURODEISOFTWAREGESTIONALI LARCHITETTURA4-TIERELATECNOLOGIA.NETFANNODITRENDENTERPRISEUNOSTRUMENTOILCUIFUTURO ALLINEATOALLEINDICAZIONIDIMICROSOFTEDELLECOMUNITDISVILUPPATORI. 15. PREMESSA Questodocumentounintroduzioneo,sevolete,unapiccolaguida, alletecnologieconcuistatopensato,progettatoerealizzato lapplicativogestionaleERPTrendEnterprise.Poichnontutti ilettoridiquestodocumentosonoespertidelleterminologiee dellepimodernetecnichedisvilupposoftware,abbiamopensato discriverloindueforme:unachiaraecomprensibileatutti,una perespertiprogrammatori. Stateperiniziarelaletturaperipiespertiribaltatela brochureperleggerelaltra. LoscopodiquestaguidadimostrarecheTrendEnterprise progettatosecondoleultimetecnologieche,Microsoftele comunitdisviluppatori,indicanocomeriferimentoperglianni avenire. INTRODUZIONE TrendEnterpriseunsoftwareclient-servercheoperain ambiente.NET,realizzatoconunaarchitetturaditipon-tier omulti-tier,unaggettivochepuesserespiegatocome applicazioneaenne-stratiolivelli.Qualisono,dunque,glistrati checostituisconounsoftwaremulti-strato?Teoricamentesono tre(3-tier):PresentazionedeiDati,AccessoedElaborazionedei DatieSistemadiGestionedeiDati.Ilprimolinterfacciautente, ilsecondoilmotoredellapplicazionechetrasformaidati,il terzoilsistemachememorizzaegestisceidati,comunemente chiamatodatabase.Ivantaggidellastratificazionesonodovutial fattoche,perapportaremodifichealleprocedure,sufficiente modificaresoloillivellointeressatoallevariazioni,ilcherende lapplicazionemoltoflessibileelepartidellivellointermedio utilizzabiliperpidiunaprocedura.LarchitetturadiTrend Enterpriseditipo4-tier. //TDAINFORMATICA/ERP/TRENDENTERPRISEARCHITETTURADITREND INTRODUZIONE SOFTWAREERPTRENDENTERPRISE: LOSTRUMENTONELFUTURODELLAZIENDA QUESTODOCUMENTOUNAINTRODUZIONEEUNAPICCOLAGUIDA,ALLETECNOLOGIECONLEQUALISTATO PENSATO,PROGETTATOEREALIZZATOLAPPLICATIVOGESTIONALEERPTRENDENTERPRISE. 16. SOLUZIONIGESTIONALIPERLEAZIENDE ERPTrendEnterprise Tecnologia