「Raspbianに.NET Coreを入れる」の版間の差分
Administrator (トーク | 投稿記録) |
Administrator (トーク | 投稿記録) |
||
(同じ利用者による、間の2版が非表示) | |||
1行目: | 1行目: | ||
+ | == インストールする == | ||
まず[[マイクロソフト]]の[[ウェブサイト]]から.NET Core SDKの「Linux ARM32版」を[[ダウンロード]]してくる。[[Raspberry Pi 3]]以降の[[SoC]]は64ビットだが、[[Raspbian]]は古いモデルもサポートするため32ビットとなっているためだ。 | まず[[マイクロソフト]]の[[ウェブサイト]]から.NET Core SDKの「Linux ARM32版」を[[ダウンロード]]してくる。[[Raspberry Pi 3]]以降の[[SoC]]は64ビットだが、[[Raspbian]]は古いモデルもサポートするため32ビットとなっているためだ。 | ||
[[ファイル:Raspbian-netcore-download.png|なし|サムネイル|927x927ピクセル]] | [[ファイル:Raspbian-netcore-download.png|なし|サムネイル|927x927ピクセル]] | ||
− | .NET Core SDKのtar.gzファイルの[[ダウンロード]] | + | .NET Core SDKのtar.gzファイルの[[ダウンロード]]が終わったらアーカイブを展開する。なお、このtgzファイルはディレクトリなしで格納されているので、あらかじめ展開先を作っておかないとグチャグチャになる。ちなみに[[macOS]]向けのpkgファイルだと「/usr/local/share/dotnet/」に格納される。「dotnet」というディレクトリ名が定番のようだ。 |
<source lang="bash"> | <source lang="bash"> | ||
$ mkdir $HOME/dotnet | $ mkdir $HOME/dotnet | ||
37行目: | 38行目: | ||
</source> | </source> | ||
+ | == コンソールプロジェクトを動かしてみる == | ||
プロジェクトを新規作成してみる。 | プロジェクトを新規作成してみる。 | ||
<source lang="bash"> | <source lang="bash"> | ||
60行目: | 62行目: | ||
[[ハロワ]]に30秒とかアホか。 ランタイムの初期化が重たいようなので、起動しっぱなし常駐タイプの[[ASP.NET Core Web API]]あたりに特化した使い方のほうが良さそうである。 | [[ハロワ]]に30秒とかアホか。 ランタイムの初期化が重たいようなので、起動しっぱなし常駐タイプの[[ASP.NET Core Web API]]あたりに特化した使い方のほうが良さそうである。 | ||
+ | |||
+ | == ASP.NET Core Web APIを動かしてみる == | ||
+ | ということでASP.NET Core Web APIのプロジェクトを作ってみる。 | ||
+ | <source lang="bash"> | ||
+ | $ dotnet new webapi -o webapi1 | ||
+ | $ cd webapi1 | ||
+ | </source> | ||
+ | |||
+ | 「Properties/launchSettings.json」を変更してlocalhost以外のIPからも接続できるようにする。 | ||
+ | 「localhost」となっている部分を「0.0.0.0」に書き換えるとよい。 | ||
+ | * 変更前: "applicationUrl": "https://localhost:5001;http://localhost:5000", | ||
+ | * 変更後: "applicationUrl": "https://0.0.0.0:5001;http://0.0.0.0:5000", | ||
+ | |||
+ | 「dotnet run」ではなく「dotnet watch run」を使うと、プロジェクト内のファイルの変更を検知して自動的にリビルド&再起動がかかるようになる。 | ||
+ | [[PHP]]などと同様の感覚で[[ソースコード]]をガシガシ書き換えることに集中できる。 | ||
+ | <source lang="bash"> | ||
+ | $ dotnet watch run | ||
+ | </source> | ||
+ | |||
+ | ただし[[Raspberry Pi]]だとリビルド&再起動がアホみたいに遅い。「つながらない」「設定どこか間違えたか」と悩むほど遅い。 | ||
+ | 気長に待つと解決する。 | ||
== 関連項目 == | == 関連項目 == |
2020年5月13日 (水) 03:32時点における最新版
インストールする[編集 | ソースを編集]
まずマイクロソフトのウェブサイトから.NET Core SDKの「Linux ARM32版」をダウンロードしてくる。Raspberry Pi 3以降のSoCは64ビットだが、Raspbianは古いモデルもサポートするため32ビットとなっているためだ。
.NET Core SDKのtar.gzファイルのダウンロードが終わったらアーカイブを展開する。なお、このtgzファイルはディレクトリなしで格納されているので、あらかじめ展開先を作っておかないとグチャグチャになる。ちなみにmacOS向けのpkgファイルだと「/usr/local/share/dotnet/」に格納される。「dotnet」というディレクトリ名が定番のようだ。
$ mkdir $HOME/dotnet
$ tar zxvf dotnet-sdk-3.1.202-linux-arm.tar.gz -C $HOME/dotnet
.bashrcに環境変数を追加する。
$ echo 'export DOTNET_ROOT=$HOME/dotnet' >> ~/.bashrc
$ echo 'export PATH=$PATH:$HOME/dotnet' >> ~/.bashrc
.bashrcを再読込する。
$ source .bashrc
動かしてみる。
$ dotnet
Usage: dotnet [options]
Usage: dotnet [path-to-application]
Options:
-h|--help Display help.
--info Display .NET Core information.
--list-sdks Display the installed SDKs.
--list-runtimes Display the installed runtimes.
path-to-application:
The path to an application .dll file to execute.
コンソールプロジェクトを動かしてみる[編集 | ソースを編集]
プロジェクトを新規作成してみる。
$ dotnet new console -o helloworld1
$ cd helloworld1
プロジェクトを実行するとハロワが表示される。めっちゃ遅くてびびる。
$ dotnet run
Hello World!
あまりにも遅いので計測してみる。
$ time dotnet run
Hello World!
real 0m30.772s
user 0m38.978s
sys 0m2.801s
ハロワに30秒とかアホか。 ランタイムの初期化が重たいようなので、起動しっぱなし常駐タイプのASP.NET Core Web APIあたりに特化した使い方のほうが良さそうである。
ASP.NET Core Web APIを動かしてみる[編集 | ソースを編集]
ということでASP.NET Core Web APIのプロジェクトを作ってみる。
$ dotnet new webapi -o webapi1
$ cd webapi1
「Properties/launchSettings.json」を変更してlocalhost以外のIPからも接続できるようにする。 「localhost」となっている部分を「0.0.0.0」に書き換えるとよい。
- 変更前: "applicationUrl": "https://localhost:5001;http://localhost:5000",
- 変更後: "applicationUrl": "https://0.0.0.0:5001;http://0.0.0.0:5000",
「dotnet run」ではなく「dotnet watch run」を使うと、プロジェクト内のファイルの変更を検知して自動的にリビルド&再起動がかかるようになる。 PHPなどと同様の感覚でソースコードをガシガシ書き換えることに集中できる。
$ dotnet watch run
ただしRaspberry Piだとリビルド&再起動がアホみたいに遅い。「つながらない」「設定どこか間違えたか」と悩むほど遅い。 気長に待つと解決する。