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

2019/04/01(月)Blazor 0.9.0

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

2019/03/24(日)Blazorに未来はあるのか?

特殊分野の専用電卓を作るよう依頼されたことからBlazorの開発環境を入れました。
肝心のプログラムは計算方法調べていたら公式のアプリが無料で提供されていることが分かり締め切りもなくなったのですが、せっかくなので少し遊び始めましたが色々思っていたのと違う。
  • View修正後F5で確認しようとしたらLoading...から始まるくせにViewに修正が反映されていない。
  • RazorといえばASP.NET MVC、ASP.NET MVCと言えばModelにDataAnnotations(個人の感想です)なのに知らんといわれる。
  • C#でASP.NET MVCというよりTypeScriptでRIOTのコンポーネント作るのに似ている気がする
BlazorでDataAnnotations使う方法を検索していて、情報をまとめたプロジェクト見つけましたがすごいことになってます
Blazor + AngularとかXamarinと組み合わせるとかややこし過ぎませんか(^^;)。
BlazorもXamarinもMono上で動くのでBlazorから端末の機能を使おうとした場合にXamarin経由で使えるようですが。

Monacaの環境があるのにBlazorを入れたのは久しぶりにMonacaのクラウドIDEにログインしたらデザイン一新されていたのとテンプレートが色々あって選びきれなかったため。

更にモバイルアプリ用の選択肢が増えた感じ…。
新しいもの好きですがボチボチ振り落とされそうです。
OK キャンセル 確認 その他