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.
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:
Gambar berikut menunjukkan beberapa templat item F#:
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 | |
Multi-penargetan | Ya | |
Ikon dan manifes | No | Tersedia melalui opsi baris perintah pengkompilasi. |
Layanan Klien ASP.NET | No | |
ClickOnce | No | Gunakan proyek klien dalam bahasa .NET lain, jika berlaku. |
Penamaan yang kuat | No | Tersedia melalui opsi baris perintah pengkompilasi. |
Penerbitan dan penerapan versi assembly | No | |
Analisis kode | No | Alat analisis kode dapat dijalankan secara manual atau sebagai bagian dari perintah pasca-build. |
Keamanan (ubah tingkat kepercayaan) | No |
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. |
Bangun | 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. |
Debug | 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) | T/A | Memungkinkan Anda menentukan metadata Paket NuGet saat menerbitkan sebagai paket NuGet. |
Jalur Referensi | Mengelola referensi dalam proyek | Memungkinkan Anda menentukan tempat untuk mencari rakitan yang bergantung pada kode. |
Sumber daya (hanya.NET SDK) | T/A | 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 |
---|---|---|
Bangun | 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. |
Bangun | 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. | No |
Penanda | 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 |
Mencari dan mengganti 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. | No |
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 |
Masuk 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 |
Menguraikan | 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. | No |
Lengkapi Kata | 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. | No |
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#. | No |
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. | No |
Titik henti | Memungkinkan Anda menjeda eksekusi kode pada titik tertentu selama penelusuran kesalahan. | Ya |
Titik henti kondisional | 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. | No |
Evaluator ekspresi | Mengevaluasi dan menjalankan kode pada waktu proses. | Tidak, tetapi evaluator ekspresi C# dapat digunakan, meskipun Anda harus menggunakan sintaks C#. |
Penelusuran kesalahan 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 |
Melangkah ke | Memungkinkan Anda untuk melanjutkan eksekusi dan pindah ke panggilan fungsi apa pun. | Ya |
Lewati | 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. | No |
Metrik Kode | Mengumpulkan informasi tentang kode Anda, seperti jumlah baris. | No |
Tampilan Kelas | Menyediakan tampilan kode berbasis jenis dalam proyek. | No |
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 |
Object Browser | 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. | No |
Menguji proyek | Menyediakan fitur yang membantu Anda menguji kode Anda. | No |
Toolbox | Menampilkan tab yang berisi objek yang dapat diseret seperti kontrol dan bagian teks atau kode. | Ya |