TP_SEI_Project/root/ContrattoSEI/arm_GestoreTrimestrale.md
2025-04-15 12:10:19 +02:00

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