Mengembangkan dengan Visual F# di Visual Studio

Artikel ini menyertakan informasi tentang fitur Visual Studio untuk pengembangan F#.

Instal dukungan F#

Untuk mengembangkan dengan F# di Visual Studio, pertama-tama instal beban kerja pengembangan desktop .NET jika Anda belum melakukannya. Anda menginstal beban kerja Visual Studio melalui Alat Penginstal Visual Studio, yang dapat Anda buka dengan memilih Alat>Dapatkan Alat dan Fitur.

Beban kerja pengembangan desktop .NET di Visual Studio

Fitur proyek F#

Berbagai templat proyek dan item tersedia untuk F# di Visual Studio. Gambar berikut menunjukkan beberapa templat proyek F# untuk .NET Core dan .NET Standard:

Templat proyek F# di Visual Studio

Gambar berikut menunjukkan beberapa templat item F#:

Templat item F# di Visual Studio

Untuk informasi selengkapnya tentang templat item untuk akses data, lihat Penyedia jenis F#.

Tabel berikut ini meringkas fitur dalam properti proyek untuk F#:

Pengaturan proyek Didukung di F#? Catatan
File sumber daya Ya
Pengaturan build, debug, dan referensi Ya
Memfokuskan pada Banyak Target Ya
Ikon dan manifes Tidak. Tersedia melalui opsi baris perintah pengkompilasi.
Layanan Klien ASP.NET Tidak.
ClickOnce Tidak. Gunakan proyek klien dalam bahasa .NET lain, jika berlaku.
Penamaan yang kuat Tidak. Tersedia melalui opsi baris perintah pengkompilasi.
Penerbitan dan penerapan versi assembly Tidak.
Analisis kode Tidak. Alat analisis kode dapat dijalankan secara manual atau sebagai bagian dari perintah pasca-build.
Keamanan (ubah tingkat kepercayaan) Tidak.

Perancang Proyek

Project Designer terdiri dari beberapa halaman properti proyek yang dikelompokkan menurut fungsionalitas terkait. Halaman yang tersedia untuk proyek F# sebagian besar merupakan subset dari yang tersedia untuk bahasa lain, dan dijelaskan dalam tabel berikut. Tautan disediakan ke halaman C# Project Designer yang sesuai.

Halaman Perancang Proyek Tautan terkait Deskripsi
Aplikasi Halaman Aplikasi, Perancang Proyek Memungkinkan Anda menentukan pengaturan dan properti tingkat aplikasi, seperti apakah Anda membuat pustaka atau file yang dapat dieksekusi, versi .NET apa yang ditargetkan aplikasi, dan informasi tentang tempat file sumber daya yang digunakan aplikasi disimpan.
Membangun Halaman Build, Perancang Proyek Memungkinkan Anda mengontrol bagaimana kode dikompilasi.
Peristiwa Build Halaman Peristiwa Build, Perancang Proyek Memungkinkan Anda menentukan perintah yang akan dijalankan sebelum atau sesudah kompilasi.
Pemecahan Kesalahan Halaman Debug , Perancang Proyek Memungkinkan Anda mengontrol cara aplikasi berjalan selama penelusuran kesalahan. Ini termasuk perintah apa yang akan digunakan dan apa direktori awal aplikasi Anda, dan mode penelusuran kesalahan khusus apa pun yang ingin Anda aktifkan, seperti kode asli dan SQL.
Paket (hanya.NET SDK) Tidak tersedia Memungkinkan Anda menentukan metadata Paket NuGet saat menerbitkan sebagai paket NuGet.
Jalur Referensi Mengelola referensi dalam sebuah proyek Memungkinkan Anda menentukan tempat untuk mencari rakitan yang bergantung pada kode.
Sumber daya (hanya.NET SDK) Tidak tersedia Memungkinkan Anda membuat dan mengelola file sumber daya default.

Pengaturan F#-spesifik

Tabel berikut ini meringkas pengaturan yang khusus untuk F#:

Halaman Perancang Proyek Pengaturan Deskripsi
Membangun Hasilkan panggilan ekor Jika dipilih, memungkinkan penggunaan instruksi ekor Microsoft Intermediate Language (MSIL). Ini menyebabkan bingkai tumpukan digunakan kembali untuk fungsi rekursif ekor. Setara dengan --tailcalls opsi pengkompilasi.
Membangun Bendera lainnya Memungkinkan Anda menentukan opsi baris perintah pengkompilasi tambahan.

Fitur editor kode dan teks

