Partager via


Développer avec Visual F# dans Visual Studio

Cet article contient des informations sur les fonctionnalités de Visual Studio pour le développement F#.

Installer la prise en charge de F#

Pour développer avec F# dans Visual Studio, installez d’abord la charge de travail de développement de bureau .NET si vous ne l’avez pas déjà fait. Vous installez des charges de travail Visual Studio via Visual Studio Installer, que vous pouvez ouvrir en sélectionnant Outilsobtenir des outils> et fonctionnalités.

Charge de travail de développement .NET Desktop dans Visual Studio

Fonctionnalités du projet F#

Différents modèles de projet et d’élément sont disponibles pour F# dans Visual Studio. L’image suivante montre quelques-uns des modèles de projet F# pour .NET Core et .NET Standard :

Modèles de projet F# dans Visual Studio

L’image suivante montre quelques-uns des modèles d’élément F# :

Modèles d’élément F# dans Visual Studio

Pour plus d’informations sur les modèles d’élément pour l’accès aux données, consultez fournisseurs de types F#.

Le tableau suivant récapitule les fonctionnalités des propriétés de projet pour F# :

Paramètre de projet Pris en charge dans F# ? Remarques
Fichiers de ressources Oui
Générer, déboguer et référencer des paramètres Oui
Ciblage multiple Oui
Icône et manifeste Non Disponible via les options de ligne de commande du compilateur.
services clients ASP.NET Non
ClickOnce Non Utilisez un projet client dans un autre langage .NET, le cas échéant.
Nommage fort Non Disponible via les options de ligne de commande du compilateur.
Publication et contrôle de version d’assemblys Non
Analyse du code Non Les outils d’analyse du code peuvent être exécutés manuellement ou dans le cadre d’une commande post-build.
Sécurité (modifier les niveaux d’approbation) Non

Concepteur de projets

Project Designer se compose de plusieurs pages de propriétés de projet regroupées par fonctionnalité associée. Les pages disponibles pour les projets F# sont principalement un sous-ensemble de celles disponibles pour d’autres langues et sont décrites dans le tableau suivant. Les liens sont fournis à la page du Concepteur de projets C# correspondante.

Page Concepteur de projets Liens connexes Descriptif
Application Page Application, Concepteur de projets Vous permet de spécifier les paramètres et les propriétés au niveau de l’application, par exemple, si vous créez une bibliothèque ou un fichier exécutable, quelle version de .NET cible l’application et des informations sur l’emplacement où les fichiers de ressources utilisés par l’application sont stockés.
Construire Page Build, Concepteur de projets Vous permet de contrôler la façon dont le code est compilé.
Événements de build Page Événements de génération, Concepteur de projets Vous permet de spécifier des commandes à exécuter avant ou après une compilation.
Déboguer page de débogage , concepteur de projets Vous permet de contrôler la façon dont l’application s’exécute pendant le débogage. Cela inclut les commandes à utiliser et le répertoire de démarrage de votre application, ainsi que tous les modes de débogage spéciaux que vous souhaitez activer, tels que le code natif et SQL.
Package (SDK.NET uniquement) N/A Vous permet de définir les métadonnées du package NuGet lors de la publication en tant que package NuGet.
Chemins d’accès de référence Gérer les références dans un projet Vous permet de spécifier où rechercher des assemblys dont dépend le code.
Ressources (SDK.NET uniquement) N/A Vous permet de générer et de gérer un fichier de ressources par défaut.

Paramètres spécifiques à F#

Le tableau suivant récapitule les paramètres spécifiques à F# :

Page Concepteur de projets Réglage Descriptif
Construire Générer des appels de fin Si cette option est sélectionnée, active l’utilisation de l’instruction MSIL (Microsoft Intermediate Language) de fin. Cela entraîne la réutilisation du frame de pile pour les fonctions récursives de fin. Équivalent à l’option du --tailcalls compilateur.
Construire Autres indicateurs Vous permet de spécifier d’autres options de ligne de commande du compilateur.

Fonctionnalités de l’éditeur de code et de texte

Les fonctionnalités suivantes des éditeurs de code et de texte Visual Studio sont prises en charge dans F# :

