3.4 KiB
3.4 KiB
GestoreTrimestrale - Architettura e Evoluzione
Versioni del Sistema
1. Versione Originale (GestoreTrimestrale)
Caratteristiche Tecniche
- Framework: .NET 4.5
- Pattern: WPF tradizionale con code-behind
- Struttura: Monolitica
- File principale: MainWindow.xaml.cs (~32KB)
Componenti Principali
- Controls (2 controlli base)
- Gestione configurazione tramite configModel.cs
- Logica business integrata nel code-behind
- Sistema di logging con NLog
2. Versione MVVM (GestoreTrimestrale_branch_applyingMVVM)
Miglioramenti Tecnici
- Aggiornamento a .NET Framework 4.8
- Implementazione pattern MVVM completo
- Architettura modulare e scalabile
Nuova Struttura
- Models/
- ConfigurationModel.cs
- Logica di business separata
- ViewModels/
- Logica di presentazione
- Binding dati
- Views/Controls/ (33 controlli specializzati)
- Commands/ per pattern Command
- Converters/ per trasformazione dati
Componenti Aggiuntivi
- UserStatusWindow per gestione stato utente
- WorkflowWindow per flussi di lavoro
- Sistema di template XML potenziato
GestoreTrimestrale.Logic
Componenti Principali
1. FtpManagerProcess
- Gestisce il trasferimento FTP dei file
- Utilizza BackgroundWorker per operazioni asincrone
- Gestisce parametri di ambiente e configurazione TNG
2. PdfManagerProcess
- Gestisce la generazione parallela di PDF
- Supporta processi concorrenti multipli
- Controlla il numero di processi PDF attivi
- Gestisce lo stato di elaborazione attraverso ManagerProcessStatusEnum
3. ZipManagerProcess
- Gestisce la compressione dei file
- Utilizza SmartZip.Logic per le operazioni di compressione
- Supporta:
- Elaborazione iterativa
- Configurazione intervalli di esecuzione
- Logging degli errori
- Gestione di pacchetti ZIP personalizzati
- Supporto per approvazioni e scenari diversi
Caratteristiche Chiave
-
Separazione della Logica
- Layer separato per la logica di business
- Indipendente dall'interfaccia utente
- Riutilizzabile in diversi contesti
-
Gestione Asincrona
- Uso di BackgroundWorker e Thread
- Supporto per operazioni parallele
- Monitoraggio dello stato dei processi
-
Configurabilità
- Supporto per configurazioni XML
- Parametri personalizzabili
- Gestione di scenari diversi
-
Integrazione
- Progetto condiviso tra GestoreTrimestrale e GestoreTrimestrale_branch_applyingMVVM
- Referenziato come progetto separato in entrambe le versioni
- Garantisce consistenza della logica di business tra le implementazioni
- Permette la migrazione graduale mantenendo le funzionalità core
Confronto Architetturale
Vantaggi Versione MVVM
-
Manutenibilità
- Separazione chiara delle responsabilità
- Codice più organizzato e modulare
- Facilità di modifica e aggiornamento
-
Testabilità
- Componenti isolati e testabili
- Suite di test automatizzati
- Migliore qualità del codice
-
Scalabilità
- Facilità di aggiungere nuove funzionalità
- Struttura più flessibile
- Migliore gestione della complessità
Considerazioni di Migrazione
- Refactoring completo dell'architettura
- Mantenimento delle funzionalità esistenti
- Miglioramento dell'esperienza utente
- Aggiornamento tecnologico significativo
Integrazione nel Sistema
- Parte del sistema ContrattoSEI
- Gestione report trimestrali
- Elaborazione dati finanziari
- Generazione documentazione automatizzata