Поделиться через


Разработка в Visual Studio с использованием Visual F#

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

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

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

.NET desktop development workload in Visual Studio

Компоненты проекта F#

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

F# project templates in Visual Studio

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

F# item templates in Visual Studio

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

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

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

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

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

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

Параметры, относящиеся к F#

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

Страница конструктора проектов Параметр Description
Сборка Создание хвостовых вызовов Выбор этого параметра означает включение использования хвостовых (с префиксом tail) инструкций MSIL. Это позволяет повторное использование кадра стека хвостовыми рекурсивными функциями. Аналог параметра компилятора --tailcalls.
Сборка Другие флаги Позволяет указать дополнительные параметры командной строки компилятора.

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

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

Функция Description Поддерживается в F#
Автоматический комментарий Позволяет добавлять или удалять комментарии к разделам кода. Да
Автоматически форматировать Выполняет переформатирование кода с использованием стандартного отступа и стиля. No
Закладки Позволяет сохранять места в редакторе. Да
Изменить отступ Добавляет или удаляет отступ в выбранных строках. Да
Автоматический отступ Автоматически добавляет или удаляет отступ курсора в соответствии с правилами области видимости F#. Да
Поиск и замена текста Позволяет выполнять поиск в файле, проекте или решении, чтобы при необходимости изменить текст. Да
Переход к определению для API .NET Когда курсор находится на API .NET, отображается код, созданный из метаданных .NET. No
Переход к определению для пользовательского API Когда курсор находится на каком-либо определенном вами объекте программы, перемещает курсор в то место вашего кода, в котором этот объект определен. Да
Переход к строке Позволяет перейти к определенной строке в файле по ее номеру. Да
Панели навигации в верхней части файла Позволяют переходить в определенные места в коде, например к имени функции. Да
Направляющие для структуры блоков Показывает направляющие линии, указывающие области F#, на которые можно навести курсор для предварительного просмотра. Да
Структура Позволяет сворачивать разделы кода для более компактного представления. Да
Табифицировать Преобразует пробелы в знаки табуляции. Да
Раскраска типов Отображает определенные имена типов особым цветом. Да
Быстрый поиск. См. быстрый поиск в окне "Поиск и замена". Позволяет выполнять поиск в файле или проекте. Да
Ctrl+щелчок для перехода к определению Удерживая клавишу Ctrl и щелкнув символ F#, можно перейти к определению. Да
Перейти к определению из кратких сведений Элементы с гиперссылкой внутри всплывающих подсказок, щелчок по которым вызывает переход к определению. Да
Перейти ко всем Позволяет осуществлять глобальную навигацию с нечетким соответствием по всем конструкциям F# путем нажатия Ctrl+T. Да
Встроенное переименование Встроенным образом переименовывает все найденные вхождения символа. Да
Найти все ссылки Находит все вхождения символа в базе кода. Да
Исправление кода для упрощения имени Удаляет ненужные квалификаторы для символов F#. Да
Исправление кода для удаления неиспользуемых инструкций open Удаляет все ненужные инструкции open в документе. Да
Исправление кода для неиспользуемых значений Предлагает переименование неиспользуемого идентификатора в символ подчеркивания. Да

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

функции IntelliSense

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

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

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

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

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

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

Дополнительные сведения об отладчике Visual Studio см. в статье Отладка в Visual Studio.

Дополнительные средства

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

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

См. также