Webアプリケーションの作成

プロジェクトはほとんどの場合、バックエンドだけで構成されることはありません。 Lino を使用すると、生成された API を消費する Web アプリケーションも作成でき、エンドユーザーや内部チーム向けのインターフェースを提供できます。


現在、フレームワークは Blazor Web App(レンダリングモード interactive auto)をネイティブにサポートしています。 しかし、アーキテクチャは同じソリューション内で複数のフロントエンドを追加できるよう設計されており、さまざまなシナリオやユーザー層に対応可能です。

Blazor Web App を使用したフロントエンド

フロントエンドを生成する際、Lino は自動的に Blazor Web App プロジェクトを作成し、以下のように構成されます:

  • 簡略化されたルーティング → 標準のナビゲーション構造が既に設定済み。
  • Minimal APIs とのネイティブ統合 → 作成されたエンドポイントを直接利用。
  • 再利用可能な CRUD コンポーネント → 標準化された一覧、作成、編集ページ。
  • 認証・認可のサポート → サービスがセキュリティ設定されている場合。

このフロントエンドは、アプリケーションのモジュールで生成された API を消費する準備が整っており、強い型付けと型指定された HttpClient を通じた自動統合が可能です。

複数のフロントエンド

プロジェクトには必要な数のフロントエンドを含めることができます。 各フロントエンドはソリューション内の新しい Blazor プロジェクトとして追加され、バックエンドで公開されている同じ API を共有します。

シナリオ例:

  • 公開サイト → クライアントや訪問者がアクセス可能なページ。
  • バックオフィス/管理 → オペレーターや管理チーム向けの内部管理パネル。
  • パートナーポータル → パートナー、リセラー、またはサプライヤー専用アクセス。

この分離により、インターフェースの専門化が容易になり、API の利用におけるアーキテクチャの一貫性が維持されます。

Webページの生成

インターフェース開発を加速するために、Lino CLI は次のコマンドを提供します:

lino page new

このコマンドは、バックエンドに接続された Blazor ページを作成し、既定の規約に従います:

  • フォームコンポーネントの生成 → 作成および編集ページ。
  • 自動リスト → インデックスページ(ページネーション付きリスト)。
  • API との直接統合 → 対応するエンドポイントへの自動接続。

これにより、CRUD全体(フロントエンド → API → CQRS → データベース)を手動でコードを繰り返すことなく作成できます。

例えば Order エンティティのページを作成すると、次の構造が生成されます:

MyApp/
└── src/
    └── WebApps/
        └── MySite/
            └── Services/
                └── Pages/
                    └── Orders/
                        └── Registration/
                            ├── Order.razor
                            ├── Order.razor.cs
                            └── Components/
                                ├── Form/
                                │   ├── OrderForm.razor
                                │   ├── OrderForm.razor.cs
                                │   ├── OrderFormExtensions.cs
                                │   └── OrderFormViewModel.cs
                                └── Grid/
                                    ├── OrderGrid.razor
                                    ├── OrderGrid.razor.cs
                                    ├── OrderGridExtensions.cs
                                    └── OrderPagedQueryParams.cs

さらに、OrdersEndpoints のエンドポイントを消費する統合サービスも作成され、エンドツーエンドの通信が保証されます:
フロントエンド → API → Commands/Queries → データベース

このようにして Lino はフルスタック開発の完全なフローを提供し、新機能作成に必要な時間を大幅に短縮します。

処理されていないエラーが発生しました。 再読み込み 🗙