ミルク蒼屋のチラシ

Colloid(コロイド)が何か色々と残したりするブログです

Blazor - app building workshopをのんべんだらりとやってみる その3

日記です。

やったこと

Session #1をやってみた

GitHubからプロジェクトをクローンして、とりあえず実行してみる
f:id:Colloid:20200510132816p:plain

どうやらこちらもWebAssembly版だと思われ

f:id:Colloid:20200510173312p:plain
プロジェクトの構成はこんな形で、.ServerがWebAPIの機能部分ぽい
で、ClientからServerへAPIを使ってピザの情報を取得しようみたいな事をこの章ではやった

結果はこんな感じ

f:id:Colloid:20200511225500p:plain
夜にみるとテロ

感想というか整理

そもそもWebAssemblyってなんだっけ

この記事が一番わかりやすい

qiita.com

古の時代はJavaScriptは飾りです、偉い人(ryみたいな頃から
現代はJavaScriptでなんでもやり、速さを求める時代となった
そこで生まれたのがWebAssembly。
C#で作りあげたdllをブラウザがDLして、WebAssemblyが解釈して実現させてるという感じなんだろうか
実際にピザアプリをChromeで実行し、F12でネットワークみてるとDLLのパスが出てくる
これを200でGetしてるので、それに対してwasmがいい感じにやってるという認識

時代は進化してるなぁと感じられ

APIはどこからやってきた?

前述の通り、BlazingPizza.ServerAPIのコアとなる部分
今回はメニュー画面にピザを表示するという処理だが、そのピザ情報取得するための処理がBlazingPizza.Serverにあたる
Client側ではHTTPで呼び出してるだけ
↓Index.razor

protected override async Task OnInitializedAsync()
{
    specials = await HttpClient.GetFromJsonAsync<List<PizzaSpecial>>("specials");
}

このspecialsがBlazingPizza.ServerSpecialsControllerで定義されていたという

f:id:Colloid:20200511230258p:plain
スクショで許して

なるほどね
ちなみにデータはSQLite製である

気になったのは、何故WebAPI機能面はBlazor製なのか
ASP.NETで普通のWebAPIも作れたはずでは
まさかBlazorはそんなフロントエンドな所ばかりじゃない!Serverもいけるのよというアピール的な感じなのか
そんな事を思いつつ、今日はこの辺にて