rksoftware

Visual Studio とか C# とかが好きです

.NET 5 を RC1 版で動かしてみる

みなさんお待ちかねの .NET 5 のリリースが迫っています。もう少しだけ待ちの日々ですが .NET 5 の RC1 版が公開されて動かすことができます。

そこで、実際に環境を整えて動かしてみましょう。

■ 用意するもの

  • Visual Studio 2019 の Preview 版をインストール
  • .NET 5 SDK をインストール (私は Windows の x64 インストーラーでインストールしました)

■ プロジェクトの作成

dotnet コマンドで作成してもいいのでしょうが、今回は折角インストールしたので Visual Studio 2019 Preview でプロジェクトを作成してみます。
お試しならばコンソールアプリが鉄板ですが、さらに折角なので WPF で行ってみましょう。

WPF App (.NET Core) を選択

f:id:rksoftware:20200926034911j:plain

出来上がったプロジェクトのプロパティを開いて、対象のフレームワーク.NET Core 3.1 になっているのを .NET 5.0 に変更

f:id:rksoftware:20200926034327j:plain

これで実行すれば、.NET 5 の WPF アプリなのですが、実際起動するアプリの見た目は普通の WPF アプリなので .NET 5 のコードを書いて観ます。
.NET 5 で使える C# 9 の新機能に Records という機能があります。これを試してみます。

■ C# 9.0

お試しコードは先の ブログ記事 で書かれている LoginResource レコードにしてみます。

using System.Windows;

namespace WpfApp1
{
    /// <summary>
    /// Records
    /// </summary>
    public record LoginResource(string Username, string Password, bool RememberMe);

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            // Records を new
            LoginResource lr = new("name", "pass", true);

            MessageBox.Show(lr.ToString());
        }
    }
}
<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Button Content=".NET 5" Click="Button_Click"/>
    </Grid>
</Window>

■ 実行

実行してボタンをクリックしてみます。

f:id:rksoftware:20200926034350j:plain

計画通り! RecordsToString() 結果は分かり易くていいですね。

■ .NET Core 3.1 に戻してみる

計画通り実行されましたが、実際 .NET 5 だから Records を使えていたことを確認するために .NET Core 3.1 に戻してみます。

f:id:rksoftware:20200926034408j:plain

またしても計画通り! Records が使えずエラーになりました。

f:id:rksoftware:20200926034422j:plain

■ さあやってみよう!

ちょっとインストールしてみるだけで、なんと .NET 5 が試せました。簡単ですね。