(1/30)みんなで学ぶBlazor:初めてのBlazor

(1/30)みんなで学ぶBlazor:初めてのBlazor

筆者はソフトウェア業界に触れてからまだ日が浅く、これまでに3つのアーキテクチャに触れてきました

最終更新 2021/12/09 22:35
StrayaWorker
読了目安 2 分
カテゴリ
Blazor
テーマ
一緒に学ぶBlazorシリーズ
タグ
.NET C# ASP.NET Core Blazor アーキテクチャ設計

筆者がソフトウェア業界に携わった期間は長くなく、これまでにASP.NET MVC、ASP.NET Core & Blazor、ASP.NET Core & Angularという3つのアーキテクチャに触れてきました。ASP.NET MVCは筆者がソフトウェア業界に入ったばかりの新人時代で、先輩の指導のもとでプロジェクトを完了したため、あまり実感はなく、フロントエンドとバックエンドの違いや、フロントエンドがHTTP Requestでバックエンドからデータを取得し、バックエンドがデータを返し、フロントエンドが結果をページに表示する程度の理解しかありませんでした。

プロジェクトが終盤に差し掛かった頃、主管が強く推進する方針転換によりASP.NET Core & Blazorに移行し、筆者にテンプレート作成が任されました。ネット上のリソースをかき集めて何とか使えるアーキテクチャを構築したところ、BlazorはASP.NET MVCとは大きく異なり、フロントエンドに弱い型のJavaScriptが不要で、フロントエンドもバックエンドも強い型の世界であることに気づきました。これは筆者の怠け者な性格に大いに役立ちました。しかし、残念ながらその後の顧客要件により、ASP.NET Core & Angularに切り替えることになり、Blazorを深く学ぶことはできませんでした。

とはいえ、失うものがあれば得るものもあります。新しいプロジェクトの高いプレッシャーと同僚の指導のもと、AngularのModule、Componentの階層構造や、ObservableがAjaxに似た概念であることを大まかに理解しました。まだ半分しか理解できていませんが、Angularにはかなり慣れ、Componentの概念がBlazorと似ていること、つまり異なる道を辿っても同じ目的地に至ることを発見しました。

筆者が鉄人レースに参加する目的は経験を記録することにあるため、一部の記述はやや冗長になるかもしれません。また、ソフトウェア業界での経験は豊富ではありませんので、記事の内容に誤りがあれば、遠慮なくご指摘いただければ幸いです。

今回の鉄人レースでは、Blazorを使ってユーザーがログを入力できるWebサイトを作成しようと考えています。カバーする予定の項目は以下の通りです。

  1. Blazorの概要
  2. Blazor Server、Blazor WebAssemblyの2つのホスティングモードとプロジェクト構成
  3. Componentコンポーネントの紹介、イベント処理
  4. ASP.NET Core
  5. EF Core
  6. ログイン、認可

BlazorはC#で記述します。VBやF#でも記述可能ですが、筆者はC#に慣れています。C#は.NETフレームワークに属し、.NETフレームワークはVisual Studioでの開発が便利なため、Visual Studio(バージョン.NET 5)を使用します。ASP.NET、.NET Framework、NET Coreの違いについては、以前誰かが詳しく説明しているのを見て非常に参考になりました。時間が許せば、後日共有する予定です。また、プロセスではgitをバージョン管理ツールとして使用し、最終的なコードはGitHubに公開します。

GitHubリンク

Visual Studioダウンロードリンク

注:本記事のコードは .NET 6 + Visual Studio 2022 でリファクタリングされています。元のリンクからリファクタリング後のコードと比較学習できます。ご一読ありがとうございます。原作者を応援します。

さらに探索

関連読書

その他の記事
同じカテゴリ / 同じタグ 2021/12/25

(29/30)みんなで学ぶBlazor:Blazor単体テスト

システム開発において最も退屈なプロセスは、おそらくバグ修正です。特に、null オブジェクトにアクセスしようとするエラー(`Object reference not set to an instance of an object.`)は、多くの初心者が最初に直面する問題です。退屈なバグ修正から解放されるために、この記事では「単体テスト」を紹介します。

続きを読む
同じカテゴリ / 同じタグ 2021/12/25

(28/30)みんなで学ぶBlazor:ポリシーベースの認可

以前に「ASP.NET Core Identity」は「Claim」ベースの検証を使用すると述べましたが、実は「ASP.NET Core Identity」には異なる種類の認可方法があります。最も簡単な「ログイン認可」「ロール認可」「Claim認可」ですが、これらはすべて同じ方法で実現されています:原則認可(ポリシーベースの認可)です。

続きを読む