C#でドメイン駆動開発パート4【EntityFrameworkCore+DDD】
What you'll learn
- EntityFrameworkCoreでValueObjectを使う方法を理解する
- EntityFrameworkCoreで複合ValueObjectを使う方法を理解する
- EntityFrameworkCoreでRepositoryを使う方法を理解する
- UnitOfWorkパターンを使ってインスタンスを管理する方法を理解する
- EntityFrameworkCoreのInMemoryを使ってテストコードを書く方法を理解する
- DIツールであるDependencyInjectionの使い方を理解する
Requirements
- EntityFrameworkCore【C#】のコースを受講済みであること
- C#でドメイン駆動開発パート1のコースを受講済みであること
Description
どうもこんにちは、ピーコックアンダーソンです。
本コースではEntityFrameworkCoreと
ドメイン駆動開発のアーキテクチャーを
組み合わせる方法を解説しています。
ドメイン駆動開発のパターンである、
ValueObject、Entity、Repositoryなどを、
EFCoreでどのように組み合わせればいいかを解説しています。
【内容】
①EFCore + ValueObject
EFCoreでは通常intやstringなどの基本型を簡単にマッピングできるようになっていますが、
ValueObjectをマッピングすることもできます。
EFCoreから取り出した時からValueObjectとして扱うことができる方法を解説しています。
②EFCore + Entity
EFCoreでValueObjectを乗せたEntityの作り方を解説しています。
③EFCore + 複合ValueObject
複数の項目で構成されたValueObjectを
EFCoreでマッピングし、1つ値のように扱う
方法を解説しています。
④EFCore + Repository
EFCoreに対応したRepositoryと抽象クラスによる共通化の
方法を解説しています。
⑤UnitOfWorkパターンの適応
UnitOfWorkというパターンを採用することで、
リポジトリやEFCoreとの接続を管理しやすくし、
一貫性を持たせることで、
トランザクションの管理がしやすくなります。
ここではUnitOfWorkの適応方法を解説しています。
⑥EFCore + テストコード
Microsoft.EntityFrameworkCore.InMemoryというツールを使って
テストコードを書く方法を解説しています。
Moqを使わず、データアクセスまでを含めたテストを実現
する方法を解説しています。
⑦DIツールの適応
依存性注入をMicrosoft.Extensions.DependencyInjectionを使って
EFCoreに適応させる方法を解説しています。
現在のデータアクセスの主流である、EFCoreと、
アーキテクチャーの主流であるドメインアーキテクチャーの融合なので、
非常に楽しい学びのあるコースになっていると思います。
興味のある方は是非ご覧になってみてください。
Who this course is for:
- EntityFrameworkCoreを使ってドメインアーキテクチャーでの実装をしたい方
Instructor
20年ほどプログラマーとして活動しています。初期の頃はいろんな現場を転々とするプログラマーで10年ほど経験をつみ,その後,大手メーカーに入社し,C#やSQLServerを中心とした製品開発にて設計,製作,保守,プロジェクトリーダー等を10年近く担当。
知識習得のきっかけは,現場に分かりづらいプログラムコードが散乱しており,それらをわかりやすくするために,オブジェクト指向,ドメイン駆動開発,テスト駆動開発,リファクタリング,デザインパターンの書籍などを読み漁りました。その結果,一つのドメイン駆動開発手法にいまはたどり着き,チームのメンバーに伝えていますが,この知識を大勢の方にお伝えすると,予想以上に喜んで頂けているので,私の学んだ知識をできるだけわかりやすくお伝えして,私のした遠回りをあまりしなくてもいいように,解説していきたいと思っています。