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 CoreUWP を用いた 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** ⚠️