134 lines
3.4 KiB
Markdown
134 lines
3.4 KiB
Markdown
# 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
|
|
|
|
1. **Separazione della Logica**
|
|
|
|
- Layer separato per la logica di business
|
|
- Indipendente dall'interfaccia utente
|
|
- Riutilizzabile in diversi contesti
|
|
|
|
2. **Gestione Asincrona**
|
|
|
|
- Uso di BackgroundWorker e Thread
|
|
- Supporto per operazioni parallele
|
|
- Monitoraggio dello stato dei processi
|
|
|
|
3. **Configurabilità**
|
|
|
|
- Supporto per configurazioni XML
|
|
- Parametri personalizzabili
|
|
- Gestione di scenari diversi
|
|
|
|
4. **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
|
|
|
|
1. **Manutenibilità**
|
|
- Separazione chiara delle responsabilità
|
|
- Codice più organizzato e modulare
|
|
- Facilità di modifica e aggiornamento
|
|
|
|
2. **Testabilità**
|
|
- Componenti isolati e testabili
|
|
- Suite di test automatizzati
|
|
- Migliore qualità del codice
|
|
|
|
3. **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
|