Разработка с помощью Visual F# в Visual Studio

В этой статье содержатся сведения о функциях Visual Studio для разработки F#.

Установка поддержки F#

Для разработки с помощью F# в Visual Studio сначала установите рабочую нагрузку разработки классических приложений .NET , если вы еще не сделали этого. Рабочие нагрузки Visual Studio устанавливаются с помощью Установщика Visual Studio, который можно открыть, выбрав "Сервис получения инструментов>" и "Компоненты".

Рабочая нагрузка разработки классических приложений .NET в Visual Studio

Функции проекта F#

Различные шаблоны проектов и элементов доступны для F# в Visual Studio. На следующем рисунке показаны некоторые шаблоны проектов F# для .NET Core и .NET Standard:

Шаблоны проектов F# в Visual Studio

На следующем рисунке показаны некоторые шаблоны элементов F#:

Шаблоны элементов F# в Visual Studio

Дополнительные сведения о шаблонах элементов для доступа к данным см. в разделе поставщиков типов F#.

В следующей таблице перечислены функции в свойствах проекта для F#:

Параметр проекта Поддерживается в F#? Примечания.
Файлы ресурсов Да
Параметры сборки, отладки и ссылки Да
Многонацелие Да
Значок и манифест нет Доступно с помощью параметров командной строки компилятора.
ASP.NET клиентские службы нет
ClickOnce нет При необходимости используйте клиентский проект на другом языке .NET.
строгая система именования нет Доступно с помощью параметров командной строки компилятора.
Публикация сборок и управление версиями нет
Анализ кода нет Средства анализа кода можно запускать вручную или как часть команды после сборки.
Безопасность (изменение уровней доверия) нет

Конструктор проектов

Конструктор проектов состоит из нескольких страниц свойств проекта, сгруппированных по связанным функциям. Страницы, доступные для проектов F#, в основном являются подмножеством тех, которые доступны для других языков, и описаны в следующей таблице. Ссылки предоставляются на соответствующую страницу конструктора проектов C#.

Страница конструктора проектов Связанные ссылки Описание
Заявление Страница приложения, конструктор проектов Позволяет указать параметры и свойства уровня приложения, такие как создание библиотеки или исполняемого файла, какая версия .NET предназначена для приложения, а также сведения о том, где хранятся файлы ресурсов, используемые приложением.
Строить Страница сборки, конструктор проектов Позволяет управлять компиляцией кода.
События сборки Страница "События сборки", конструктор проектов Позволяет указать команды для выполнения до или после компиляции.
Отладка страница отладки конструктор проектов Позволяет управлять запуском приложения во время отладки. Это включает в себя команды, используемые и начальный каталог приложения, а также любые специальные режимы отладки, которые вы хотите включить, например машинный код и SQL.
Пакет (только пакет SDK для .NET) Не применимо Позволяет определять метаданные пакета NuGet при публикации в виде пакета NuGet.
Ссылочные пути Управление ссылками в проекте Позволяет указать, где искать сборки, от которых зависит код.
Ресурсы (только пакет SDK для .NET) Не применимо Позволяет создавать файл ресурсов по умолчанию и управлять ими.

Параметры F#для конкретного языка

В следующей таблице перечислены параметры, относящиеся к F#:

Страница конструктора проектов Настройки Описание
Строить Создание вызовов хвоста Если выбрано, включается использование инструкции "Промежуточный язык Майкрософт" (MSIL). Это приводит к повторному использование кадра стека для рекурсивных функций хвоста. Эквивалентен параметру компилятора --tailcalls .
Строить Другие флаги Позволяет указать дополнительные параметры командной строки компилятора.

Функции редактора кода и текста

В F#поддерживаются следующие функции кода и текстовых редакторов Visual Studio:

Функция Описание Поддерживается в F#?
Автоматически комментировать Позволяет комментировать или раскомментировать разделы кода. Да
Автоматическое форматирование Переформатирует код со стандартным отступом и стилем. нет
Закладки Позволяет сохранять места в редакторе. Да
Изменение отступа Отступы или юнинденты выбранных строк. Да
Интеллектуальная отступа Автоматически отступы и отмена отступов курсора в соответствии с правилами области F#. Да
Найти и заменить текст Позволяет выполнять поиск в файле, проекте или решении, а также изменять текст. Да
Перейдите к определению API .NET При расположении курсора в API .NET отображается код, созданный из метаданных .NET. нет
Перейти к определению для определяемого пользователем API Когда курсор находится в определенной программе сущности, перемещает курсор в расположение в коде, где определена сущность. Да
Перейти к строке Позволяет перейти к определенной строке в файле по номеру строки. Да
Панели навигации в верхней части файла Позволяет переходить к расположениям в коде, например именем функции. Да
Рекомендации по структуре блоков Показывает рекомендации, указывающие области F#, которые можно наведите указатель мыши на предварительный просмотр. Да
создание наброска Позволяет свернуть разделы кода для создания более компактного представления. Да
Tabify Преобразует пробелы на вкладки. Да
Цветирование типов Отображает определенные имена типов в специальном цвете. Да
Быстрый поиск. Ознакомьтесь с кратким поиском, поиском и заменой окна. Позволяет выполнять поиск в файле или проекте. Да
CTRL+Нажмите кнопку " Перейти к определению" Позволяет удерживать сочетание клавиш CTRL и щелкнуть символ F#, чтобы вызвать "Перейти к определению". Да
Переход к определению из QuickInfo Доступные для щелчка символы внутри подсказок, которые вызывают go to Definition. Да
Перейти ко всем Включает глобальную, нечетко совпадающую навигацию для всех конструкций F# с помощью CTRL+T. Да
Встроенное переименование Переименовывает все вхождения встроенного символа. Да
Поиск всех ссылок Находит все вхождения символа в базе кода. Да
Упрощение исправления кода имени Удаляет ненужные квалификаторы для символов F#. Да
Удаление исправления кода неиспользуемой open инструкции Удаляет все ненужные open инструкции в документе. Да
Исправление кода неиспользуемого значения Предлагает переименовать неиспользуемый идентификатор для подчеркивания. Да

