我從頭開始構建新的系統並致力於應用程序的設計。我正在尋找可行的方法來建模我的域對象。爲WinForms MVP應用程序實現業務對象
該項目的一些細節 - 這將是一個相當大的數據錄入WinForms應用程序,集成到ESRI ArcMap(GIS應用程序)中。數據訪問必須經過ArcMap自己的數據訪問層 - 通過光標樣式訪問來檢索和保存數據。這不是一個獲取數據的問題,但據我所知,這將ORM工具排除在Entity Framework和NHibernate之外,因爲我無法直接與數據庫交互。
WinForms應用程序將遵循MVP Supervising Controller模式 - 視圖將綁定到模型。演示者也將修改模型。因此域對象應支持以下內容:
- 更改通知
- 更改跟蹤。至少我想知道我的模型是否已經改變。
我的選擇至今:
- 手工編寫 POCOS。 +優點/ -Cons:
- +應該是可行的
- +可以通過INotifyPropertyChange接口適應業務邏輯
- +可綁定
- 體力勞動的-Lots
- - 更改通知。
- - 通過必須手動維護的IsDirty屬性更改跟蹤。
- ADO.NET數據集由波蘇斯包裹。 +優點/ -Cons:
- +變更通知 「免費」
- +更改跟蹤 「免費」
- +可綁定
- -Feels那種凌亂
我已經排除的:
- 實體框架 - 我在.NET Framework 3.5上,所以沒有Code First支持。據我所知,處理域邏輯非常混亂 - 事件處理程序。
還有其他不錯的選擇嗎?也許代碼生成(對工具的任何建議?),一些框架?智慧的話,建議?