隠遁Chemistと愛(AI)の交換日記
今、HSPiPの物性推算やSphere探索などを行うMB6.dllを開発している。
Abbott先生の作ったdllは構成が悪い。
しばらく拡張したところ、StackOverflowエラーが出るようになってしまった。
C#を勉強したのは、2008年ごろなので、新しいものにはついていかれていなかった。
ChatGPTに聞きながら地道にエラーを潰して行った。
dllは計算部分だけを扱っている。
するとデバッグしようにもデータを投入できない。巨大なHSPiPからジョブを投入してデバッグするのも効率が悪い。

Windows のフォームアプリを作った。GUIを使ってジョブを投入する。
最近本格的なデバッガーを使ったアプリ開発はしてこなかった。(ブラウザーのデバッガーばかり使っていた)本格的なデバッガーは本当に良い。
変数の値は押さえやすい。
すごく、プログラムがスッキリした。
計算ルーチンとインターフェイスを分けたことによって、良いこともたくさんある。
山本(LLC: pirika.com社CEO)が独自に作成した計算ルーチンをdllに埋め込む。
それをPirikaProと名付けたインターフェイスアプリから利用する。
dll自体はHSPiPとPirikaProの両方のアプリから共通に利用できる。
PirikaProをHSPiPのAdd-Onとして特別ユーザーに提供できる。
私はMacユーザーだ。windowsの実機をWindows Appを使ってMac上から使う。
プログラムを作ってもwindowsでしか動作しない。
パラレルを導入してwindowsを使うこともできるが、パラレルとWindowsを両方購入しなくてはならない。
それに対してCrossOverを導入すると、windowsのソフトをマックの上で動作させることができる。windows11は購入する必要ない。
PirikaProとdllをインストールするとMac上でそのまま動作する。
試しに、HSPiPをCrossOverにインストールすると何と動いてしまった。

昔、昔のCrossOverで試した時にはだめだったけど今のやつは動くようだ。(動作保証するわけでは無いが)
ポイントは.Net Frameworkだろう。JAVAのJDKみたいなものか。
計算ルーチンみたいなマシンに依存しないものはマシン用のFrameworkを用意すれば、同じソースコードでどんなマシンでも動作させる事ができる。
そういえば、.Net MAUIという、マルチプラットフォームアプリ用のFrameworkも提供されている。
それなら、今回作ったdllをMacから利用できるはずだ。(CrossOverすらいらない)
もともとはCommand Line Interface(CLI)で使う前提で作り始めたものだし。
ChatGPTに
C# のdllをMac から走らせる .Net MAUIについて簡単な例で教えて
って聞いてみた。
.NET MAUI とは(超短く)
- C# + XAML で
- Mac / Windows / iOS / Android を
- 1つのプロジェクトで動かせる
👉 WinForms の後継ではない
👉 **「クロスプラットフォーム GUI」**が本質
まず必要なもの(Mac)
必須
- macOS
- .NET SDK(8 or 9) ← あなたはすでに入っている
- Visual Studio for Mac は不要(※廃止された)
- VS Code + ターミナルでOK
① MAUI ワークロードを入れる(1回だけ)
ターミナルで:
dotnet workload install maui
確認:
dotnet workload list
maui が出ればOK。
② 最小の MAUI アプリを作る
dotnet new maui -n MauiHello
cd MauiHello
このように丁寧にアプリの作り方を教えてくれる。
これまでのやり取りをベースにこちらのマシンに何がインストールされているかも把握している。(これは少し怖い)
さらに恐ろしいのが。。。。
聞いてもいないのに、本来の目的であるMB6.dllは流用。Macで動作するPirikaProの作り方まで教えてくれる。
PirikaPro / MB6 との関係(重要)
そのまま流用できるもの
- MB6.Core(.NET Standard 2.0) ← 完璧に相性◎
- 計算ロジック
- クラス設計
作り直しが必要なもの
- WinForms の Form / Button / TextBox
System.Windows.Forms
👉 UI だけ MAUI に書き換え
👉 中身(計算)は MB6.Core をそのまま参照
MAUI で MB6.Core を使う例
dotnet add reference ../MB6.Core/MB6.Core.csproj
などなど、丁寧な説明がつく
1) 画面の対応イメージ(WinForms → MAUI)
2) “PirikaProっぽい1画面” のMAUI例
3) MB6.Core を MAUI から呼ぶ(PirikaPro移植の肝)
4) 次にやると一気に“PirikaProらしく”なる改良
設定保存:Preferences(最後の入力値を保持)
画面をタブ化:TabBar / TabbedPage(YMB / Sphere / ActCoef)
入力を一覧化:CollectionView(溶媒リスト、条件リストなど)
計算中のUI:ActivityIndicator(ぐるぐる)
AIを使うと生産性が10倍になる。
実感として思い知らされた。
でも、HSPiP自体.Net Frameworkで動いているなら.Net MAUIに置き換えるのも簡単そうに思える。
そもそも私以外でHSPiPをMacで動かしたい奇特な人間がいるかどうかは疑問だけど。
事の本質は、DEEP Lが言語をどのような向きにでも翻訳するように、MacだWindowsだの言語変換は多分もっとずっと簡単にできるようになる。
WindowsのVSを使っているととても苛つく。
エディターはMacの方が使いやすい(慣れているせいもあるけど)。
Windows専用の良いソフトもある。
そんなものの境が無くなる。
いい時代になったものだ。
大学入試に”情報”とか入ったが、その学生が卒業する頃には、人間がプログラムするなんてありえないことになるだろうな。若い人は可愛そうだ。