Metodologia e architettura CGN
// Framework, piattaforme, strumenti

SVILUPPIAMO SOFTWARE
SEMPRE CON TECNOLOGIE
ALL'AVANGUARDIA

.Net e C#

Per lo sviluppo cross platform, con prossimo target puntato a .Net 6

Docker e Openshift

Per creare e orchestrare container scalabili supportati dalla piattaforma offerta da Red Hat

React
e Redux

Per sviluppare Single-Page application modulari puntando sulle prestazioni

NServiceBus, Azure ServiceBus e RabbitMQ

Per implementare un'architettura Event Driven e la comunicazione asincrona tra applicazioni

01
RavenDB
e MS SQL Server

Costituiscono il 99% delle nostre base dati

02
Node.js
e npm

Il principale supporto per lo sviluppo frontend in locale

03
NHibernate e Entity Framework

I framework ORM utilizzati per gestire la persistenza

// La qualità si costruisce dalle fondamenta

LE NOSTRE SCELTE
ARCHITETTURALI E TECNOLOGICHE

È uno dei pilastri su cui si basa la piattaforma tecnologica CGN, attraverso il quale viene costruita la comunicazione tra applicazioni e servizi dell’ecosistema, in modo disaccoppiato. Attraverso gli eventi, le applicazioni interagiscono tra loro all'interno di flussi di lavoro automatizzati. NServiceBus, Azure Service Bus e RabbitMQ sono alcune delle tecnologie che utilizziamo, unitamente ad appositi sistemi di monitoraggio dei workflow in esecuzione.

Il pattern architetturale CQRS ci consente di massimizzare le prestazioni, mantenendo distinti ed espressivi i due modelli di dominio su cui poggiano le applicazioni. L’adozione del paradigma DDD ci porta ad identificare e modellare correttamente i bounded context, creando e condividendo con analisti ed esperti di dominio un ubiquitous language che si rivela particolarmente utile data la complessità e la specificità del dominio fiscale e contabile.

Tutte le nostre applicazioni offrono un frontend agli utenti realizzato come Single Page Application e basato su ReactJs. La progettazione della UI è coerente con il UX Design System aziendale, che offre ai team di sviluppo una suite di componenti e pattern riusabili. Sfruttiamo l’architettura a micro-frontends per scomporre un’applicazione complessa, anche dal punto di vista dell’interazione utente, in componenti più semplici riutilizzabili e distribuibili indipendentemente uno dall’altro.