Condividi tramite


Sviluppare con Visual F# in Visual Studio

Questo articolo include informazioni sulle funzionalità di Visual Studio per lo sviluppo F#.

Installare il supporto di F#

Per sviluppare con F# in Visual Studio, installare prima di tutto il carico di lavoro Sviluppo di applicazioni desktop .NET , se non è già stato fatto. È possibile installare i carichi di lavoro di Visual Studio tramite il programma di installazione di Visual Studio, che è possibile aprire selezionando StrumentiRecupera strumenti >e funzionalità.

Carico di lavoro sviluppo per desktop .NET in Visual Studio

Funzionalità del progetto F#

Sono disponibili vari modelli di progetto ed elemento per F# in Visual Studio. L'immagine seguente mostra alcuni modelli di progetto F# per .NET Core e .NET Standard:

Modelli di progetto F# in Visual Studio

L'immagine seguente mostra alcuni modelli di elemento F#:

Modelli di elementi F# in Visual Studio

Per altre informazioni sui modelli di elemento per l'accesso ai dati, vedere Provider di tipi F#.

La tabella seguente riepiloga le funzionalità nelle proprietà del progetto per F#:

Impostazione progetto Supportato in F#? Note
File di risorse
Impostazioni di compilazione, debug e riferimento
Targetizzazione multipla
Icona e manifesto NO Disponibile tramite le opzioni della riga di comando del compilatore.
servizi client ASP.NET NO
ClickOnce NO Usare un progetto client in un altro linguaggio .NET, se applicabile.
Nominazione sicura NO Disponibile tramite le opzioni della riga di comando del compilatore.
Pubblicazione e controllo delle versioni degli assembly NO
Analisi del codice NO Gli strumenti di analisi del codice possono essere eseguiti manualmente o come parte di un comando di post-compilazione.
Sicurezza (modifica dei livelli di attendibilità) NO

Progettazione progetti

Progettazione progetti è costituito da diverse pagine delle proprietà del progetto raggruppate in base alle funzionalità correlate. Le pagine disponibili per i progetti F# sono principalmente un subset di quelle disponibili per altri linguaggi e sono descritte nella tabella seguente. I collegamenti vengono forniti alla pagina di Progettazione progetti C# corrispondente.

Pagina Progettazione progetti Collegamenti correlati Descrizione
Applicazione Pagina applicazione, Progettazione progetti Consente di specificare le impostazioni e le proprietà a livello di applicazione, ad esempio se si sta creando una libreria o un file eseguibile, la versione di .NET di destinazione dell'applicazione e le informazioni sulla posizione in cui vengono archiviati i file di risorse usati dall'applicazione.
Costruire Pagina Compilazione, Progettazione progetti Consente di controllare la modalità di compilazione del codice.
Eventi di compilazione Pagina Eventi di compilazione, Progettazione progetti Consente di specificare i comandi da eseguire prima o dopo una compilazione.
Correzione errori di programma pagina di debug , di Progettazione progetti Consente di controllare la modalità di esecuzione dell'applicazione durante il debug. Sono inclusi i comandi da usare e la directory iniziale dell'applicazione e le modalità di debug speciali da abilitare, ad esempio codice nativo e SQL.
Pacchetto (solo .NET SDK) Non disponibile Consente di definire i metadati del pacchetto NuGet durante la pubblicazione come pacchetto NuGet.
Percorsi di riferimento Gestire i riferimenti in un progetto Consente di specificare da dove cercare gli assembly da cui dipende il codice.
Risorse (solo .NET SDK) Non disponibile Consente di generare e gestire un file di risorse predefinito.

Impostazioni specifiche di F#

La tabella seguente riepiloga le impostazioni specifiche di F#:

Pagina Progettazione progetti Impostazione Descrizione
Costruire Generare chiamate tail Se selezionata, abilita l'uso dell'istruzione MSIL (Microsoft Intermediate Language) finale. In questo modo, lo stack frame viene riutilizzato per le funzioni ricorsive della parte finale. Equivale all'opzione del --tailcalls compilatore.
Costruire Altri flag Consente di specificare opzioni aggiuntive della riga di comando del compilatore.

