最期の記事からおよそ8年、覚えている方は皆無かと思いますが。
はてなでブログを始めましたので良ければ宜しくお願いします。
もろもろ
https://yokoken.hatenablog.com/
DDDProjector - Home
フレームワークと言っても、クラスライブラリとしてではなく、C# ソリューション (を作成するツール) として提供します。なので、フレームワークのソースコードを直接カスタマイズすることが可能です。
サンプルアプリではデータストアに SQL CE 4.0、プレゼンテーション技術に Windows フォームを使用していましたが、このフレームワークでは特定のデータストア・プレゼンテーション技術には依存していません。
ツールを起動すると、ソリューション名や各プロジェクト名・名前空間の入力フォームが表示されます。
各フィールドを入力後、作成ボタンを押すと保存先選択ダイアログが出てきます。保存先を決定するとそこにソリューションが作成されます。
なお、入力値の妥当性検証は一切行っていないので注意してください。
これから少しずつ解説記事を公開していこうと思います。
ただ、プロジェクトのテンプレートは作成できてもソリューションのテンプレートは作成できないっぽいので、別の形を考えています。(複数プロジェクトを一つのテンプレートにすることはできるみたいですが、ソリューションフォルダの自由度が低いので。)
Sandcastle で作った、アプリケーションアーキテクチャに関する説明ドキュメントも同梱してあります。
# ユニットテストは用意していません。
DDD サンプル - ToDoList - Home
- 列挙型のプロパティをマッピングできない
- クエリー式で、列挙値が扱えない (int として扱わなければいけない)
- クエリー式で、エンティティを直接比較できない (主キー等のプロパティを比較しなければいけない)
- コレクションの順序を保存できない (順序を自分で管理する必要がある)
- 関連オブジェクトの読み込みが非透過的
- 関連オブジェクトの遅延読み込みが使いづらい (コレクションだけ遅延読み込みにするとかできない。そのためプロキシ作成を容認しなければいけない)
- NHibernate の cascade=all-delete-orphan に相当する機能がない (集約内の子エンティティの削除はパーシステンスレイヤへ明示的に指示せずにできるべき)
Entity Framework 4.1 は試してないけど、この辺はそのままっぽい感じ
2番目のはロジックで弾きだした値を列挙型で扱おうとしてダメだった
最後のだけは何とかならんものか…