「Blazorアプリ 入門2 (2025/03/19)」


前回は
ASP.NET Blazorとは、HTML/Javascriptの中でC#を実行する機能
だと紹介しました。






・・・で。
それだけだと
  要するに、Web系のお仕事? (私には関係ないな)
と思うのが、素直な感想だと思います。




ところが。Blazorを使うと面白い物が作れます。
実際にやってみましょう。

まずはわかりやすい説明のため。
シンプルな「電卓」を作ります。

Visual Studioから「WPF アプリケーション ((最も標準的なWindows用アプリの形式))」を
選んで雛形を作る。


シンプルなアプリなので、変更するファイルは二つのみ。

一つはMainWindow.xaml


ここは"GUI"。要するに"見た目"の定義してる場所です。


もう一つはMainWindow.xaml.cs


内部の動作。ロジック部分です。




この二つを合わせてコンパイルすると、

このようなアプリが完成します。
説明をわかりやすくするため、あえてボタンは4つのみとしております。
  (ここまでできればフル機能電卓を作るのも簡単)


・・・で。このアプリはWindowsでしか動きません。

というのも。Windowsアプリのソースコードは
  Windowsアプリ = XAML (見た目) + C# (ロジック)
で出来ている。

そのXAML (見た目) 部分が、
Windows特有の機能。
他のOSには存在しないから同じ.exeを動かすことが無理なんですね。



さて。さきほどのアプリの
Blazor版を作ってみましょう。

難しいことはありません。やる事はほぼ同じ。

Visual Studioから「Blazor サーバーアプリ」を
選んで雛形を作る。



今度は、Index.razorというファイルを選んで編集します。

BlazorはC#が動きますのでロジック部分は完全に同じ。

あとはGUIパートを
  XAML → html
に書き直すだけ。簡単です。




これを走らせたもの。

うん、今度はアプリがブラウザに表示されるようになりました。
 (右に見えるのはコンソール。.exeの本体はこっちに移動した。)


要するに。Blazorバージョンとは
  Blazorアプリ = HTML (見た目) + C# (ロジック)
で構成されていると思って、まぁいいです。
  

・・・で。
アプリを二つに分解して、
物事をただややこしくしたように
見えますが・・・が。^^;


なんとこれ





Linuxでも動いちゃうんです。

"!?"

いや、それどころか。
  Android / iOS / iPad / タブレット / Switch / PS5 / Linux / FreeBSD....
ブラウザが動く場所なら、どこでも平気で動きます(※)。

なぜならBlazorはそもそも
「ブラウザ」で動く技術なので。


(※厳密に言えばちょっと違いますが。次回にそこらの技術的な側面を説明します。)



これにはビックリ。

プログラミングしたことのある方ならわかると思いますが。^^A;

GUIアプリを、マルチプラットフォームで動かす」って
めっっっちゃ面倒なんです。


出来ないことはないですが。 
各種OS用の開発環境 / 検証 / テスト / サポート を個別に用意しなければいけない。
それが面倒。


もしくは、全てのOSで動くような共通フレームワークを使う手法もありますが
(Unoプラットフォームなど)。

それはそれで。「どのOSでも動くような独自の言語」を
強制されてめっちゃ動きづらくなる。

どっちみち。
ネイティブ開発に比べれば"かなり"面倒になります。





元の話に戻りますが。

何故、こんな事ができちゃうのかと言いますと。
思い出してください。

 Windowsアプリ = XAML (見た目) + C# (ロジック)
でした。

ここで「XAMLはWindows特有の機能」だったので、
他のOSでは動かないのでした。




でもこれがBlazorだと
  Blazorアプリ = HTML (見た目) + C# (ロジック)



そしてHTML(ブラウザ)はどのOSでも同じ動作をする。

完全に統一された規格なので。
Blazorで作ったアプリは、
どのプラットフォームでも動作する。そういう仕組です。

たった一つのコードから
どんな環境でも動くユニバーサル・アプリを作れるようになる。
それがBlazorの最大の強みでしょう!



まとめ:
Blazorには二つの側面がある。

 ・HTML/Javascriptの中でC#で実行する機能。
  Web開発が楽になる。


 ・C#でユニバーサルアプリを作れる。
  しかも必要なのは既存C#アプリの  XAML → .html を書き直す部分だけ。
  数時間の作業。非常に低コストで移植できる。


次回にもうちょっとBlazorのお話をしましょう。