Funzionalità dell'editor di codice e di testo

In F#sono supportate le funzionalità seguenti degli editor di testo e del codice di Visual Studio:

Caratteristica / Funzionalità Descrizione Supportato in F#?
Commento automatico Consente di commentare o rimuovere il commento da sezioni di codice.
Formato automatico Riformatta il codice con rientro e stile standard. NO
Segnalibri Consente di salvare posizioni nell'editor.
Modificare il rientro Rientri o non rientra le righe selezionate.
Rientro intelligente Rientra e rientra automaticamente il cursore in base alle regole di ambito F#.
Trova e sostituisci testo Consente di eseguire ricerche in un file, in un progetto o in una soluzione e di modificare potenzialmente il testo.
Passare alla definizione per l'API .NET Quando il cursore è posizionato in un'API .NET, mostra il codice generato dai metadati .NET. NO
Passare alla definizione per l'API definita dall'utente Quando il cursore si trova su un'entità programma definita, sposta il cursore nella posizione nel codice in cui è definita l'entità.
Vai alla riga Consente di passare a una riga specifica in un file, in base al numero di riga.
Barre di spostamento all'inizio del file Consente di passare alle posizioni nel codice, ad esempio il nome della funzione.
Linee guida per la struttura dei blocchi Mostra linee guida che indicano gli ambiti F#, su cui è possibile passare il puntatore del mouse per un'anteprima.
Abbozzatura Consente di comprimere le sezioni del codice per creare una visualizzazione più compatta.
Tabify Converte gli spazi in schede.
Colorazione dei tipi Mostra i nomi dei tipi definiti in un colore speciale.
Ricerca rapida. Vedere Ricerca rapida, Trova e Sostituisci finestra. Consente di eseguire la ricerca in un file o in un progetto.
Ctrl+fare clic su Vai a definizione Consente di tenere premuto CTRL e fare clic su un simbolo F# per richiamare Vai a definizione.
Passare a Definizione da QuickInfo Simboli selezionabili all'interno di descrizioni comando che richiamano Vai a definizione.
Vai a tutti Abilita la navigazione globale e corrispondente fuzzy per tutti i costrutti F# tramite CTRL+T.
Ridenominazione inline Rinomina tutte le occorrenze di un simbolo inline.
Trova tutti i riferimenti Trova tutte le occorrenze di un simbolo in una codebase.
Semplificare la correzione del codice del nome Rimuove i qualificatori non necessari per i simboli F#.
Rimuovere la correzione del codice di istruzione inutilizzata open Rimuove tutte le istruzioni non necessarie open in un documento.
Correzione del codice del valore inutilizzato Suggerisce la ridenominazione di un identificatore inutilizzato per il carattere di sottolineatura.

Per informazioni generali sulla modifica del codice in Visual Studio e sulle funzionalità dell'editor di testo, vedere Scrivere codice nell'editor.

Funzionalità di IntelliSense

La tabella seguente riepiloga le funzionalità di IntelliSense supportate e non supportate in F#:

Caratteristica / Funzionalità Descrizione Supportato in F#?
Implementare automaticamente le interfacce Genera stub di codice per i metodi di interfaccia.
Frammenti di codice Inserisce il codice da una libreria di costrutti di codifica comuni in argomenti. NO
Completamento di Word Salva la digitazione completando parole e nomi durante la digitazione.
Completamento automatico Se abilitata, fa sì che il completamento della parola selezioni la prima corrispondenza durante la digitazione, anziché attendere di selezionare uno o premere CTRL+SPAZIATRICE.
Completamento dell'offerta per i simboli in spazi dei nomi non aperti Con il completamento automatico, viene suggerito un simbolo corrispondente che si trova in uno spazio dei nomi non aperto, offrendo di essere completato con l'istruzione corrispondente open quando selezionata.
Generare elementi di codice Consente di generare codice stub per un'ampia gamma di costrutti. NO
Lista Membri Quando si digita l'operatore di accesso ai membri (.), vengono visualizzati i membri per un tipo.
Organizzare using/apri Organizza gli spazi dei nomi a cui si fa riferimento usando istruzioni in C# o direttive open in F#. NO
Informazioni sui parametri Mostra informazioni utili sui parametri durante la digitazione di una chiamata di funzione.
Informazioni rapide Visualizza la dichiarazione completa per qualsiasi identificatore nel codice.
Completamento automatico parentesi graffa Completa automaticamente costrutti di sintassi simili a F# in modo transazionale.

