[英]wcf service and asp .net presentation layer
我有 wcf 服務,它負責數據庫交互和業務邏輯。 它還具有用於業務對象的 class 庫。 我想要 wcf 服務返回對象列表。 我是否應該為我的 asp .net 項目(正在使用服務)創建另一個 class 業務對象庫,以便 asp .net 項目可以理解 object 類型?
您應該在服務和 asp.net 項目之間共享 class object 庫。 這就像您整個項目的“中間件”。 這將避免不必要的重復。 基本上,只需將所有業務對象移動到不同的項目並將其包含到 wcf 和 asp.net 解決方案中。
並不真地。 當您通過 visual studio 使用添加服務引用添加對 web 服務的引用時,您將獲得每個 object 的代理類,以在 web 服務中使用
服務的標准做法是返回DTO而不是業務對象:在表示層中使用您的業務對象會將其與業務邏輯緊密耦合,並且大多數時候您不希望這種耦合。 還要記住,您通過網絡發送的所有內容都應該是可序列化的,您的業務對象可能是可序列化的,也可能不是可序列化的。
所以我會說是的,你很可能想用 DTO 創建一個不同的庫,並將其中的類用作數據契約。 重復並不是真正的問題,因為它保證了合同的一定穩定性,並且可以使用AutoMapper等工具將您的業務對象 map 發送到 DTO。
讓我們考慮在表示層 (ASP.NET) 和服務層之間共享一個公共業務 class 庫的方法的優點和缺點。
優點:
缺點:
將此與創建 DTO 庫進行比較:
優點:
缺點:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.