Caractéristique Descriptif Pris en charge dans F# ?
Commentaire automatique Vous permet de commenter ou de supprimer les marques de commentaire du code. Oui
Format automatique Reformats code avec mise en retrait et style standard. Non
Favoris Vous permet d’enregistrer des emplacements dans l’éditeur. Oui
Modifier la mise en retrait Retraits ou unindents lignes sélectionnées. Oui
Mise en retrait intelligente Met automatiquement en retrait et désactive le curseur en fonction des règles d’étendue F#. Oui
Rechercher et remplacer du texte Vous permet de rechercher dans un fichier, un projet ou une solution et de modifier potentiellement du texte. Oui
Accéder à la définition de l’API .NET Lorsque le curseur est positionné sur une API .NET, affiche le code généré à partir de métadonnées .NET. Non
Accéder à la définition de l’API définie par l’utilisateur Lorsque le curseur se trouve sur une entité de programme que vous avez définie, déplace le curseur vers l’emplacement dans votre code où l’entité est définie. Oui
Aller à la ligne Vous permet d’accéder à une ligne spécifique dans un fichier, par numéro de ligne. Oui
Barres de navigation en haut du fichier Vous permet d’accéder à des emplacements dans le code, par exemple, le nom de la fonction. Oui
Recommandations en matière de structure de blocs Affiche des instructions qui indiquent des étendues F#, qui peuvent être survolées pour une préversion. Oui
Mode Plan Vous permet de réduire les sections de votre code pour créer une vue plus compacte. Oui
Tabifier Convertit les espaces en onglets. Oui
Colorisation de type Affiche les noms de types définis dans une couleur spéciale. Oui
Recherche rapide. Consultez recherche rapide, rechercher et remplacer la fenêtre. Vous permet de rechercher dans un fichier ou un projet. Oui
Ctrl+cliquez sur Atteindre la définition Vous permet d’appuyer sur Ctrl et de cliquer sur un symbole F# pour appeler Atteindre la définition. Oui
Accéder à La définition à partir de QuickInfo Symboles cliquables à l’intérieur d’info-bulles qui appellent Atteindre la définition. Oui
Accéder à tout Active la navigation globale et approximative pour toutes les constructions F# via Ctrl+T. Oui
Renommer inline Renomme toutes les occurrences d’un symbole inline. Oui
Rechercher toutes les références Recherche toutes les occurrences d’un symbole dans une base de code. Oui
Simplifier le correctif de code de nom Supprime les qualificateurs inutiles pour les symboles F#. Oui
Supprimer le correctif de code d’instruction inutilisé open Supprime toutes les instructions inutiles open dans un document. Oui
Correctif de code de valeur inutilisé Suggère de renommer un identificateur inutilisé pour souligner. Oui

Pour obtenir des informations générales sur la modification du code dans Visual Studio et les fonctionnalités de l’éditeur de texte, consultez Écrire du code dans l’éditeur.

Fonctionnalités IntelliSense

Le tableau suivant récapitule les fonctionnalités IntelliSense prises en charge et non prises en charge dans F# :

Caractéristique Descriptif Pris en charge dans F# ?
Implémenter automatiquement des interfaces Génère des stubs de code pour les méthodes d’interface. Oui
Extraits de code Injecte du code à partir d’une bibliothèque de constructions de codage courantes dans des rubriques. Non
Compléter le mot Enregistre la saisie en terminant des mots et des noms au fur et à mesure que vous tapez. Oui
Saisie semi-automatique Lorsque cette option est activée, la saisie semi-automatique du mot entraîne la sélection de la première correspondance au lieu d’attendre que vous activiez une ou appuyez sur Ctrl+. Oui
Achèvement de l’offre pour les symboles dans les espaces de noms non ouverts Avec la saisie semi-automatique, un symbole correspondant qui réside dans un espace de noms non ouvert est suggéré, offrant la fin de l’instruction correspondante open lorsqu’elle est sélectionnée. Oui
Générer des éléments de code Vous permet de générer du code stub pour diverses constructions. Non
Répertorier les membres Lorsque vous tapez l’opérateur d’accès aux membres (.), affiche les membres d’un type. Oui
Organiser les utilisations/Ouvrir Organise les espaces de noms référencés à l’aide d’instructions en C# ou de directives ouvertes en F#. Non
Informations sur les paramètres Affiche des informations utiles sur les paramètres lorsque vous tapez un appel de fonction. Oui
Informations rapides Affiche la déclaration complète de n’importe quel identificateur dans votre code. Oui
Achèvement automatique de l’accolade Termine automatiquement les constructions de syntaxe de type F# de manière transactionnelle. Oui

