Visual Studio による F# プログラムの作成

Visual Studio 統合開発環境 (IDE: Integrated Development Environment) には、コードの編集、IntelliSense、デバッグ、アプリケーションのパッケージ化と配置を支援する機能など、F# をサポートする機能が含まれています。 他の .NET Framework 言語でサポートされている機能の多くが Visual F# でもサポートされています。

スクリプトとプロジェクトの比較

Visual F# では、スクリプトとプロジェクトの 2 つの基本的な開発スタイルがサポートされています。 F# スクリプトは、永続的なアプリケーションにする必要がない少量のコードを実行する場合に使用できます。 永続的なアプリケーションを作成する場合はプロジェクトを使用します。

F# スクリプトを作成して実行するのにプロジェクトを作成する必要はありません。 F# スクリプトを作成するには、[ファイル] メニューの [新規作成] をポイントし、[ファイル] をクリックします。 [新しいファイル] ダイアログ ボックスで、[インストールされたテンプレート][スクリプト] を選択し、[F# スクリプト ファイル] を選択します。 スクリプトは F# Interactive (fsi.exe) で実行されます。 詳細については、「F# Interactive (fsi.exe) のリファレンス」を参照してください。

プロジェクトおよびソリューション

プロジェクトには、1 つのアセンブリを生成する一連のファイルが含まれています。 プロジェクトは、fsc.exe でコンパイルされ、Visual Studio デバッガーで実行できます。 生成されるアセンブリは、実行可能ファイルにすることも、ライブラリ (DLL) にすることもできます。 プロジェクトは、同じプログラミング言語で書かれた複数のソース ファイルで構成されます。 プロジェクトのコレクションがソリューションです。 ソリューション内のプロジェクトは別の言語で書かれていてもかまいません。 たとえば、Visual Basic または C# のアプリケーション ユーザー インターフェイスのプロジェクトと F# のライブラリのプロジェクトを 1 つのソリューションで使用できます。 それらのプロジェクトのいずれかがスタートアップ プロジェクトになります。スタートアップ プロジェクトとは、アプリケーションの起動時に実行されるように設定されたプロジェクトです。

F# プロジェクトを作成するには、[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。 次に、[新しいプロジェクト] ダイアログ ボックスでプロジェクト テンプレートを選択します。 Visual Studio に用意されているテンプレートを使用すると、アプリケーションやライブラリをサポートするすべての基本要素と設定があらかじめ含まれているプロジェクトを作成できます。

アプリケーションを配置して開発コンピューター以外のコンピューターで実行する場合は、配置オプションを指定して、配置に F# ランタイムが含まれていることを確認する必要があります。 配置の詳細については、「アプリケーション、サービス、およびコンポーネントの配置」を参照してください。

Visual Studio のラウンド トリップ プロジェクト

Visual Studio 2013 または Visual Studio 2012 のどちらのバージョンの Visual Studio で作成された F# プロジェクトでも、変更を行わずに、開いて作業することができます。 唯一の例外は、Visual Studio 2013 で Visual Studio 2012 プロジェクトを最初に開くときに、両方のバージョンでそのプロジェクトが使用できるように Visual Studio によってわずかな変更が加えられることです。 この機能は、ラウンド トリップと呼ばれます。

どちらのバージョンの F# ランタイム (およびコア ライブラリ) を対象にするかをプロジェクトのプロパティの [アプリケーション] タブで指定できます。 さまざまなコンテキストで実行する必要のあるライブラリを作成している場合、またはラウンドトリップするプロジェクトに参加しようとする場合は、F# 3.0 を選択します。 F# 3.0 を選択すると、共用体ケースや強化された配列スライシングなど、F# 3.1 での新しい言語機能を使用することはできません。 ターゲット ランタイムを F# 3.1 に変更すると、Visual Studio 2012 でプロジェクトを再び開くことはできません。

ユーザー インターフェイスを持つアプリケーションの作成

他の言語では、アプリケーションの UI を作成できるビジュアルなデザイナーがサポートされています。 F# でアプリケーションの UI を作成できる .NET Framework ライブラリ (WPF、Windows フォーム、ASP.NET など) を直接 F# プログラムの対象にすることはできますが、インターフェイスの作成に使用できるビジュアル デザイナーは Visual Studio 2012 に用意されていません。 そのため、UI を含む Visual Basic または C# のアプリケーション プロジェクトと 1 つ以上の F# ライブラリ プロジェクトから成る複数言語のソリューションを作成するのが一般的です。

F# プロジェクト

