2022/04/17(日)Blazor電卓にゴミ箱追加

長らく放置中だったcrcのごみ箱がやっと完成しました。
crc-trash.png


当初履歴ができればゴミ箱も同じ、というイメージでしたが履歴へ移動するのはカード(Card)だけですが、ごみ箱はカード上の行(Line)単位で削除可能にしようとしたら削除ボタンががCardコンポーネント(CalcCard.razor)上にあるわけで、子コンポーネントから親のごみ箱データにどうやってアクセスさせる?
昔の人間なのでCardのコンストラクタでゴミ箱注入? → なんかダサい感じ。
今風にゴミ箱をサービス化して注入できそう。 → 設計が変わるので結構書き直しが大変そう。
で結果、パラメータを使い子から親へ削除したい行だけを渡し、削除自体は親が行うようにしました。

次の課題は多言語化でしょうか。

次回用にメモ
githubにプッシュして、github-pagesも更新かかったのにcrcにアクセスしてF5押してもゴミ箱機能せず焦りましたがしばらくすると更新反映されました。
PCにインストールしていたPWA版も何もしなくて最新版が取得できました。

久しぶりにコード触ってLine(線)じゃなくてRow(行)じゃないの?とリファクタリングしようかと迷いましたが、Carriage ReturnからLine FeedやNew Lineへ繋がりLineにしたのでした。忘れないように(^^;)

2021/04/17(土)ASP.NET Core Blazor WebAssemblyでPWA

ちょっと遠回りしましたが、思ったより簡単にできました。
ブラウザ(下記はEdge)でURLを開くとインストール用のアイコンが表示。
20210417001.png


アイコンをクリックすると「インストール」ボタンが表示される。
20210417002.png


インストール完了
20210417004.png


起動
20210417003.png


ちゃんとステータスバーにもアイコンが表示される。
20210417005.png


スマホで試すとネイティブの電卓と比べまだまだ動きがWebアプリ、って感じですがデスクトップアプリとしては、WPF勉強しかけてましたがもういいかな?

やったこと

ホスト先を探す

httpsでアクセスできるホスト先が必要になりますが、GitHub Pages を使うことに。
こちらを使わせてもらってできたのが3.2.0の通常のBlazor WebAssemblyプログラム。
ソースを更新すると自動でGitHub Pagesの方も更新され初めてのワークフローに感動。

ASP.NET Core5.0に移行

ここを見てPWA化しようとしたら最新版にアップデートしていない場合は使っているフレームワークのバージョン指定して取得しろとあって最新は5.0っぽいことが判明。

出来立てほやほやアプリでバージョンが余りにも古すぎる気がして最新版にあげることに。しばらく使っていなかったVisual Studio最新版にしていたのですが、プロジェクトのターゲットフレームワーク選択画面に5.0が出てこないのでここに従いSDK 5.0を入れて無事アップグレード完了。

PWA化

再度ここを見てPWA化。ファイルの追加と追加したファイルの参照追加。

ワークフローの修正

なんか変わった気がしないな、と思っていたらActionsのworkflow実行時にエラーになってました。エラーメールも届いてました。
20210417006.png

gh-pages.ymlを二度ほど適当に修正してエラーが3回分。
しかも競合発生してgitで初めての競合解決しました。TFSと似たようなマージツールが出てきてくれて助かりました。

dotnet-versionを505ではなく5.0.202にしないとダメなのでした。
20210417007.png

Blazor

2019/04/24
Browser + Razor = Blazor!
ブラウザで動くアプリが(JavaScriptではなく)C#で書ける。
XamarinチームがMonoをブラウザ(WebAssembly)上で動かすことに成功していたため、それに乗っかった。
Knockout.jsの開発者であるSteve Sandersonが主になって開発。
Server-side BlazorSignalR経由でサーバーで実行される(Razor Componentsと呼ばれていたことも)
Client-side BlazorWebAssembly上でブラウザで実行される

Link


Blazor関連記事

2019/04/01(月)Blazor 0.9.0

Blazorの新規プロジェクトを作ろうとしたらビルド失敗。
「コード -2147450730 で終了しました」という見たことの有るような無いようなエラー。
前回苦労した時は英語だったのが日本語になっていました。SDKが気に入らない時のエラーのようです。
確認したら3月にBlazor 0.9.0が出ていました。
SDKを入れなおすと直りそうですが、今度は現在動いている方のプロジェクトをUpgradeする必要ありそうです。
正式リリースまで待とうかな…。
OK キャンセル 確認 その他