新しいシステムをゼロから構築し、アプリケーションの設計に取り組んでいます。ドメイン オブジェクトをモデル化するための実行可能なアプローチを検討しています。
プロジェクトに関するいくつかの詳細 - これは、ESRI ArcMap (GIS アプリケーション) に統合されたかなり大規模なデータ入力 WinForms アプリケーションになります。データ アクセスは、ArcMap 独自のデータ アクセス レイヤーを経由する必要があります。データは、カーソル スタイル アクセスを介して取得および保存されます。これはデータを取得する問題ではありませんが、私が知る限り、データベースと直接やり取りできないため、Entity Framework や NHibernate などの ORM ツールは除外されます。
WinForms アプリケーションは、MVP監視コントローラーパターンに従います - ビューはモデルにバインドされます。プレゼンターもモデルを変更します。したがって、Domain オブジェクトは以下をサポートする必要があります。
- 変更通知
- 追跡を変更します。最低限、モデルが変更されたかどうかを知りたいです。
これまでの私のオプション:
- POCOS を手で書きます。+長所/短所:
- +実行可能であるべき
- +ビジネスロジックに対応可能
- +バインド可能
- ・手作業が多い
- -INotifyPropertyChange インターフェイスを介した通知の変更。
- -手動で維持する必要がある IsDirty プロパティによる変更追跡。
- POCO によってラップされた ADO.NET DataSet。+長所/短所:
- +変更通知「無料」
- +追跡を「無料で」変更
- +バインド可能
- ・なんかゴチャゴチャした感じ
私が除外したこと:
- Entity Framework - 私は .net Framework 3.5 を使用しているため、Code First はサポートされていません。私の知る限り、ドメイン ロジックの処理は非常に面倒です (イベント ハンドラー)。
他に良いオプションはありますか?おそらくコード生成(ツールに関する提案はありますか?)、フレームワークですか?知恵の言葉、アドバイス?