Chapter 02

環境構築

eagle
eagle
2021.12.26に更新

開発ツールの整備

Visual Studio 2022をインストールしてください。
本書ではCommunity版を使用してWindowsフォームアプリケーションを作成します。

Visual Studio Installerでワークロードを選択する画面がありますので、そこで.NET デスクトップ開発をインストールしてください。


ワークロードの選択

ソリューションの準備

アプリケーションの作成にスムーズに入れるように予めソリューションを作成しておきましたので以下のレポジトリをクローンしてください。
Gitクライアントが無い場合はzipファイルでのダウンロードもできます。

https://github.com/eagle-k/FSharpWinformsMinimal.git

Visual Studio 2022でFSharpWinformsMinimal.slnを開いてください。
ソリューションは2つのプロジェクトで構成されており、Visual Studio上ではソリューションエクスプローラーから見ることができます。


ソリューションエクスプローラー

1つはDesignerプロジェクトで、ここにアプリケーションの画面を記述します。
Visual Studioのフォームデザイナを使用することで、C#コードが自動生成されます。
本書ではC#コードを手書きすることはありません。

もう1つはMainプロジェクトで、ここにアプリケーションのメインのロジックを記述します。
具体的には画面にデータを表示するコードであったり、ユーザーが画面上のボタンをクリックしたときに実行するコードであったりを記述します。
こちらはF#で記述します。

アプリケーションのデバッグ実行

App.Mainを選択してデバッグを実行できます。


デバッグ実行

現時点では次のように空のフォームが表示されます。


空のフォーム

このフォームはDesignerプロジェクトにあるMainForm.csによって定義されています。
それをMainプロジェクトのMainForm.fsProgram.fsで読み込み、画面として表示しています。

F#インタラクティブ

開発に必須というわけではありませんが、「あると便利」な代物としてF#インタラクティブが挙げられます。


F#インタラクティブの表示

F#インタラクティブでは対話的にコードを実行することができ、特にF#初学者が文法をトライアル&エラーで学ぶ際に有用です。
F#インタラクティブ特有の注意点として、文末にセミコロンを2つ付ける必要があります。


F#インタラクティブの使用

開発中に役に立つ例として、例えば文字列の部分文字列を取るメソッドString.Substringを使用する際に、引数に指定する値が0オリジンか1オリジンか忘れたとします。
このとき、F#インタラクティブで実行結果をサクッと確認することができます。

> "abcdefg".Substring(4);;
val it: string = "efg"

このように、F#インタラクティブは学習中にも開発中にも有用な場面がありますので使い方を知っていて損はないでしょう。