「Raspbianに.NET Coreを入れる」の版間の差分

ページの作成:「まずマイクロソフトウェブサイトから.NET Core SDKの「Linux ARM32版」をダウンロードしてくる。Raspberry Pi 3以降のSoC…」
 
 
(同じ利用者による、間の4版が非表示)
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ファイルをダウンロードが終わったらアーカイブを展開する。なお、このtgzファイルはディレクトリなしで格納されているので、あらかじめ展開先を作っておかないとグチャグチャになる。<syntaxhighlight lang="bash">
.NET Core SDKのtar.gzファイルの[[ダウンロード]]が終わったらアーカイブを展開する。なお、このtgzファイルはディレクトリなしで格納されているので、あらかじめ展開先を作っておかないとグチャグチャになる。ちなみに[[macOS]]向けのpkgファイルだと「/usr/local/share/dotnet/」に格納される。「dotnet」というディレクトリ名が定番のようだ。
<source lang="bash">
$ mkdir $HOME/dotnet
$ mkdir $HOME/dotnet
$ tar zxvf dotnet-sdk-3.1.202-linux-arm.tar.gz -C $HOME/dotnet
$ tar zxvf dotnet-sdk-3.1.202-linux-arm.tar.gz -C $HOME/dotnet
</source>
.bashrcに環境変数を追加する。
<source lang="bash">
$ echo 'export DOTNET_ROOT=$HOME/dotnet' >> ~/.bashrc
$ echo 'export PATH=$PATH:$HOME/dotnet' >> ~/.bashrc
</source>


</syntaxhighlight>.bashrcに環境変数を追加する。
$echo 'export DOTNET_ROOT=$HOME/dotnet' >> ~/.bashrc
$ echo 'export PATH=$PATH:$HOME/dotnet' >> ~/.bashrc
.bashrcを再読込する。
.bashrcを再読込する。
$ source .bashrc
<source lang="bash">
動かしてみる。<source lang="bash">
$ source .bashrc
</source>
 
動かしてみる。
<source lang="bash">
$ dotnet
$ dotnet


26行目: 36行目:
path-to-application:
path-to-application:
   The path to an application .dll file to execute.
   The path to an application .dll file to execute.
</source>プロジェクトを新規作成してみる。
</source>
$ dotnet new console -o helloworld1
 
$ cd helloworld1
== コンソールプロジェクトを動かしてみる ==
プロジェクトを新規作成してみる。
<source lang="bash">
$ dotnet new console -o helloworld1
$ cd helloworld1
</source>
 
プロジェクトを実行すると[[ハロワ]]が表示される。めっちゃ遅くてびびる。
プロジェクトを実行すると[[ハロワ]]が表示される。めっちゃ遅くてびびる。
$ dotnet run  
<source lang="bash">
Hello World!
$ dotnet run  
 
Hello World!
あまりにも遅いので計測してみる。[[ハロワ]]に30秒とかアホか。 ランタイムの初期化が重たいようなので[[ASP.NET Core Web API]]あたりに特化した使い方のほうが良さそうである。
</source>


あまりにも遅いので計測してみる。
<source lang="bash">
<source lang="bash">
$ time dotnet run  
$ time dotnet run  
43行目: 60行目:
sys 0m2.801s
sys 0m2.801s
</source>
</source>
[[ハロワ]]に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]]だとリビルド&再起動がアホみたいに遅い。「つながらない」「設定どこか間違えたか」と悩むほど遅い。
気長に待つと解決する。


== 関連項目 ==
== 関連項目 ==