-
Notifications
You must be signed in to change notification settings - Fork 0
MS_MonoOnRaspbian
- 戻る(Mono、.NET On Rasbian)
- Mono On Rasbian
- .NET Core On Rasbian
- CUI と、特に、GUI のサポートがポイント。
- Windows 10 IoT Core で実装したコードを移植してみたい。
以下を参照すると、
2 パターンの方法があるらしい。
恐らく、
と思われる。
Mono は、ピュア .NET のバイナリを動作させることができる。
- 参考
- Use C# and .NET to develop your own GUI apps for the Raspberry Pi
https://tutorials-raspberrypi.com/write-raspberry-pi-gui-apps-c-sharp-dot-net/ - Raspberry PiでWindows .NETのアプリケーションを動かす | 株式会社エフイー
- なべひろBlog
- Use C# and .NET to develop your own GUI apps for the Raspberry Pi
補足(著者が「ナンチャッテ」と評した理由): この方法は、
Windows でビルドした .NET Framework の.exeを
そのまま Raspberry Pi へ持ち込んでmono app.exeで動かすもの。
手軽だが、
- Windows Forms は Mono 上では見た目・挙動が完全には一致しない
(Mono の Windows Forms 実装は不完全なまま開発が止まっている)- P/Invoke で Win32 API を呼んでいると動かない
- レジストリやドライブ レターへの依存も動かない
ため、「ビルドし直さずに動く」ように見えて、
移行・コンバージョン方式で言えば
ポーティング移行の手直しが必要になることが多い。
著者の「ナンチャッテ」という評価は妥当である。
Gtk Sharp を使って、
Mono or .NET Framework or .NET Core プロジェクトを作成することもできる。
補足(こちらが「本域」である理由): Gtk Sharp は
Linux ネイティブの GUI ツールキット(GTK)のバインディングなので、
Raspberry Pi 上で素直に動く。
Windows Forms のように「Windows の見た目を Linux で再現しようとする」
無理がない点が、前者との決定的な違いになる。ただし、Windows 側で書いたコードをそのまま持ってくることはできず、
UI は書き直しになる。つまり、
手軽さ 移植後の安定性 .NET Fx バイナリを Mono で 高い 低い Gtk Sharp 低い(UI 書き直し) 高い というトレードオフになる。
補足(現在の選択肢): .NET On Rasbian でも触れたとおり、
Mono は .NET に統合されたため、現在この用途で Mono を選ぶ理由は乏しい。
Raspberry Pi 上で .NET の GUI アプリを作るなら、
- Avalonia UI — XAML ベース。WPF に近い書き方ができ、
Linux ARM でも動作する。移植先として現在最も現実的。- Gtk Sharp(GtkSharp / Gir.Core) — 本ページの方向の後継。
のいずれかになる。
著者が意図した「Windows 10 IoT Core で実装したコード
(UWP / XAML)を移植する」という目的には、
XAML 系の Avalonia UI が最も近い。
-
Raspberry Pi 3でC#アプリを動かしてみる。
-
nabehiro22/RaspberryPi_CS
https://github.com/nabehiro22/RaspberryPi_CS
- .NET Core と Gtk Sharp で GUI アプリを作ってみる
- Raspberry PiでC#を実行してみた(monoをいれてみた)
https://qiita.com/msp0310/items/4762011063a3bee38d36
-
お手軽Raspberry Pi Guiアプリ開発
-
Raspberry Pi C#でLチカ
https://qiita.com/tana_/items/f24c861827179811f912
移行メモ: 上記「初級 後編」と「パーツサンプル集」は、
元ページで同一の URL が記載されていた(いずれか一方が誤りと思われる)。
どちらが正しいか判断できないため、元の記載のまま残す。
Tags: インフラストラクチャ, IoT, Linux, .NET開発, Mono
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。