「Blazorアプリ勉強中 (2025/03/05)」
最近 ASP.NET Blazorというフレームワークに興味を持って、
色々勉強しています。

ASP.NET Blazorとは何ぞや?
説明しますと・・・
・・
・
言葉で説明するより、
実物を見た方がわかりやすいですね。^^;
まずはこんな感じで、

VisualStudioにBlazorのSDKをインストールして
テンプレートから「Blazor Server アプリ」を選びます。
すると、アプリケーションの雛形が生成されますので。
それを数行いじって


あとはボタン一発。
「ビルド → 実行」すると

こんな感じのWebページが生成され、
表示されます。
はい、要するに。
HTML & 関数を使って、HTMLの中に文字列を挿入
→ .htmlを生成。
→ .htmlをローカルサーバーに置いて、
→ それをブラウザで表示
をやっているんですね。
・・・それだけ聞くと。
「えっ、それだけ?」
と思われるでしょうが。^^;
もっと凝った事をしてみましょう。
さきほどのfunction部分を、以下のように書き換えます。


・・・お?
これは面白い。
コードの部分はC#で記述しています。
しかも完全なC#です。
C#ができることなら、なんでもできます。
関数 / 文法 / プロジェクト構造 / 内部ライブラリ/外部ライブラリ
でもHTMLの中で動かせるようになります。
(ただしSystem.Window.Windowのような。
デスクトップ/ウィンドウ/WPFに関する機能や、
OSに強く依存するのはライブラリが通ってないので不可。
そういうのでも
[DllImport("user32.dll")]
を使ってAPIを直接叩けば使えるようになります。)
デスクトップ/ウィンドウ/WPFに関する機能や、
OSに強く依存するのはライブラリが通ってないので不可。
そういうのでも
[DllImport("user32.dll")]
を使ってAPIを直接叩けば使えるようになります。)
その実行結果。

確かに、動いてますね。
それだけではなく、
<button onclick=@csharp_function>
@code
{
int csharp_function()
{
~
}
}
のような記述をすれば。@code
{
int csharp_function()
{
~
}
}
HTML → C#関数の呼び出し
へと繋げることもできます。
つまり、旧来は。
Webで動かす為のプログラム書こうと思えば
Javascriptが必須でした。
正直、それはとても。スパゲティコードになりがち。^^A;
Blazorを使うと。
なんと! C#でWebプログラムを書けるようになるわけです。
そして何よりも。

C#なので文法チェック、誤字脱字チェック、ライブラリが通っているかなど。
可能な限りの事前エラーチェックをやってくれる。
もちろん、classの設計などもできます。
こりゃ凄い。
よし・・・・じゃあさらに踏み込んで。
これでどうだ!


実行結果:

わおっ!
なんとローカルファイルを、stringとして読み込み。
.htmlに表示してしまいました。
ファイルの書き込みもできます。
いやいや。これはかなりの物ですよ。
通常、ブラウザ&HTML の組み合わせでは。
ローカルファイルの読み書きは(セキュリティ上の理由で)
絶対にできないんです。
できないことはないですが、とにかく面倒。
通常、ブラウザ&HTML の組み合わせでは。
ローカルファイルの読み書きは(セキュリティ上の理由で)
絶対にできないんです。
無論。やろうと思えばできます。
でもファイルを読み込もうと思えば、ファイルをURLに変換して。
サーバーを通して読み込む必要があるし。
ファイルを書き込むのはPOSTやCGIを通してもっと大変になる。
でもファイルを読み込もうと思えば、ファイルをURLに変換して。
サーバーを通して読み込む必要があるし。
ファイルを書き込むのはPOSTやCGIを通してもっと大変になる。
できないことはないですが、とにかく面倒。
最後に。
・・・誤解しないでいただきたいですが。
この「Blazor」によるC#の実行技術自体は
何も新しくありません。^^;
要するにやっていることは
html
→ onclickイベント
→ .exeを発動して、C#のコードを実行する
→ 出力をブラウザに伝える
と同等。
それ自体はCommon Gateway Interface。
いわゆるCGIによる動的Webページ。
1993年からあった古~~い技術です。
何も目新しいことではありません。
Blazorの最大のメリットは:
開発者は
ロジック部分にC#
+ GUI部分に.html
コーディングのみに専念して。
「それ以外の面倒なCGI通信部分は。Blazorが全部やってくれます」
手紙 → eメールになったような。
どちらでもできる事は同じなんですが。
圧倒的に楽になった! その為のフレームワークと言っても良いでしょう。
次回、さらなるBlazorの応用について解説してゆきます。

電卓は序の口。
プロジェクトを進めてゆくと、わりと「驚き」の事ができるようになります。
個人的には。将来的には全てのPCアプリ (.exe)が
Blazorバージョンに置き換わってもおかしくはない。
パラダイム・シフトが起きるかも、と思ってます。