LoginSignup
6
9

More than 3 years have passed since last update.

.NET 5 Preview 1 が発表されたので早速Hello Worldで動かしてみる

Last updated at Posted at 2020-03-18

dotnet5_platform.png

この記事について

2020年3月16日(米国時間) に、.NET Core 3.1 の後継となる .NET 5 の Preview 1 が公開されました。そのため早速インストールして Hello World まで行ってみようと思います。

対象読者

  • .NET 5 で遊んでみたい方

環境

今回は macOS でやってみました。

  • OS: macOS Catalina Version 10.15.3

SDK インストール

まずは、SDK をダウンロードします。

image01.png

一番上に.NET 5.0ってありますね。

image02.png

内容を見ると、SDK は 1 つで、Runtime の方は 3 つに分かれてますね。
ここは .NET Core 3.0/3.1 の時と変わらないようです。

  • ASP.NET Core Runtime 5.0.0-preview.1
  • Desktop Runtime 5.0.0-preview.1
  • .NET Runtime 5.0.0-preview.1 (上2つが一緒になっているやつ)

今回は SDK をインストールするので、一緒に .NET Runtime が入ります。
また Language Support のところを見てみると、.NET Core 3.1 と比べて、

  • C# 8.0 #変化なし
  • F# 5.0-preview #バージョンアップ
  • Visual Basic 新規追加

となっていました。

SDK 5.0.100-preview.1 の macOS Installers x64 をダウンロードしてインストールします。
インストーラー内は特段難しい内容はないので、内容はスキップします。次へ次へでインストールしてください。

バージョン確認

.NET 5.0 Preview 1 の SDK と Runtime が正常にインストールされたことを確認します。

SDKバージョン確認
dotnet  --list-sdks
# 実行結果
5.0.100-preview.1.20155.7 [/usr/local/share/dotnet/sdk]
Runtimeバージョン確認
dotnet  --list-runtimes
# 実行結果
Microsoft.AspNetCore.App 5.0.0-preview.1.20124.5 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 5.0.0-preview.1.20120.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

Runtime の方は、.NET Core vNext と言われていたこともあって、まだ Core の名前が残っていますね。
2020年11月リリース予定の .NET 5 も、preview の文字が取れるだけだと思います。
.NET 6 になったら変わる可能性とかあるのかな、いや、なさそう・・・

Hello World

今回は ASP.NET Core で Hello World をやってみます。
Learn .NET のサイトを参考にします。
このサイトは、ML.NET とかいろんな .NET の Tutorial があって良いですね。

mkdir -p dotnet5
cd dotnet5
dotnet new webApp -o myWebApp --no-https
実行結果
Welcome to .NET 5.0!
---------------------
SDK Version: 5.0.100-preview.1.20155.7

Getting ready...
The template "ASP.NET Core Web App" was created successfully.
This template contains technologies from parties other than Microsoft, see https://aka.ms/aspnetcore/5.0-third-party-notices for details.

Processing post-creation actions...
Running 'dotnet restore' on myWebApp/myWebApp.csproj...
 /dotnet5/myWebApp/myWebApp.csproj の復元が 1.16 sec で完了しました。

Restore succeeded.

はい、というわけでプロジェクトができました。構成を確認してみます。

cd myWebApp
ls -al
実行結果
total 40
drwxr-xr-x  11 ymasaoka  staff   352  3 19 01:12 .
drwxr-xr-x   3 ymasaoka  staff    96  3 19 01:12 ..
drwxr-xr-x  11 ymasaoka  staff   352  3 19 01:12 Pages
-rw-r--r--   1 ymasaoka  staff   716  3 19 01:12 Program.cs
drwxr-xr-x   3 ymasaoka  staff    96  3 19 01:12 Properties
-rw-r--r--   1 ymasaoka  staff  1442  3 19 01:12 Startup.cs
-rw-r--r--   1 ymasaoka  staff   162  3 19 01:12 appsettings.Development.json
-rw-r--r--   1 ymasaoka  staff   192  3 19 01:12 appsettings.json
-rw-r--r--   1 ymasaoka  staff   148  3 19 01:12 myWebApp.csproj
drwxr-xr-x   7 ymasaoka  staff   224  3 19 01:12 obj
drwxr-xr-x   6 ymasaoka  staff   192  3 19 01:12 wwwroot

.NET 開発ではおなじみのファイルが出来ています。このmyWebApp.csprojの中身を見てみます。

myWebApp.csproj
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp5.0</TargetFramework>
  </PropertyGroup>

</Project>

TargetFrameworknetcoreapp5.0 となっており、.NET 5 が使われています。いいですね。

実際に動かしてみます。

dotnet run
実行結果
warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
      No XML encryptor configured. Key {e62d2593-183e-4326-b419-9f280410c8df} may be persisted to storage in unencrypted form.
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
      Content root path: /dotnet5/myWebApp

Now listening on: http://localhost:5000が表示されたら、Web ブラウザで http://localhost:5000 にアクセスします。
ASP.NET Core での最初の画面が確認できます。

image03.png

問題なくアクセスできたら、[Ctrl] + [C] を押して アプリを終了します。
先ほどの画面の表示はWelcomeだったので、これを Hello, World! に書き換えます。
Pages ディレクトリ以下にあるIndex.cshtmlを編集します。

Index.cshtml
@page
@model IndexModel
@{
    ViewData["Title"] = "Home page";
}

<div class="text-center">
    <h1>Hello, world!</h1>
    <p>The time on the server is @DateTime.Now</p>
</div>

myWebApp ディレクトリに戻って、再度アプリを起動します。

dotnet run

image04.png

無事に、Hello World ができました。

おわりに

Learn .NET では、次は Razor Page の話になっていますが、ここは .NET Core 3.0 で登場した Blazor を .NET 5 で試してみたいですね。

参考情報

.NET

Microsoft .NET Blog

Microsoft Docs

6
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
9