Condividi tramite


La piattaforma del compilatore .NET SDK

I compilatori compilano un modello dettagliato di codice dell'applicazione durante la convalida della sintassi e della semantica del codice. Questo modello viene usato per compilare l'output eseguibile dal codice sorgente. .NET Compiler Platform SDK fornisce l'accesso a questo modello. Sempre più spesso ci si basa su funzionalità dell'ambiente di sviluppo integrato (IDE), ad esempio IntelliSense, refactoring, ridenominazione intelligente, "Trova tutti i riferimenti" e "Vai alla definizione" per aumentare la produttività. Ci affidiamo agli strumenti di analisi del codice per migliorare la qualità del codice e i generatori di codice per facilitare la costruzione di applicazioni. Man mano che questi strumenti diventano più intelligenti, hanno bisogno di accedere a un modello sempre maggiore che solo i compilatori creano durante l'elaborazione del codice dell'applicazione. Questa è la missione principale delle API di Roslyn: aprire le scatole opache e consentire agli strumenti e agli utenti finali di condividere la ricchezza di informazioni che i compilatori hanno sul nostro codice. Invece di essere traduttori opachi di codice sorgente e object-code-out, tramite Roslyn, i compilatori diventano piattaforme: API che è possibile usare per le attività correlate al codice negli strumenti e nelle applicazioni.

Concetti di .NET Compiler Platform SDK

.NET Compiler Platform SDK riduce notevolmente la barriera all'ingresso per la creazione di strumenti e applicazioni incentrati sul codice. Crea molte opportunità per l'innovazione in aree come meta-programmazione, generazione e trasformazione del codice, uso interattivo dei linguaggi C# e Visual Basic e incorporamento di C# e Visual Basic in linguaggi specifici del dominio.

.NET Compiler Platform SDK consente di compilare analizzatori e correzioni del codice che individuano e correggeno gli errori di codifica. Gli analizzatori comprendono la sintassi (struttura del codice) e la semantica per rilevare le procedure da correggere. Le correzioni del codice forniscono una o più correzioni suggerite per risolvere gli errori di codifica rilevati dagli analizzatori o dalla diagnostica del compilatore. In genere, un analizzatore e le correzioni del codice associate vengono incluse in un unico progetto.

Gli analizzatori e le correzioni del codice usano l'analisi statica per comprendere il codice. Non eseguono il codice o offrono altri vantaggi per i test. Tuttavia, possono sottolineare le procedure che spesso portano a bug, codice non gestibile o violazione delle linee guida standard.

Oltre agli analizzatori e alle correzioni del codice, .NET Compiler Platform SDK consente anche di compilare refactoring del codice. Fornisce anche un singolo set di API che consentono di esaminare e comprendere una codebase C# o Visual Basic. Poiché è possibile usare questa singola codebase, è possibile scrivere analizzatori e correzioni del codice più facilmente sfruttando le API di analisi sintattica e semantica fornite da .NET Compiler Platform SDK. Liberati dalla grande attività di replica dell'analisi eseguita dal compilatore, è possibile concentrarsi sull'attività più mirata di ricerca e correzione di errori di codifica comuni per il progetto o la libreria.

Un vantaggio più piccolo è che gli analizzatori e le correzioni del codice sono più piccoli e usano molto meno memoria quando vengono caricati in Visual Studio di quanto si farebbe se si scrivesse una codebase personalizzata per comprendere il codice in un progetto. Sfruttando le stesse classi usate dal compilatore e Da Visual Studio, è possibile creare strumenti di analisi statici personalizzati. Ciò significa che il team può usare analizzatori e correzioni del codice senza un notevole impatto sulle prestazioni dell'IDE.

Esistono tre scenari principali per la scrittura di analizzatori e correzioni del codice:

  1. Applicare gli standard di codifica del team
  2. Fornire indicazioni con i pacchetti di libreria
  3. Fornire indicazioni generali

Applicare gli standard di codifica del team

Molti team hanno standard di codifica applicati tramite revisioni del codice con altri membri del team. Gli analizzatori e le correzioni del codice possono rendere questo processo molto più efficiente. Le revisioni del codice vengono eseguite quando uno sviluppatore condivide il proprio lavoro con altri utenti del team. Lo sviluppatore avrà investito tutto il tempo necessario per completare una nuova funzionalità prima di ricevere commenti. Le settimane possono andare avanti mentre lo sviluppatore rafforza le abitudini che non corrispondono alle procedure del team.

Gli analizzatori vengono eseguiti mentre lo sviluppatore scrive codice. Lo sviluppatore riceve un feedback immediato che incoraggia subito a seguire le indicazioni. Lo sviluppatore compila abitudini per scrivere codice conforme non appena inizia la creazione di prototipi. Quando la funzionalità è pronta per la revisione degli esseri umani, sono state applicate tutte le linee guida standard.

