ADO.NET Entity Frameworkの次期バージョンの新機能(DDD)

みなさん、こんにちは。今日からはADO.NET Entity Frameworkの次期バージョンの新機能をご紹介していきます。

(現バージョンではモデリングツールなどに若干不具合があるのですが、その辺りもちゃんと改善されます。)尚、次回からは(ブログのタイトル、「雲のごとく」なのに・・・・)今までご紹介できなかったクラウドのプラットフォームなどもご紹介していきたいと思っています。

今日はDDD(Domain-Driven Design)のサポートについてご紹介します。

DDDの詳細については、いろんなところで紹介されていますのでそちらをご参考にしてください。

ちなみに私は以下の書籍を読んでいます。

https://www.amazon.co.jp/%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E9%A7%86%E5%8B%95-Programmer%E2%80%99s-SELECTION-Jimmy-Nilsson/dp/4798116173

非常に簡単にご説明しますと、データ中心設計のようにボトムアップ型でシステムを構築していくのに対して、DDDではドメイン層を中心としてトップダウン型でシステムを構築していくという手法です。そもそもEFはデータとアプリケーションを分離するためのものです。また定義したEntityはアプリケーション側でBEC(Business Entity Class)として利用されることになります。にもかかわらずEntity自体はデータがないと作れない(データに依存してしまう)のでは不便です。

現バージョンではDBオブジェクトありきでEntityを定義していくわけですが、次期バージョンではDBオブジェクトなしでEntityを定義してドメイン層の実装を行い必要なタイミングでDBオブジェクトを生成できるようになる予定です。

 

 

 

Enterprise Applicationアーキテクチャ

 

 

 

まだ開発段階なので確実ではありませんし、画面イメージも出せないので残念ですが、具体的には以下のような手順で開発していくことになります。

1.Entity Data Model Designer(EDMD)でEntity、Property、Associationなどを定義

(この時点ではDBオブジェクトとのマッピングはない。)

2.定義したEntity を使ってビジネスロジックを記述

3.必要なタイミングでDBオブジェクトの生成

EDMDを利用するとEntity、AssociationからDDL文を自動作成可能。またウィザードを実行するとCSDLとSSDLのマッピングも行われる。