Fitur kode Visual Studio dan editor teks berikut didukung di F#:

Fitur Deskripsi Didukung di F#?
Komentar otomatis Memungkinkan Anda untuk mengomentari atau membatalkan komentar bagian kode. Ya
Format otomatis Format ulang kode dengan indentasi dan gaya standar. Tidak.
Penanda Halaman Memungkinkan Anda menyimpan tempat di editor. Ya
Ubah indentasi Inden atau uninden baris terpilih. Ya
Indentasi cerdas Secara otomatis menginden dan membatalkan inden kursor sesuai dengan aturan cakupan F#. Ya
Temukan dan ganti teks Memungkinkan Anda mencari dalam file, proyek, atau solusi, dan berpotensi mengubah teks. Ya
Buka definisi untuk .NET API Saat kursor diposisikan pada .NET API, menunjukkan kode yang dihasilkan dari metadata .NET. Tidak.
Buka definisi untuk API yang ditentukan pengguna Saat kursor berada di entitas program yang Anda tentukan, memindahkan kursor ke lokasi dalam kode Anda tempat entitas ditentukan. Ya
Pergi ke Baris Memungkinkan Anda masuk ke baris tertentu dalam file, menurut nomor baris. Ya
Bilah navigasi di bagian atas file Memungkinkan Anda melompat ke lokasi dalam kode, dengan, Misalnya, nama fungsi. Ya
Panduan Struktur Blok Menampilkan panduan yang menunjukkan cakupan F#, yang dapat diarahkan ke pratinjau. Ya
Kerangka Memungkinkan Anda menciutkan bagian kode Anda untuk membuat tampilan yang lebih ringkas. Ya
Tabifikasi Mengonversi spasi ke tab. Ya
Pewarnaan jenis Memperlihatkan nama tipe yang ditentukan dalam warna khusus. Ya
Cepat Temukan. Lihat Temukan Cepat, Temukan, dan Ganti Jendela. Memungkinkan Anda mencari dalam file atau proyek. Ya
Ctrl+klik untuk Masuk ke Definisi Memungkinkan Anda menahan Ctrl dan mengklik simbol F# untuk memanggil Buka Definisi. Ya
Buka Definisi dari QuickInfo Simbol yang dapat diklik di dalam tipsalat yang memanggil Buka Definisi. Ya
Buka Semua Mengaktifkan navigasi pencocokan fuzzy global untuk semua konstruksi F# melalui Ctrl+T. Ya
Ganti Nama Sebaris Mengganti nama semua kemunculan simbol sebaris. Ya
Temukan semua Referensi Menemukan semua kemunculan simbol dalam basis kode. Ya
Menyederhanakan perbaikan kode Nama Menghapus kualifikasi yang tidak perlu untuk simbol F#. Ya
Menghapus perbaikan kode pernyataan yang tidak digunakan open Menghapus semua pernyataan yang tidak perlu open dalam dokumen. Ya
Perbaikan kode nilai yang tidak digunakan Menyarankan penggantian nama pengidentifikasi yang tidak digunakan menjadi garis bawah. Ya

Untuk informasi umum tentang mengedit kode di Visual Studio, dan fitur editor teks, lihat Menulis kode di editor.

Fitur IntelliSense

Tabel berikut ini meringkas fitur IntelliSense yang didukung dan tidak didukung di F#:

Fitur Deskripsi Didukung di F#?
Menerapkan antarmuka secara otomatis Menghasilkan stub kode untuk metode antarmuka. Ya
Cuplikan kode Menyuntikkan kode dari pustaka konstruksi pengkodean umum ke dalam topik. Tidak.
Versi Lengkap Word Menyimpan pengetikan dengan menyelesaikan kata dan nama saat Anda mengetik. Ya
Penyelesaian otomatis Saat diaktifkan, menyebabkan penyelesaian kata memilih kecocokan pertama saat Anda mengetik, alih-alih menunggu Anda memilih satu atau menekan Ctrl+Space. Ya
Penyelesaian penawaran untuk simbol di namespace yang belum dibuka Dengan penyelesaian otomatis, simbol pencocokan yang berada di namespace yang belum dibuka disarankan, menawarkan untuk menyelesaikan dengan pernyataan yang open sesuai saat dipilih. Ya
Membuat elemen kode Memungkinkan Anda menghasilkan kode stub untuk berbagai konstruksi. Tidak.
Daftar Anggota Saat Anda mengetik operator akses anggota (.), memperlihatkan anggota untuk jenis. Ya
Atur Menggunakan/Buka Menata namespace yang direferensikan dengan menggunakan pernyataan dalam C# atau membuka direktif di F#. Tidak.
Parameter Info Menampilkan informasi bermanfaat tentang parameter saat Anda mengetik panggilan fungsi. Ya
Info Cepat Menampilkan deklarasi lengkap untuk pengidentifikasi apa pun dalam kode Anda. Ya
Penyelesaian kurung kurawal otomatis Secara otomatis menyelesaikan konstruksi sintaks seperti kurung kurawal F# dengan cara transaksional. Ya