Per informazioni generali su IntelliSense, vedere Usare IntelliSense.

Funzionalità di debug

La tabella seguente riepiloga le funzionalità disponibili quando si esegue il debug del codice F#:

Caratteristica / Funzionalità Descrizione Supportato in F#?
Finestra Auto Mostra le variabili automatiche o temporanee. NO
Punti di interruzione Consente di sospendere l'esecuzione del codice in punti specifici durante il debug.
Punti di interruzione condizionali Abilita i punti di interruzione che testano una condizione che determina se l'esecuzione deve essere sospesa.
Modifica e continuazione Consente di modificare e compilare il codice durante il debug di un programma in esecuzione senza arrestare e riavviare il debugger. NO
Analizzatore di espressioni Valuta ed esegue il codice in fase di esecuzione. No, ma è possibile usare l'analizzatore di espressioni C#, anche se è necessario usare la sintassi C#.
Debug cronologico Consente di eseguire istruzioni nel codice eseguito in precedenza.
Finestra Variabili locali Mostra valori e variabili definiti localmente.
Esegui in cursore Consente di eseguire il codice fino al raggiungimento della riga contenente il cursore.
Passo Dentro Consente di avanzare l'esecuzione e spostarsi in qualsiasi chiamata di funzione.
Eseguire il passaggio Consente di avanzare l'esecuzione nello stack frame corrente e di passare da qualsiasi chiamata di funzione.

Per informazioni generali sul debugger di Visual Studio, vedere Debug in Visual Studio.

Strumenti aggiuntivi

La tabella seguente riepiloga il supporto per F# negli strumenti di Visual Studio.

Strumento Descrizione Supportato in F#?
Gerarchia di chiamate Visualizza la struttura annidata delle chiamate di funzione nel codice. NO
Metriche del codice Raccoglie informazioni sul codice, ad esempio i conteggi delle righe. NO
Visualizzazione classi Fornisce una visualizzazione basata sul tipo del codice in un progetto. NO
Finestra Elenco errori Mostra un elenco di errori nel codice.
F# Interactive Consente di digitare (o copiare e incollare) il codice F# ed eseguirlo immediatamente, indipendentemente dalla compilazione del progetto. La finestra F# Interactive è un rePL (Read, Evaluate, Print Loop).
Visualizzatore oggetti Consente di visualizzare i tipi in un assembly. I tipi F# visualizzati negli assembly compilati non vengono visualizzati esattamente come vengono creati. È possibile esplorare la rappresentazione compilata dei tipi F#, ma non è possibile visualizzare i tipi così come vengono visualizzati da F#.
finestra "Output" Visualizza l'output di compilazione.
Analisi di prestazioni Fornisce strumenti per misurare le prestazioni del codice.
Finestra Proprietà Visualizza e abilita la modifica delle proprietà dell'oggetto nell'ambiente di sviluppo con stato attivo.
Esplora server Fornisce modi per interagire con un'ampia gamma di risorse server.
Esplora soluzioni Consente di visualizzare e gestire progetti e file.
Elenco attività Consente di gestire gli elementi di lavoro relativi al codice. NO
Progetti di test Fornisce funzionalità che consentono di testare il codice. NO
Cassetta degli attrezzi Visualizza schede che contengono oggetti trascinabili, ad esempio controlli e sezioni di testo o codice.

Vedere anche