I team possono creare analizzatori e correzioni di codice che cercano le prassi più comuni che violano le prassi di codifica del team. Questi possono essere installati nel computer di ogni sviluppatore per applicare gli standard.

Suggerimento

Prima di creare un analizzatore personalizzato, controlla quelli integrati. Per altre informazioni, vedere Regole in stile codice.

Fornire indicazioni con i pacchetti di libreria

Sono disponibili numerose librerie per gli sviluppatori .NET in NuGet. Alcuni di questi provengono da Microsoft, alcuni da società di terze parti e altri da membri e volontari della community. Queste librerie ottengono più adozione e revisioni più elevate quando gli sviluppatori possono avere successo con tali librerie.

Oltre a fornire la documentazione, è possibile fornire analizzatori e correzioni del codice che individuano e correggeno gli usi comuni della libreria. Queste correzioni immediate consentiranno agli sviluppatori di avere successo più rapidamente.

È possibile creare pacchetti di analizzatori e correzioni del codice con la libreria in NuGet. In questo scenario, ogni sviluppatore che installa il pacchetto NuGet installerà anche il pacchetto analizzatore. Tutti gli sviluppatori che usano la libreria riceveranno immediatamente indicazioni dal team sotto forma di feedback immediato sugli errori e le correzioni suggerite.

Fornire indicazioni generali

La community di sviluppatori .NET ha scoperto, tramite esperienza, modelli che funzionano bene e modelli che sono meglio evitati. Diversi membri della community hanno creato analizzatori che applicano questi modelli consigliati. Man mano che scopriamo di più, c'è sempre spazio per nuove idee.

Questi analizzatori possono essere caricati in Visual Studio Marketplace e scaricati dagli sviluppatori tramite Visual Studio. I nuovi arrivati al linguaggio e la piattaforma imparano rapidamente le procedure accettate e diventano produttivi in precedenza nel percorso .NET. Man mano che questi diventano più diffusi, la community adotta queste procedure.

Generatori di origine

I generatori di origine mirano ad abilitare la metaprogrammazione in fase di compilazione, ovvero il codice che può essere creato in fase di compilazione e aggiunto alla compilazione. I generatori di origine sono in grado di leggere il contenuto della compilazione prima dell'esecuzione, nonché di accedere a eventuali file aggiuntivi. Questa funzionalità consente loro di analizzare sia il codice C# dell'utente che i file specifici del generatore. È possibile imparare a creare generatori di origine incrementali usando il cookbook del generatore di origine.

Passaggi successivi

.NET Compiler Platform SDK include i modelli a oggetti del linguaggio più recenti per la generazione, l'analisi e il refactoring del codice. Questa sezione offre una panoramica concettuale di .NET Compiler Platform SDK. Altri dettagli sono disponibili nelle sezioni guide introduttive, esempi ed esercitazioni.

Per altre informazioni sui concetti di .NET Compiler Platform SDK, vedere questi cinque argomenti:

Per iniziare, è necessario installare .NET Compiler Platform SDK:

Istruzioni di installazione - Programma di installazione di Visual Studio

Esistono due modi diversi per trovare .NET Compiler Platform SDK nel programma di installazione di Visual Studio:

Eseguire l'installazione con il programma di installazione di Visual Studio - Visualizzazione Carichi di lavoro

Il .NET Compiler Platform SDK non viene selezionato automaticamente come parte del carico di lavoro per lo sviluppo di estensioni di Visual Studio. È necessario selezionarlo come componente facoltativo.

  1. Eseguire il programma di installazione di Visual Studio
  2. Selezionare Modifica
  3. Controllare il carico di lavoro sviluppo delle estensioni di Visual Studio .
  4. Aprire il nodo di sviluppo dell'estensione di Visual Studio nell'albero di riepilogo.
  5. Selezionare la casella .NET Compiler Platform SDK. Lo troverai per ultimo sotto i componenti facoltativi.

Facoltativamente, è anche necessario che l'editor DGML visualizzi i grafici nel visualizzatore:

  1. Aprire il nodo Singoli componenti nell'albero di riepilogo.
  2. Selezionare la casella per l'editor DGML

Eseguire l'installazione usando la scheda Programma di installazione di Visual Studio - Singoli componenti

  1. Eseguire il programma di installazione di Visual Studio
  2. Selezionare Modifica
  3. Selezionare la scheda Singoli componenti
  4. Selezionare la casella .NET Compiler Platform SDK. È disponibile nella parte superiore della sezione Compilatori, strumenti di compilazione e runtime .

Facoltativamente, è anche necessario che l'editor DGML visualizzi i grafici nel visualizzatore:

  1. Selezionare la casella per l'editor DGML. È disponibile nella sezione Strumenti di codice .