Untuk informasi umum tentang IntelliSense, lihat Menggunakan IntelliSense.

Fitur penelusuran kesalahan

Tabel berikut ini meringkas fitur yang tersedia saat Anda men-debug kode F#:

Fitur Deskripsi Didukung di F#?
Jendela otomatis Memperlihatkan variabel otomatis atau sementara. Tidak.
Titik Pemutus Memungkinkan Anda menjeda eksekusi kode pada titik tertentu selama penelusuran kesalahan. Ya
Titik henti bersyarat Mengaktifkan titik henti yang menguji kondisi yang menentukan apakah eksekusi harus dijeda. Ya
Edit dan Lanjutkan Memungkinkan kode dimodifikasi dan dikompilasi saat Anda men-debug program yang sedang berjalan tanpa menghentikan dan memulai ulang debugger. Tidak.
Evaluator ekspresi Mengevaluasi dan menjalankan kode pada waktu proses. Tidak, tetapi evaluator ekspresi C# dapat digunakan, meskipun Anda harus menggunakan sintaks C#.
Pemecahan masalah historis Memungkinkan Anda untuk melangkah ke kode yang dijalankan sebelumnya. Ya
Jendela lokal Memperlihatkan nilai dan variabel yang ditentukan secara lokal. Ya
Jalankan Ke Kursor Memungkinkan Anda menjalankan kode hingga baris yang berisi kursor tercapai. Ya
Memasuki Memungkinkan Anda untuk melanjutkan eksekusi dan pindah ke panggilan fungsi apa pun. Ya
Langkah Di Atas Memungkinkan Anda untuk melanjutkan eksekusi dalam bingkai tumpukan saat ini dan melewati panggilan fungsi apa pun. Ya

Untuk informasi umum tentang debugger Visual Studio, lihat Penelusuran kesalahan di Visual Studio.

Alat tambahan

Tabel berikut ini meringkas dukungan untuk F# di alat Visual Studio.

Alat Deskripsi Didukung di F#?
Hierarki Panggilan Menampilkan struktur panggilan fungsi berlapis dalam kode Anda. Tidak.
Metrik Kode Mengumpulkan informasi tentang kode Anda, seperti jumlah baris. Tidak.
Tampilan Kelas Menyediakan tampilan kode berbasis jenis dalam proyek. Tidak.
Jendela Daftar Kesalahan Menampilkan daftar kesalahan dalam kode. Ya
F# Interaktif Memungkinkan Anda mengetik (atau menyalin dan menempelkan) kode F# dan segera menjalankannya, secara independen dari bangunan proyek Anda. Jendela F# Interaktif adalah Read, Evaluate, Print Loop (REPL). Ya
Browser Objek Memungkinkan Anda melihat jenis dalam rakitan. Jenis F# saat muncul dalam rakitan yang dikompilasi tidak muncul persis seperti yang Anda tulis. Anda dapat menelusuri representasi yang dikompilasi dari jenis F#, tetapi Anda tidak dapat melihat jenis seperti yang muncul dari F#.
jendela Output Menampilkan output build. Ya
Analisis Performa Menyediakan alat untuk mengukur performa kode Anda. Ya
Jendela properti Menampilkan dan mengaktifkan pengeditan properti objek di lingkungan pengembangan yang memiliki fokus. Ya
Penjelajah Server Menyediakan cara untuk berinteraksi dengan berbagai sumber daya server. Ya
Penjelajah Solusi Memungkinkan Anda melihat dan mengelola proyek dan file. Ya
Daftar Tugas Memungkinkan Anda mengelola item kerja yang berkaitan dengan kode Anda. Tidak.
Menguji proyek Menyediakan fitur yang membantu Anda menguji kode Anda. Tidak.
Kotak Peralatan Menampilkan tab yang berisi objek yang dapat diseret seperti kontrol dan bagian teks atau kode. Ya

Lihat juga