那麼問題來了:1.什麼是dto?2.dto的好處是什麼?
一.dto
dto (data transfer object):資料轉換物件,也就是用來傳遞資料用的。
dto的好處:
1.在ef的codefirst的model中,我們經常會使用導航屬性,但是使用導航屬性,帶來方便的同時,經常會遇到將資料序列化的問題,也就是物件迴圈序列化的死迴圈中。這就是直接使用model作為展現層資料傳輸媒介帶來的問題。所以我們可以使用dto來避免。
2.model中的資料就是資料庫中的具體的字段,然而我們可能只是使用其中的很少一部分的資料用於前台的展示,所以使用dto可以根據我們自己的需要減少傳遞的資料量,起到一定的保密性。
3.abp框架中已經實現了一些現有的dto,可以方便我們的開發,同時支援dto的驗證,提高資料的安全性。
4.說到底,dto最大的好處就是靈活,可以根據自己的需要靈活的擴充套件,不影響與資料庫的操作。起到了一定的解耦分離的作用。
在abp框架中提供了很多方便我們開發的dto,關於dto的資料驗證,將在接下來的「電影票系統」的增刪改中具體的實踐,今天主要是針對的「查」,先展現出來看看再說。
1.首先建立出我的目錄結構
dto這邊需要注意兩點:
2.前面已經說過abp中提供了很多的現成的dto可以簡化我們的操作,上面的entitydto裡面定義了乙個id屬性,同時entitydto還提供了泛型的支援,滿足對不同型別的id的支援。
至於展現層,這裡我直接模仿**模板中的樣式,稍微修改一下(先偷個懶)
這個父類繼承了abpcontroller,abpcontroller重寫了mvc的controller的一些東西,同時提供了一些常用的屬性注入,比如abpsession等
從上面的**中可以看出,我們的控制器也是支援注入的,而且也是臨時的,及時銷毀的.
接下來我們就跑一下看看,能不能展示出來呢
再次執行一下,哈哈哈,出來了!
三.應用服務層的三個注意點
ABP 如何寫應用服務
為服務建立資料傳輸物件 dto 服務中的方法 不能返回實體 serializable public class issuedto extensiblefullauditedentitydto public string text public guid?milestoneid public coll...
I O模型之Web應用服務
三 復用型io呼叫 四 linux中五種i o模型 五 http中的i o模型 六 nginx中的i o模型 當前最為流行的web伺服器就屬httpd和nginx。web 伺服器到底幹了什麼事?簡單點說就是接受使用者請求,響應使用者請求。這個過程的實現就是完成了跨主機之間的通訊,而主機間的通訊我們使...
應用服務和領域服務
在領域驅動設計中,service有兩種 領域服務和應用服務,單純從它們的定義來看,兩者很容易區分,前者是與業務邏輯密切相關的服務,往往處理複雜的業務請求。後者則是面向應用角度的一些支援功能,與業務本身並無太大關聯。一些典型的應用服務有 傳送電子郵件通知使用者,對密碼進行加密解密等等。在oobbs中,...