我有一個會議對象,它構成了一個調度系統的基礎,其中gridviews用於顯示重要信息。這是爲了安排員工參加會議,並讓員工查看已安排的內容。服務層DTO - 大型複雜交互式類報表對象
我一直在嘗試遵循DDD原則,但我很難知道從服務層傳遞到系統的顯示區域的內容。這是因爲時間表可能很大,並且實際上由系統的許多不同元素組成。例如。客戶名稱,地址,案例信息,組等等,這些都是會議安排人員作出決定所需要的。
除此之外,調度程序需要更改此調度內的值,並將其傳遞迴服務層(例如,從下拉菜單中分配員工,也許是更改組等)。所以,這些信息並不是真正的「只讀」 - 它需要與之交互。即。這不僅僅是一個報告。
我們當前的方法是從SQL中填充一個扁平化的「計劃對象」,它由不同領域對象的小部分構成。這是一個相當複雜的查詢。在進行更改後,會將其傳回服務層,服務將檢索有問題的域對象,並使用來自DTO的信息在域對象上激發業務方法。
我的問題是,這是正確的方法?即。繼續從SQL生成大型自定義對象,然後從服務層傳遞到表現層對象,這些對象與View Models很相似?
UPDATE由於答案
爲了給量實體的想法/聚集參與的關係。 (這是一個混淆的例子,這樣的關係在這裏是重要的事情)
客戶端是一個默認組
客戶端有一個開放的情況下,但許多封閉
案例有很多會議
會議有許多分配員工
相約ING有很多理由
會議能獲得計劃到不同的組
員工可以與許多組相關聯。
該計劃需要加載屬於與該員工處於相同組中的患者的未決病例的所有會議。
調度程序可以查看客戶名稱,客戶地址,個案信息,MeetingTime,MeetingType,MeetingReasons,scheduledGroup(s)(showstrail),分配的員工(也包含隱藏的員工ID)。
可編輯欄位分配員工下拉菜單和預定組。
- 時間表最多可以有兩百行。
- DTO即將從WCF下來,所以域模型該服務層上方訪問,並且不低於。
- 領域模型的業務電話,基於傳回DTO值服務利用,以及資料庫處理插入/更新。
所以,我想更新中,使用查詢來填充它包含了所有上述的可接受傳遞下去作爲一個合併的DTO對象?如果不是,你會如何處理它? (給服務層一些示例調用,並解釋了一些關於如何設想ORM獲取數據的方法,以記住性能)
這個問題涉及太多,你最好問一個問題,至少切割含量降低到四分之一。現在我會忘記DDD和SOA,上面描述的不是DDD或SOA。通過Web服務(尤其是WCF)暴露應用程序層的解決方案會帶來很多副作用,如果您要走這條路線,那麼我會設計一個可以工作的解決方案(至少在此期間),並忘記所有首字母縮略詞。你有沒有考慮建立一個響應式網站?這將爲您提供適用於臺式機,手機和平板電腦的解決方案。 –
嗨,我們已經有一個網站,適用於所有設備。已經做出決定利用移動設備上的本地優勢(不是我的決定),因此它將成爲另一個團隊,我們正在提供一個服務層。 – Milambardo
另外 - 我會編輯問題。 – Milambardo