Struttura soluzione
Ogni nuovo progetto rispetta una struttura comune ed eredita le nostre due librerie Contratti e Dominio per le funzionalità di base.
Contratti
Questa libreria contiene la definizione dei messaggi ad oggi gestiti dal nostro gestore delle code e richiamati da più di uno dei nostri progetti.
Dominio
Il dominio contiene le funzionalità di base che ogni nostro progetto può utilizzare. Abbiamo raggruppato le funzionalità in 5 gruppi:
- Funzioni: metodi applicativi.
- Infrastruttura: metodi e modelli di base per api, cartelle, code, database, documenti, memoria e variabili ambientali.
- Inizializzazione: estensione di metodi di inizializzazione dei progetti.
- Logica: metodi e modelli logici, ricorrenti nei nostri progetti. Al momento riguardano la gestione delle segnalazioni, dei parametri, dei risultati, delle elaborazioni, degli eventi e dell’oggetto Sistema.
- Primitivi: modelli di base da cui derivano i diversi oggetti presenti nei nostri progetti.
Progetti
Ogni progetto rispetta una comune struttura logica e di conseguenza fisica dei file. La divisione fondamentale è tra la parte di Applicazione e quella di Infrastruttura.
Nella parte di Applicazione, vengono definiti:
- i modelli utilizzati nel progetto
- gli eventuali contratti interni, cioè i messaggi richiamati solamente all’interno del progetto
- la definizione delle operazioni eseguite dagli applicativi presenti nel progetto, richiamando la parte di Infrastruttura per l’accesso ai dati. Gli applicativi ad oggi sviluppati sono worker e api.
Nella parte di Infrastruttura, vengono definiti:
- i DTO e la loro mappatura nei rispettivo modello
- i metodi di accesso ai dati per ogni modello.