MS_DotNetOnRaspbian - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki

.NET 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 版を選べば回避できるようになっている。

詳細

Monoと.NET Core

以下のような役割分担らしい。

Mono

GUI

.NET Core

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 以降)で統一してよい。
本ページの分担は当時の判断の記録として読むとよい。

参考

Mono On Rasbian

.NET Core On Rasbian

本 Wiki 内


Tags: インフラストラクチャ, IoT, Linux, .NET開発

⚠️ **GitHub.com Fallback** ⚠️