Pour obtenir des informations générales sur IntelliSense, consultez Utiliser IntelliSense.

Fonctionnalités de débogage

Le tableau suivant récapitule les fonctionnalités disponibles lorsque vous déboguez du code F# :

Caractéristique Descriptif Pris en charge dans F# ?
Fenêtre Autos Affiche les variables automatiques ou temporaires. Non
Points d’arrêt Vous permet de suspendre l’exécution du code à des points spécifiques pendant le débogage. Oui
Points d’arrêt conditionnels Active les points d’arrêt qui testent une condition qui détermine si l’exécution doit être suspendue. Oui
Modifier et continuer Active la modification et la compilation du code lorsque vous déboguez un programme en cours d’exécution sans arrêter et redémarrer le débogueur. Non
Évaluateur d’expression Évalue et exécute du code au moment de l’exécution. Non, mais l’évaluateur d’expression C# peut être utilisé, même si vous devez utiliser la syntaxe C#.
Débogage historique Vous permet d’effectuer un pas à pas dans le code précédemment exécuté. Oui
Fenêtre Variables locales Affiche les valeurs et variables définies localement. Oui
Exécuter jusqu’au curseur Vous permet d’exécuter du code jusqu’à ce que la ligne qui contient le curseur soit atteinte. Oui
Pas à pas détaillé Vous permet d’avancer l’exécution et de passer à n’importe quel appel de fonction. Oui
Enjamber Vous permet d’avancer l’exécution dans l’image de pile actuelle et de passer un appel de fonction. Oui

Pour obtenir des informations générales sur le débogueur Visual Studio, consultez Débogage dans Visual Studio.

Outils supplémentaires

Le tableau suivant récapitule la prise en charge de F# dans les outils Visual Studio.

Outil Descriptif Pris en charge dans F# ?
Hiérarchie d'appels Affiche la structure imbriquée des appels de fonction dans votre code. Non
Métriques de code Collecte des informations sur votre code, telles que le nombre de lignes. Non
Affichage de classes Fournit une vue basée sur le type du code dans un projet. Non
Fenêtre Liste d’erreurs Affiche la liste des erreurs dans le code. Oui
F# Interactive Vous permet de taper (ou copier et coller) du code F# et de l’exécuter immédiatement, indépendamment de la génération de votre projet. La fenêtre interactive F# est une boucle REPL (Read, Evaluate, Print Loop). Oui
Explorateur d’objets Vous permet d’afficher les types dans un assembly. Les types F# tels qu’ils apparaissent dans les assemblys compilés n’apparaissent pas exactement comme vous les créez. Vous pouvez parcourir la représentation compilée des types F#, mais vous ne pouvez pas afficher les types tels qu’ils apparaissent à partir de F#.
Fenêtre de sortie Affiche la sortie de build. Oui
Analyse des performances Fournit des outils pour mesurer les performances de votre code. Oui
La fenêtre des propriétés Affiche et active la modification des propriétés de l’objet dans l’environnement de développement qui a le focus. Oui
Explorateur de serveurs Fournit des moyens d’interagir avec une variété de ressources serveur. Oui
Explorateur de solutions Vous permet d’afficher et de gérer des projets et des fichiers. Oui
Liste des tâches Vous permet de gérer les éléments de travail relatifs à votre code. Non
Projets de test Fournit des fonctionnalités qui vous aident à tester votre code. Non
Boîte à outils Affiche des onglets qui contiennent des objets draggables tels que des contrôles et des sections de texte ou de code. Oui

Voir aussi