Общие сведения о редактировании кода в Visual Studio и функциях текстового редактора см. в разделе "Написание кода" в редакторе.

Функции IntelliSense

В следующей таблице перечислены поддерживаемые функции IntelliSense и не поддерживаются в F#:

Функция Описание Поддерживается в F#?
Автоматическая реализация интерфейсов Создает заглушки кода для методов интерфейса. Да
Фрагменты кода Внедряет код из библиотеки распространенных конструкций кода в разделы. нет
Полный текст Word Сохраняет ввод, завершив слова и имена при вводе. Да
Автоматическое завершение Если этот параметр включен, вызывает завершение слова, чтобы выбрать первое совпадение по мере ввода, а не ждать, чтобы выбрать один или нажать клавиши CTRL+ПРОБЕЛ. Да
Завершение предложения для символов в нераскрытых пространствах имен При автоматическом завершении предлагается соответствующий символ, который находится в нераскрытом пространстве имен, предлагая выполнить соответствующую open инструкцию при выборе. Да
Создание элементов кода Позволяет создавать код заглушки для различных конструкций. нет
Список участников При вводе оператора доступа к члену (.) отображаются члены для типа. Да
Упорядочение использования и открытие Упорядочивает пространства имен, на которые ссылаются инструкции в C# или открытые директивы в F#. нет
Сведения о параметрах Отображает полезные сведения о параметрах при вводе вызова функции. Да
Краткие сведения Отображает полное объявление для любого идентификатора в коде. Да
Автоматическое завершение фигурных скобок Автоматически завершает конструкции синтаксиса F# в виде фигурных скобок в транзакционной форме. Да

Общие сведения об IntelliSense см. в разделе "Использование IntelliSense".

Функции отладки

В следующей таблице перечислены функции, доступные при отладке кода F#:

Функция Описание Поддерживается в F#?
Окно автозапуска Отображает автоматические или временные переменные. нет
Точки останова Позволяет приостановить выполнение кода в определенных точках во время отладки. Да
Условные точки останова Включает точки останова, которые проверяют условие, определяющее, следует ли приостановить выполнение. Да
Правка и продолжение работы Позволяет изменять и компилировать код при отладке запущенной программы без остановки и перезапуска отладчика. нет
Средство оценки выражений Вычисляет и выполняет код во время выполнения. Нет, но вычислитель выражений C# можно использовать, хотя необходимо использовать синтаксис C#.
Историческая отладка Позволяет выполнить шаг в ранее выполненный код. Да
Окно "Локальные" Отображает локально определенные значения и переменные. Да
Запуск на курсор Позволяет выполнять код до тех пор, пока не будет достигнута строка, содержащая курсор. Да
Войдите в Позволяет заранее выполнить и перейти в любой вызов функции. Да
Переступить Позволяет заранее выполнять в текущем кадре стека и перемещаться мимо любого вызова функции. Да

Общие сведения об отладчике Visual Studio см. в разделе "Отладка" в Visual Studio.

Дополнительные инструменты

В следующей таблице приведены сведения о поддержке F# в средствах Visual Studio.

Инструмент Описание Поддерживается в F#?
Иерархия вызовов Отображает вложенную структуру вызовов функций в коде. нет
Метрики кода Собирает сведения о коде, например счетчики строк. нет
Представление классов Предоставляет представление кода на основе типов в проекте. нет
Окно списка ошибок Отображает список ошибок в коде. Да
Интерактивный F# Позволяет вводить (или копировать и вставлять) код F# и запускать его немедленно независимо от сборки проекта. Интерактивное окно F# — это цикл чтения, оценки, печати (REPL). Да
Обозреватель объектов Позволяет просматривать типы в сборке. Типы F#, как они отображаются в скомпилированных сборках, не отображаются точно так же, как и вы создаете их. Вы можете просмотреть скомпилированное представление типов F#, но вы не можете просматривать типы, как они отображаются в F#.
окно вывода Отображает выходные данные сборки. Да
Анализ производительности Предоставляет средства для измерения производительности кода. Да
Окно свойств Отображает и включает редактирование свойств объекта в среде разработки с фокусом. Да
Обозреватель серверов Предоставляет способы взаимодействия с различными ресурсами сервера. Да
Обозреватель решений Позволяет просматривать проекты и файлы и управлять ими. Да
Список задач Позволяет управлять рабочими элементами, относящимися к коду. нет
Тестовые проекты Предоставляет функции, помогающие протестировать код. нет
Ящик для инструментов Отображает вкладки, содержащие перетаскиваемые объекты, такие как элементы управления и разделы текста или кода. Да

См. также