B-Arts DocumentationIndice generale

ECOSYSTEM

Scopo

Il presente documento descrive la struttura generale dell'ecosistema B-Arts.

Ha lo scopo di fornire una mappa dei principali componenti, dei relativi livelli architetturali e delle relazioni esistenti tra framework, strumenti, modelli di progetto e componenti appartenenti alle precedenti generazioni dell'ecosistema.


B-Arts

B-Arts è un ecosistema software costituito da framework, librerie, strumenti di sviluppo, modelli di progetto e strutture dati progettati per condividere convenzioni, logiche e principi architetturali comuni.

Il prefisso B identifica i componenti appartenenti all'ecosistema B-Arts ed è utilizzato nei namespace, nelle classi, nei pacchetti, nei modelli di progetto e negli strumenti.


Architettura corrente

L'architettura corrente è organizzata su livelli.

Le dipendenze procedono dai livelli superiori verso quelli inferiori.

Livello 0

BFramework

Rappresenta la base comune dell'intero ecosistema.

Contiene le funzionalità generali riutilizzabili dai componenti di livello superiore ed è indipendente dalla tecnologia utilizzata per l'interfaccia utente.

Livello 1

Framework specializzati:

  • BFrameworkControls

  • BFrameworkWebControls

  • BFrameworkMAUI

I framework di Livello 1 dipendono da BFramework e forniscono funzionalità e controlli specifici per il relativo ambiente applicativo.

Strumenti

BStudio 2026

BStudio è lo strumento di sviluppo e automazione dell'ecosistema.

Utilizza BFramework e supporta la generazione e manutenzione delle parti ripetitive delle applicazioni, tra cui Stored Procedure, classi, pagine, controlli e altri artefatti applicativi.

L'installazione di BStudio rende inoltre disponibili i modelli di progetto ufficiali dell'ecosistema.


Modelli di progetto

I modelli di progetto forniscono strutture applicative preconfigurate e coerenti con l'architettura B-Arts.

I modelli previsti dall'ecosistema sono:

  • BBaseLibraryModel

  • BAppConsoleModel

  • BWebApiModel

  • BWorkerServiceModel

  • BBlazorWebAppModel

  • BWinFormModel

  • BMAUIAppModel

La guida operativa dei modelli disponibili parte da MODELS.md. I modelli MAUI restano fuori dalla documentazione operativa finché non saranno disponibili nell'architettura corrente.


DBTemplateModel

DBTemplateModel rappresenta la struttura dati comune utilizzata come base dai template applicativi gestionali.

Contiene le strutture necessarie alla gestione delle funzionalità comuni delle applicazioni, tra cui utenti, profili, sistemi, ruoli e altre informazioni infrastrutturali.

I template applicativi possono utilizzare una libreria derivata da BBaseLibraryModel che effettua il mapping delle strutture presenti in DBTemplateModel.


Distribuzione

I framework principali dell'ecosistema vengono distribuiti mediante pacchetti NuGet.

I pacchetti di livello superiore includono le dipendenze necessarie verso i componenti di livello inferiore.

In particolare, i framework specializzati dipendono da BFramework.


Generazioni precedenti

L'ecosistema B-Arts deriva da precedenti generazioni di framework e strumenti .NET che continuano a essere rilevanti per applicazioni sviluppate con tecnologie precedenti.

Prima generazione .NET

Componenti principali:

  • BArtsFramework

  • BStudio 2017

BArtsFramework riuniva in un unico framework le funzionalità di base, i controlli Windows Forms e i controlli ASP.NET.

Il relativo assembly e pacchetto sono denominati B-ArtsFramework. Il pacchetto NuGet è unlisted e deprecato; la documentazione tecnica della prima generazione è inclusa nella sezione LEGACY.md.

Questa prima generazione monolitica non coincide completamente con la successiva separazione tra BArtsFrameworkStandard e BArtsFrameworkNet: il confronto dei sorgenti rileva tipi esclusivi e differenze nei membri pubblici.

Lo sviluppo applicativo e la generazione del codice tramite BStudio erano principalmente basati su Visual Basic.

Seconda generazione .NET

Componenti principali:

  • BArtsFrameworkStandard

  • BArtsFrameworkNet

  • BStudio 2019

  • BStudio 2022

  • TemplateBaseLibrary

BArtsFrameworkStandard conteneva le funzionalità di base condivisibili mediante .NET Standard 2.0.

BArtsFrameworkNet dipendeva da BArtsFrameworkStandard e conteneva i componenti specifici per ASP.NET e Windows Forms.

I pacchetti NuGet di BArtsFrameworkStandard e BArtsFrameworkNet risultano deprecati e sono pertanto classificati come Legacy. La relativa documentazione tecnica parte da LEGACY.md.

I successori diretti sono BStandardFramework e BNetFramework. La differenza principale riguarda il passaggio da System.Data.SqlClient a Microsoft.Data.SqlClient, ma il confronto dei sorgenti evidenzia anche differenze in alcuni tipi, namespace e membri pubblici.

Terza generazione .NET

Componenti principali:

  • BStandardFramework

  • BNetFramework

  • BStudio 2022

  • TemplateWebBaseLibrary

BStandardFramework, basato su .NET Standard 2.0, rappresentava il livello trasversale e condivisibile dell'architettura. Era pensato per realizzare class library riutilizzabili da applicazioni MAUI, Windows Forms, BNetFramework e altri tipi di progetto compatibili.

BNetFramework dipendeva da BStandardFramework e conteneva i componenti ASP.NET e Windows Forms.

Questa generazione ha introdotto, tra le altre evoluzioni, l'utilizzo di Microsoft.Data.SqlClient al posto di System.Data.SqlClient.

BStudio 2022 include inoltre le prime funzionalità orientate alla generazione di classi compatibili con il nuovo BFramework.

La documentazione tecnica completa di BNetFramework e BStandardFramework parte da CLASSIC.md.

In questa documentazione il termine Classic serve esclusivamente a distinguere tale linea dalla piattaforma moderna .NET 10. Le tecnologie classiche possono ancora essere appropriate per nuovi sviluppi o per l'evoluzione di applicazioni esistenti quando il target e l'architettura del progetto lo richiedono.


Modelli delle generazioni precedenti

Tra i modelli di progetto appartenenti alle precedenti generazioni dell'ecosistema sono presenti:

  • BWebAppTemplateStandardCs

  • BBaseLibraryTemplate

  • BWebApiTemplate

  • BMAUIAppTemplate


Continuità architetturale

Le diverse generazioni dell'ecosistema condividono gli stessi principi fondamentali:

  • Centralizzare le funzionalità comuni.

  • Evitare la duplicazione del codice.

  • Mantenere coerenza tra applicazioni differenti.

  • Automatizzare le attività ripetitive.

  • Mantenere leggibile e modificabile il codice generato.

  • Consentire allo sviluppatore di mantenere il controllo dell'applicazione.

L'architettura corrente rappresenta l'evoluzione di questi principi e non una loro sostituzione.