F# プロジェクトでは、ファイルの順序が重要になります。 F# プロジェクトのファイルは、F# コンパイラによって順番に処理されます。 F# コンパイラでは、すべての構成要素が、使用される前に定義されている必要があります。したがって、F# の構成要素の定義が含まれているファイルは、プロジェクトのファイル リストで、その構成要素を使用するファイルより前にある必要があります。 また、複数のファイルにまたがる循環依存関係が存在しないようにする必要もあります。 F# では、プロジェクト内のファイルの移動を容易にするために、ソリューション エクスプローラーのファイル リストでファイルを上下に移動するためのコマンドが用意されています。 これらのコマンドには、ファイル リストのファイルを右クリックするか、メニューに表示されるキーボード ショートカットを使用してアクセスできます。

F# プロジェクト内の F# ファイル

次の表に、F# プロジェクトで使用できるファイルの種類の概要を示します。

ファイルの種類と拡張子

Description

実装ファイル (.fs)

F# コードに使用されます。

シグネチャ ファイル (.fsi)

F# 実装ファイル内のモジュールや型のパブリック シグネチャを指定するために使用されます。 詳細については、「シグネチャ (F#)」を参照してください。

スクリプト ファイル (.fsx)

F# で、アプリケーションにテスト コードを追加したり、テスト用のプロジェクトを別に作成したりせずに、簡略的なテスト コードを追加するために使用されます。 スクリプト ファイルは、プロジェクトの一部に含まれていても、既定ではプロジェクトのビルドに含まれません。

F# のポータブル ライブラリ

DLL を作成する場合には F# ライブラリ、F# ポータブル ライブラリ、または F# ポータブル ライブラリ (レガシ) プロジェクト テンプレートを使用し、実行可能ファイルを作成する場合には F# アプリケーション プロジェクトを使用します。 ライブラリが Windows ランタイムを使用するアプリケーション (Windows ストア アプリなど)、または、.NET Framework 4.5 を使用する別のプラットフォームによって使用される場合、F# ポータブル ライブラリ プロジェクトを使用する必要があります。ライブラリが .NET Framework 4 上で実行できるポータブル アプリケーション (Windows ストアや Silverlight 5 アプリなど) によって使用される場合は、F# ポータブル ライブラリ (レガシ) プロジェクト テンプレートを使用します。 Silverlight プロジェクト テンプレートを使用して、Silverlight を対象とすることもできます。

注意

メモ Visual C# アプリが F# ポータブル ライブラリまたはレガシ ポータブル ライブラリを使用する場合は、Visual C# プロジェクトの参照を F# コア ライブラリ (FSharp.Core.dll) の適切なバージョンに追加する必要があります。C# プロジェクトの参照を追加するには、F# ライブラリが使用する FSharp.Core.dll と同じバージョンを参照する必要があります。パスを取得するには、ソリューション エクスプローラーの F# プロジェクトの [参照] セクションの [FSharp.Core] ノードをクリックし、[プロパティ] ウィンドウの "完全パス" プロパティを表示します。

次の表に、F# ポータブル ライブラリの選択肢の概要を示します。

Visual Studio 2013 の F# ポータブル ライブラリ

プロジェクト テンプレート

.NET ポータブル サブセットのバージョン

F# コア ライブラリのバージョン

対象とするアプリの種類

ポータブル

4.5.0.0

3.3.1.0

.NET Framework 4.5 および Windows ストア

ポータブル ライブラリ (レガシ)

Silverlight ライブラリ

4.0.0.0

2.3.5.1

.NET Framework 4、Windows ストア、および Silverlight

ディスクの F# コア ライブラリの別のバージョンでは、Visual Studio の旧バージョンで作成されたプロジェクトがサポートされます。 たとえば、Visual Studio 2012 で F# ポータブル ライブラリ プロジェクトを作成し、Visual Studio 2013 で開くと、参照された FSharp.Core のバージョンは 2.3.5.0 です。

関連トピック

Title

Description

F# の開発環境の機能

Visual Studio の機能のうち、どれが Visual F# でサポートされているかを示します。

プロジェクトの構成 (F#)

Visual F# のプロジェクト設定について説明します。

プロジェクト デザイナー ユーザー インターフェイス リファレンス

Visual Studio のプロジェクト関連のダイアログ ボックスについて説明するトピックへのリンクを示します。 F# のプロジェクトのサポートは Visual Studio のサポートのサブセットです。

Visual F#

Visual F# の概要を説明し、関連トピックへのリンクを示します。

チュートリアル: Visual F# を使用したアプリケーションの作成、デバッグ、および配置

Visual F# でアプリケーションを開発するための詳細な手順について説明します。

F# のデバッグ

F# でのデバッグについての情報を提供します。

Visual F# ガイド ツアー

F# でのプログラミングのいくつかの側面に関連する入門用のチュートリアルへのリンクを示します。