77efe986a0379acb3304c10270ed89160de1170f
- Modifica IsDatabaseSpecifiedInConnectionString per verificare prima il campo DatabaseName della credenziale - Aggiunge logging dettagliato per debugging del processo di connessione database - Corregge il flusso di connessione per evitare il modale quando il database è già specificato - Migliora la gestione degli errori nel caricamento tabelle dal database specificato - Rimuove codice non raggiungibile nella logica di connessione database Il bug precedente mostrava sempre il modale di selezione database anche quando il database era specificato nel campo DatabaseName della credenziale, ora la verifica segue la logica corretta: 1. Controlla se DatabaseName è valorizzato nella credenziale 2. Solo se vuoto, verifica i parametri Database=/Initial Catalog= nella connection string
Data-Coupler
Panoramica
Data-Coupler è una soluzione integrata per la gestione di connessioni dati e credenziali, composta da tre progetti principali:
- CredentialManager: Libreria per la gestione sicura delle credenziali
- DataConnection: Libreria per connessioni a database e API REST
- Data_Coupler: Applicazione Blazor Server per l'interfaccia utente
Architettura
CredentialManager
Libreria responsabile per:
- Gestione sicura delle credenziali (Database, REST API)
- Crittografia dei dati sensibili
- Persistenza su database SQLite
- Validazione delle credenziali
DataConnection
Libreria per connessioni dati che include:
- Supporto per database: SQL Server, MySQL, PostgreSQL, Oracle, SQLite, DB2, SAP HANA
- Gestione connessioni REST API
- Integrazione con CredentialManager per l'autenticazione
- Factory pattern per la gestione di diversi provider
Data_Coupler
Applicazione Blazor Server che fornisce:
- Interfaccia web per la gestione delle credenziali
- CRUD completo per credenziali database e REST API
- Test delle connessioni
- Validazione form integrata
Configurazione
1. Database delle Credenziali
L'applicazione utilizza SQLite per memorizzare le credenziali. Il database viene automaticamente creato in:
Data_Coupler/wwwroot/data/credentials.db
2. Registrazione Servizi
Nel Program.cs di Data_Coupler:
// Add CredentialManager services
builder.Services.AddDataConnectionCredentialManagement("Data Source=wwwroot/data/credentials.db");
Utilizzo
Gestione Credenziali via Web Interface
- Avviare l'applicazione Data_Coupler
- Navigare su
/credentials - Utilizzare l'interfaccia per:
- Aggiungere nuove credenziali (Database/REST API)
- Modificare credenziali esistenti
- Testare le connessioni
- Eliminare credenziali
Utilizzo Programmatico
// Iniettare il servizio
@inject IDataConnectionCredentialService CredentialService
// Ottenere opzioni per connessione database
var dbOptions = await CredentialService.GetDbManagerOptionsAsync("MyDatabase");
// Ottenere opzioni per API REST
var apiOptions = await CredentialService.GetRestServiceOptionsAsync("MyApi");
// Gestire credenziali
var credential = new DatabaseCredential
{
Name = "Test",
DatabaseType = DatabaseType.SqlServer,
Host = "localhost",
Port = 1433,
DatabaseName = "TestDB",
Username = "user",
Password = "password"
};
await CredentialService.SaveDatabaseCredentialAsync(credential);
Struttura dei Progetti
Data-Coupler/
├── CredentialManager/ # Gestione credenziali
│ ├── Data/ # DbContext e configurazioni
│ ├── Models/ # Modelli per credenziali
│ └── Services/ # Servizi core
├── DataConnection/ # Connessioni dati
│ ├── CredentialManagement/ # Integrazione con CredentialManager
│ │ ├── Interfaces/ # Interfacce servizi
│ │ ├── Models/ # Extension methods e conversioni
│ │ └── Services/ # Implementazione servizi
│ ├── DB/ # Gestione database
│ └── REST/ # Gestione API REST
└── Data_Coupler/ # Applicazione Blazor
├── Pages/ # Pagine Blazor
│ └── CredentialManagement.razor
├── Shared/ # Componenti condivisi
└── wwwroot/data/ # Database SQLite
Build e Deployment
Prerequisiti
- .NET 9.0 SDK
- Visual Studio 2022 o VS Code
Build
dotnet build Data_Coupler.sln
Esecuzione
dotnet run --project Data_Coupler/Data_Coupler.csproj
L'applicazione sarà disponibile su:
- HTTP: http://localhost:5135
- HTTPS: https://localhost:7132
Caratteristiche di Sicurezza
- Crittografia: Le password vengono crittografate prima del salvataggio
- Validazione: Validazione completa dei dati in input
- Isolamento: Ogni progetto ha responsabilità specifiche
- Type Safety: Uso di tipi forti per evitare errori
Testing
L'applicazione include funzionalità di test per:
- Connessioni database
- Chiamate API REST
- Validazione credenziali
Il testing può essere eseguito direttamente dall'interfaccia web.
Log e Monitoring
I servizi utilizzano ILogger per tracciare:
- Operazioni CRUD sulle credenziali
- Test di connessione
- Errori e eccezioni
Contributi
Per contribuire al progetto:
- Fork del repository
- Creare un branch per la feature
- Implementare i cambiamenti
- Testare thoroughly
- Creare una Pull Request
Licenza
[Specificare la licenza del progetto]
Description
Languages
C#
70%
HTML
28.1%
PowerShell
1.1%
CSS
0.3%
Shell
0.3%
Other
0.2%