Dataverse Helper
Estensione VS Code per lo sviluppo su Microsoft Dataverse / Dynamics 365: esplora i metadati,
genera il codice, registra plugin e step, pubblica web resource e flussi — senza uscire dall'editor
e senza CLI esterne (niente pac, niente spkl, niente Plugin Registration Tool).
Interfaccia in italiano.
Cosa puoi fare
- Login interattivo nel browser (Authorization Code + PKCE): MFA e conditional access gestiti
nativamente, token conservato cifrato in VS Code e riusato alle sessioni successive.
- Browser dei metadati nella activity bar: ambiente → entità → campi, con cache locale,
ricerca per nome o logical name, filtro per solution e toggle delle tabelle di sistema.
- Selezione a checkbox di entità e campi, persistita per ambiente: è l'input di tutti i generatori.
- Metadata Explorer: chiavi alternate, relazioni 1:N / N:1 / N:N, privilegi e attributi di un'entità.
Progetti C# (plugin e custom workflow activity)
- Scaffolding di progetti tipizzati
net462 con classi base, error handling, tracing,
strong-name key e manifest di registrazione.
- Solution Visual Studio (
.sln) multi-progetto: ogni progetto è un assembly separato.
- Wizard plugin: entità, messaggio, stage, mode, filtering attributes, pre/post-image con i campi.
- Wizard custom workflow activity: parametri
InArgument/OutArgument tipizzati con
ReferenceTarget per i lookup.
- Editor grafico di plugin, step e immagini: dropdown vincolati, checkbox sui campi reali
dell'entità, validazione dei vincoli Dataverse. Nessun JSON da scrivere a mano.
- Build & Deploy via Web API: build Debug o Release, diff di cosa verrà creato o aggiornato,
conferma, poi registrazione idempotente di assembly, tipi, step e immagini.
- Deregistrazione di assembly esistenti, con step e immagini in cascata.
- Solution Dataverse unmanaged: scegli o crea solution e publisher; i componenti registrati
ci vengono aggiunti automaticamente a ogni deploy.
Generazione di codice
- Datamodel early-bound dalle entità selezionate: classi
partial : Entity, costanti Fields,
enum per gli OptionSet (inclusi i MultiSelect) e target dei lookup.
- Typings TypeScript in formato Web API (
_lookup_value, FormattedValue) con enum e costanti.
- Unit test xUnit con harness mock leggero (nessuna dipendenza esterna) e coverage via coverlet:
un test per ogni step registrato nel manifest.
Azure Function e webhook
- Scaffold Azure Function .NET 8 isolated con trigger HTTP, Service Bus o Timer,
ServiceClient
già in DI e configurazione pronta. La connessione a Dataverse si sceglie in fase di creazione:
managed identity (nessun segreto, token via DefaultAzureCredential) oppure connection string
con client secret.
- Registrazione webhook as-code:
serviceendpoint + step che lo invoca, creati via Web API e
aggiunti alla solution attiva.
Web resource
- Scaffold di due tipi: SPA (React + Vite + TypeScript, host HTML con
ClientGlobalContext)
oppure Script singolo per gli handler di form. Entrambi con una utility DataverseService
(fetch con retry, cache, CRUD, FetchXML, metadati) come punto di partenza.
- Build & Deploy con publish automatico e aggiunta alla solution.
- Confronto locale ↔ server con smart-match per nome.
- Browser delle web resource dell'ambiente: alberatura con ricerca e filtro per solution;
scarica, modifica e ricarica anche risorse non create da te.
Power Automate
- Esporta un flusso in un file
.flow.json versionabile, modificalo e rideployalo;
attiva, disattiva ed elimina i flussi dall'editor.
Analytics
- Log unificati di plugin, custom workflow activity ed esecuzioni workflow, con ricerca,
filtri per campo (tipo, messaggio, entità, correlation id, durata minima), intervallo temporale,
toggle "solo eccezioni" e dettaglio completo di exception, stack trace e blocco di tracing.
Requisiti
- VS Code 1.85 o superiore.
- Utente Dataverse con privilegi di personalizzazione (per registrare plugin e componenti).
- Per la parte C#: .NET SDK (
dotnet nel PATH) e sn.exe per la strong-name key
(l'assembly da registrare in Dataverse deve essere firmato).
Per iniziare
- Apri la vista Dataverse nella activity bar e usa Connetti ad ambiente: inserisci l'URL
(es.
https://contoso.crm.dynamics.com) e completa il login nel browser.
- Naviga le entità e spunta quelle e i campi che ti servono.
- Dalla vista Azioni: crea il progetto, genera plugin o datamodel, configura la solution Dataverse
e lancia Build & Deploy.
Tutti i comandi sono raggiungibili anche dalla Command Palette con il prefisso Dataverse:.
Impostazioni
| Impostazione |
Default |
Descrizione |
dataverseHelper.clientId |
public client di Power Platform CLI |
Application (client) ID per il login |
dataverseHelper.tenant |
organizations |
organizations, common, oppure GUID o dominio del tenant |
dataverseHelper.apiVersion |
9.2 |
Versione della Dataverse Web API |
dataverseHelper.analyticsTop |
300 |
Numero massimo di righe caricate in Analytics |
Note sul deploy degli assembly
L'identità di un plugin assembly in Dataverse è nome + public key token, non la versione:
ridistribuendo con lo stesso nome e la stessa .snk l'aggiornamento è in-place e gli step registrati
restano agganciati. Non cambiare la chiave né il nome dell'assembly tra le versioni.
Licenza
MIT.
| |