みなさん、こんにちは、キャスレーコンサルティングSI(システム・インテグレーション)部の上條です。
今回は、Visual StudioからF#でWindowsアプリケーションを作成してみたいと思います。
使用するVisual Studioは、Visual Studio 2017 Communityになります。
全体の流れ
- F#インストール
- プロジェクトの作成
- FsXAMLのインストール
- プロジェクトの設定変更
- TestWindow.xamlの作成
- Program.fsの修正
1.F#のインストール
Visual Studio Instllerから、F#をインストールします。
2.プロジェクトの作成
Visual Studio 2017から、F#のコンソールアプリケーションを作成します。
現時点では、F#のWindowsアプリケーションのプロジェクトが、作成できないため
一旦、コンソールアプリケーションで作成し、その後Windowsアプリケーションに変更します。
- Visual Studio 2017 を起動します。
- 「ファイル」>「新規作成」>「プロジェクト」をクリックします。
- 「開発コンポーネント」>「開発作業」>「F#言語サポート」チェックし、変更ボタンをクリックします。
- VisualF#を選択し、その後コンソールアプリケーションを選択し、
プロジェクト名に「HelloWorld」と入力し、OKボタンをクリックします。
- 以下のような、ソリューションが作成されます。
3.FsXAMLのインストール
F#でXAMLを使用できるように、FsXAML をインストールします。
- 「ツール」>「NuGetパッケージマネージャ」>「ソリューションのNuGetパッケージの管理」をクリックします。
- 「参照」をクリックし、「FsXAML」と入力します。
- 検索結果から「FsXAML」を選択し、検索結果の右側に表示されているプロジェクトをチェックし、
インストールします。
- ソリューションを変更するので、「OK」ボタンをクリックします。
- 参照設定に、FsXMALへの参照が追加されます。
4.プロジェクトの設定変更
コンソールアプリケーションから、Windowsアプリケーションに変更します。
5.TestWindow.Xamlの作成
起動時に表示する、Window(TestWindow.Xaml)を追加し、ボタンを1つ配置します。
- プロジェクトをクリックし、「右クリック」>「追加」>「新しい項目」をクリックします。
- テキストファイルをクリックし、名前を「TestWindow.xaml」と入力します。
- 以下の画面が、表示されます。
- XAMLの入力欄に、以下のコードを貼り付けます。
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="TestWindow" Height="350" Width="525"> <StackPanel HorizontalAlignment="Left" Height="171" Margin="150,130,0,0" VerticalAlignment="Top" Width="213"> <Button x:Name="TestButton" Height="42" Content="Button" RenderTransformOrigin="0.5,0.5" /> </StackPanel> </Window>
- Windowsの表示が、以下のようになります。
6.Program.fsの修正
Program.fsを修正し、TestWindowして、ボタンを押下すると、メッセージボックスを表示するようにします。
- プロジェクトから、「Program.fs」をクリックします。
- Program.fsに、以下のコードを貼り付けます。
open System open System.Windows open System.Windows.Controls open System.Windows.Markup open FsXaml type TestWindow = XAML<"TestWindow.xaml"> [<STAThread>] [<EntryPoint>] let main argv = let window = TestWindow() window.TestButton.Click.Add (fun x -> MessageBox.Show("Hello,World!") |> ignore) let application = new Application() application.Run(window)
- 保存して、実行します。
- TestWindowsが、表示されます。
- ボタンを押下すると、メッセージボックスに「Hello,World」と表示されます。
最後に
C#や.NetVBのように、簡単にWindowsアプリケーションの作成はできませんが、
F#でも一手間ないし二手間かければ、Windowsアプリケーションを作成することができます。
最後までご覧頂き、ありがとうございました。