2022/04/17(日)Blazor電卓にゴミ箱追加
当初履歴ができればゴミ箱も同じ、というイメージでしたが履歴へ移動するのはカード(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を開くとインストール用のアイコンが表示。
アイコンをクリックすると「インストール」ボタンが表示される。
インストール完了
起動
ちゃんとステータスバーにもアイコンが表示される。
スマホで試すとネイティブの電卓と比べまだまだ動きが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実行時にエラーになってました。エラーメールも届いてました。gh-pages.ymlを二度ほど適当に修正してエラーが3回分。
しかも競合発生してgitで初めての競合解決しました。TFSと似たようなマージツールが出てきてくれて助かりました。
dotnet-versionを505ではなく5.0.202にしないとダメなのでした。
2020/07/29(水)Arctic Code Vault Contributor
ほとんど初めてのRiot.jsを使った書きかけの恥ずかしいコードが1000年後まで残るようアーカイブされてしまったらしい(^^;)。
よりによってそれを持っていきますか、というコードを…。
スター一つもついていないのに、と思ったらコミットのタイミングが新しいのは丸どりみたいですね。
障害起きても戻してもらえそうですが、なんという大胆な(無駄な)ことを…。
4連休雨だったので正式リリースされたBlazorをいじりましたが、ずいぶん使いやすくなっていて(アノテーション等足りなかったものがちゃんとそろっている)、もうRiotを触ること無くなりそうな予感です。
2020/05/20(水)Blazor WebAssemblyが遂に正式リリース
最後に触ってからもう一年以上になります。
Xamarinにとって代わることは無いでしょうが、モバイルアプリの開発環境の選択肢の一つにはなるのでしょうか。
2019/04/01(月)Blazor 0.9.0
「コード -2147450730 で終了しました」という見たことの有るような無いようなエラー。
前回苦労した時は英語だったのが日本語になっていました。SDKが気に入らない時のエラーのようです。
確認したら3月にBlazor 0.9.0が出ていました。
SDKを入れなおすと直りそうですが、今度は現在動いている方のプロジェクトをUpgradeする必要ありそうです。
正式リリースまで待とうかな…。