MS_DotNetOnRaspbian - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki
- 戻る(IoT、組み込み系のLinuxを調査)
- .NET On Rasbian
- Mono On Rasbian
- .NET Core On Rasbian
.NET のプログラムを Rasbian 上で動かしたい。
移行メモ(表記について): 正式な名称は Raspbian(現 Raspberry Pi OS)だが、
元 Wiki のページ名が「Rasbian」(pが欠けている)となっているため、
ページ名・見出しは元表記のままとし、
移行先ファイル名のみ正しい綴り(Raspbian)に合わせている。
移行メモ(OS 名のその後): Raspbian は 2020 年に Raspberry Pi OS に改称された。
また、64bit 版が正式提供されるようになり、
本ページおよび .NET Core On Rasbian が前提としている
「Raspberry Pi 3 は arm64 だが Raspbian 上では armv7 互換モードで動作する」
という制約は、64bit 版を選べば回避できるようになっている。
以下のような役割分担らしい。
GUI
CUI ... が、最近は、.NET Core でも GUI が可能になってきている。
※ Windows 10 IoT Core であれば、
.NET Core の UWP を用いた GUI 開発が可能だった。
補足(この役割分担は解消された): 本ページの「Mono が GUI、.NET Core が CUI」
という分担は、記述時点の事情によるものだった。現在は次のように変わっている。
Mono は .NET に統合された。
.NET 5 で実行基盤が 1 本化され、Mono ランタイムは
モバイル/WebAssembly 向けのランタイムとして .NET の一部になっている
(→ .NET Coreへの移行)。.NET でも GUI が普通に書けるようになった。
Linux(ARM を含む)で動く選択肢としては、
- Gtk Sharp(本ページが挙げている方向)
- Avalonia UI(XAML ベース、クロスプラットフォーム)
- .NET MAUI(ただし Linux は公式サポート外)
がある。
IoT 向けのライブラリが整備された。
System.Device.Gpio/Iot.Device.Bindingsにより、
GPIO・I2C・SPI を .NET から直接扱える
(→ .NET Core On Rasbian の実装例)。したがって、現在 Raspberry Pi 上で .NET を使うなら、
Mono を選ぶ理由は基本的に無く、.NET(8 以降)で統一してよい。
本ページの分担は当時の判断の記録として読むとよい。
Tags: インフラストラクチャ, IoT, Linux, .NET開発