1

新しいシステムをゼロから構築し、アプリケーションの設計に取り組んでいます。ドメイン オブジェクトをモデル化するための実行可能なアプローチを検討しています。

プロジェクトに関するいくつかの詳細 - これは、ESRI ArcMap (GIS アプリケーション) に統合されたかなり大規模なデータ入力 WinForms アプリケーションになります。データ アクセスは、ArcMap 独自のデータ アクセス レイヤーを経由する必要があります。データは、カーソル スタイル アクセスを介して取得および保存されます。これはデータを取得する問題ではありませんが、私が知る限り、データベースと直接やり取りできないため、Entity Framework や NHibernate などの ORM ツールは除外されます。

WinForms アプリケーションは、MVP監視コントローラーパターンに従います - ビューはモデルにバインドされます。プレゼンターもモデルを変更します。したがって、Domain オブジェクトは以下をサポートする必要があります。

  • 変更通知
  • 追跡を変更します。最低限、モデルが変更されたかどうかを知りたいです。

これまでの私のオプション:

  1. POCOS を手で書きます。+長所/短所:
    • +実行可能であるべき
    • +ビジネスロジックに対応可能
    • +バインド可能
    • ・手作業が多い
      • -INotifyPropertyChange インターフェイスを介した通知の変更。
      • -手動で維持する必要がある IsDirty プロパティによる変更追跡。
  2. POCO によってラップされた ADO.NET DataSet。+長所/短所:
    • +変更通知「無料」
    • +追跡を「無料で」変更
    • +バインド可能
    • ・なんかゴチャゴチャした感じ

私が除外したこと:

  • Entity Framework - 私は .net Framework 3.5 を使用しているため、Code First はサポートされていません。私の知る限り、ドメイン ロジックの処理は非常に面倒です (イベント ハンドラー)。

他に良いオプションはありますか?おそらくコード生成(ツールに関する提案はありますか?)、フレームワークですか?知恵の言葉、アドバイス?

4

2 に答える 2

0

この本を読ん でください

于 2014-09-18T14:54:32.980 に答える
0

私の POCO は単なる「ダム」データ転送オブジェクトであり、ビジネス ロジックはまったく含まれていません。これらは、私の UI に近い別のダム ダウン オブジェクトのセットであるため、私のモデルでもありません。データ アクセス レイヤーにデータでいっぱいの DTO を送り込み、ビジネス ロジックを処理するためにサービス レイヤーに渡しますが、プレゼンター/コントローラーにのみ転送され、モデルを通じて UI に必要な情報を送り込むだけです。 . あなたのシナリオでは、ArcMap のデータ アクセス レイヤーを通過する必要があるため、これはより論理的だと思います。プレゼンテーション層にデータを永続化し、そこで変更追跡を行うことができます。

于 2011-09-05T14:55:16.110 に答える