Con la versione 9.4, Aspire introduce gli Interaction service, una servizio per consentire la creazione, e l'utilizzo, di interfacce utente all'interno della dashboard, che verranno eseguite anche nel caso di utilizzo tramite Aspire CLI.
Lo scopo principale è inserire un livello di comunicazione tra applicazione e sviluppatore, che permetta la gestione di scenari complessi, richiedendo parametri o conferme. Le modifiche possono operare su tutto il ciclo di vita della risorsa: dall'esecuzione dell'applicazione fino al rilascio o la pubblicazione.
public class DeploymentService
{
private readonly IInteractionService _interactionService;
// recupro servizio tramite dependency injection
public DeploymentService(IInteractionService interactionService)
{
_interactionService = interactionService;
}
public async Task DeployAsync()
{
// Creazione prompt di conferma
var confirmResult = await _interactionService.PromptConfirmationAsync(
"Conferma rilascio",
"Sei sicuro di voler procedere?");
if (confirmResult.Canceled || !confirmResult.Data)
{
return;
}
// input di testo
var regionInput = new InteractionInput
{
Label = "Regione", InputType = InputType.Text, Required = true
};
// input numerico
var instanceCountInput = new InteractionInput
{
Label = "Numero di istanze", InputType = InputType.Number, Required = true
};
// checkbox
var enableMonitoringInput = new InteractionInput
{
Label = "Abilita monitoraggio", InputType = InputType.Boolean
};
// Creazione prompt di raccolta dati
var multiInputResult = await _interactionService.PromptInputsAsync(
"Configurazione avanzata",
"Configura le impostazioni di distribuzione:",
[regionInput, instanceCountInput, enableMonitoringInput],
new InputsDialogInteractionOptions
{
ValidationCallback = async context =>
{
if (string.IsNullOrEmpty(regionInput.Value))
{
// aggiunta dell' errore di validazione
context.AddValidationError(regionInput, "Inserire una regione");
}
}
});
if (multiInputResult.Canceled)
{
return;
}
// [continuazione del deployment con i parametri raccolti]
}
}Il sistema di input supporta diverse tipologie di dati, offrendo così grande flessibilità nella progettazione delle interazioni e interfacce: testo libero, password, numeri, menu a discesa, spunte. È possibile definire callback di validazione personalizzate, Markdown per descrizioni, configurazione pulsanti e stili dell'interfaccia.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare espressioni riutilizzabili nelle query LINQ per Entity Framework
Mischiare codice server side e client side in una query LINQ con Entity Framework
Ospitare n8n su Azure App Service
Utilizzare ExecuteUpdate per aggiornare colonne JSON in Entity Framework
Configurare OpenAI in .NET Aspire
Gestire progetti .NET + React in .NET Aspire
Utilizzare il top layer in HTML
Utilizzare @property per animare nativamente un oggetto HTML tramite CSS
Utilizzare le direttive più importanti in una file based app .NET
Integrazione di Copilot in .NET Aspire
Utilizzare Containers in .NET Aspire
GitHub Copilot CLI in ambienti offline


