自作PCとUbuntuとmono環境で動かすC#

その他

現行、常設しているPCでUbuntuをインストールしている自作PCが1台あります。
CPUがRyzen5 7600でGPUがRTX3060(12GB)の構成で、生成AI系のソフトを動かす為に自作PCで組みました。

GUIをインストールするとVRAMを消費するので、Ubuntuではサーバー版を選んでCUI環境にする方法もあるのですが、他のアプリケーションも使いたいので普通のデスクトップ環境を構築しています。

アプリケーション類はオープンソース系を使うとWindowsでもUbuntuでも同じアプリケーションを使える場合が多く、同じソフトでもUbuntu(Linux)の方が動きが良い(その分安定性がスポイルされているような気も…)傾向があります。

Ubuntuを使うにあたり、スクリプト系は(自分のスキル的に)pythonがかろうじて使えるので良いのですが、GUIを使ったアプリケーションを作れるようにしておきたいところです。
Ubuntu(Linux)では多数のプログラミング環境があるはずですが、ネットで拾える情報が少なく、またネットの情報を理解できる学習レベルで無いので、MicrosoftのテクノロジをUbuntuに持ち込むことにします。

.Net FrameworkをUbuntu(Linux)で動かす実装にmonoがあります。
.Net Frameworkは現行の.NETの以前のフレームワークでC#のバージョンも古い(7.0あたり)のですが、筆者の身の回りのシステムで.Net Frameworkが現役で稼働していることも多く、ネット上でも情報が多かったりします。こちらをWinForm相当のGUIアプリケーションを作成することが出来ます。残念な点はNuGetからライブラリを導入する術を知らないことにあります。

また、.NETはLinux版も存在しています。ただこちらはWinFormsやWPFなどのデスクトップアプリケーションを作成することは出来ないようです。ConsoleやASP.NETなどのプロジェクトは作成することは出来ます。また、NuGetからライブラリを追加することも出来るようです。GUIを作れないのは残念ですが、GTK#なるものを使えばGUIを作ることが出来るようですが、筆者はGTKを知らないので手を出していません。

個人が行う作業で発生する問題点を解決するため、専用のアプリケーションが欲しくなる程度の動機によるプログラミングですので、プログラミングに頼らない代替策は幾らでも探せます。またWindowsとUbuntu(Linux)で同じソフトを動かす環境というとJavaが思いつきますが、言語として筆者には難しすぎます。(個人的にC++次ぐらいに難しい)そうなりますとPythonなどのスクリプト言語でGUIを扱うライブラリでも学習するのが一番お手軽そうです。

少し調べたところpythonとtkinterでGUIが作れそうです。また、ハードルが高そうですがC++とQtの組み合わせが気になるところです。

コメント