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
Connessione e metadati
- 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
net462con 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/OutArgumenttipizzati conReferenceTargetper 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, costantiFields, 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,
ServiceClientgià in DI e configurazione pronta. La connessione a Dataverse si sceglie in fase di creazione: managed identity (nessun segreto, token viaDefaultAzureCredential) 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 utilityDataverseService(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.jsonversionabile, 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 (
dotnetnel PATH) esn.exeper 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.