ASP.NET Core + EF
ASP.NET Core を元にしたアプリケーション開発サンプルです。
本サンプルは開発フレームワークというよりも、開発時の初期テンプレート的扱いで利用可能です。
本サンプルはAPI機能のみ有しています。
UI側の実装サンプルについてはsample-ui-vue / sample-ui-reactを参照してください。
オーソドックスな三層モデルですが、横断的な解釈としてインフラ層を考えています。
レイヤ | 特徴 |
---|---|
UI | ユースケース処理を公開(必要に応じてリモーティングや外部サイトを連携) |
アプリケーション | ユースケース処理を集約(外部リソースアクセスも含む) |
ドメイン | 純粋なドメイン処理(外部リソースに依存しない) |
インフラ | DI コンテナや ORM 、各種ライブラリ、メッセージリソースの提供 |
UI 層の公開処理は通常 Razor を用いて行いますが、本サンプルでは異なる種類のクライアント利用を想定して RESTfulAPI での API 提供のみをおこないます。(利用クライアントは別途用意する必要があります)
ASP.NET Core は様々な利用方法が可能ですが、本サンプルでは以下のポリシーで利用します。
TBD
TBD
パッケージ/リソース構成については以下を参照してください。
Sample
Context … インフラ層
Controllers … UI層
Models … ドメイン層
Usecases … アプリケーション層
Utils … 汎用ユーティリティ
- config.json … プロジェクト設定情報
- project.json … プロジェクト構成定義
- DependencyInjection.cs … DI定義
- Program.cs … 実行可能な起動クラス
- Startup.cs … 起動構成定義クラス
Sample.Tests … テストプロジェクト
サンプルユースケースとしては以下のようなシンプルな流れを想定します。
サンプルなので、DB は SQLite を利用したファイルベースにしています。実際の開発用途では SQLServer などに変更してください。
開発時は最新の Visual Studio を入れてしまうのが簡単でオススメです。過去バージョン等でインポートが難しいようであれば Visual Studio Code を利用してください。
https://www.microsoft.com/net/core#windows
環境構築後に sample-aspnet-api.sln をダブルクリックで Visual Studio からアプリケーションを実行できます。
開発時は Visual Studio Code を入れてしまうのが良いですが、Mac 上での実行確認だけならコンソールベースで十分です。
https://www.microsoft.com/net/core#macos
動作確認手順は以下を参考にしてください。
export ASPNETCORE_ENVIRONMENT=Development
で起動変数を開発モードにdotnet run
を実行してアプリケーションを起動※テスト確認したいなら Sample.Test 直下へ移動して、 dotnet test
を実行してください。
ASP.NET Core ベースの Identity 実装がまだ完全に消化できていないので一旦コメントアウト
Resources 配下のクラスを利用。