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

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

  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