以下內容來自《microsoft .net企業級應用架構設計》
何時使用服務層?
服務層應該用在有所有一定複雜度的應用程式中,在多層分布式系統中,除非你只只用一種前端(例如web端),且應用程式服務的方法與系統的用例能很好的匹配起來,這時服務層僅僅起到乙個分發的作用,並且沒有工作需要組織。那些簡單的,僅用來把請求**給業務層的服務確實有些多餘。
相反,若你有多個前端且應用邏輯較為複雜,那麼最好將整個業務邏輯放到統一的位置,而不是為每個應用程式的介面都重新編寫一次。
服務層的優勢與劣質?
服務層新增了額外的抽象並除去了兩個互動層之間的耦合,若這一點在你的系統中比較重要,那麼應該建立服務層。服務層可以幫助你實現乙個粗粒度的遠端介面,並降低表現層與業務層之間的通訊流量。
因為抽象是服務層的最主要的長處,所以簡單系統中的服務層或許有過度設計之嫌。
正如我們剛剛提到的那樣,服務層並不一定要使用wcf等專門的服務技術來實現。例如在asp.net表現層中,我們一般從**後置中呼叫「服務層」,當然服務層和**後置類都部署在同一臺伺服器上。而若在這裡使用wcf服務作為服務層,則會增加額外的開銷,進而影響到效能。在使用wcf作為服務層時,請盡早隨時留意效能指標的變化。若效能影響太大,則有必要使用另一種服務層技術。
NoSQL與RDBMS 何時使用,何時不使用
naresh kumar是位軟體工程師與熱情的博主,對於程式設計與新事物擁有極大的興趣,非常樂於與其他開發者和程式設計師分享技術上的研究成果。近日,naresh撰文比較了nosql與rdbms,並詳細介紹了他們各自的特點與適用的場景。nosql並不是關係型資料庫管理系統,本文將會介紹nosql資料庫...
何時使用或何時不使用malloc函式
在初學資料結構時,我們往往不太清楚在定義乙個結構體指標時要不要使用malloc函式。例如以下的 linklist init linklist retrun h linklist s s data x 以上這兩句 是不行的,因為s沒有指向確切的位址,所以不能通過s來向它要指向的位址賦值 但是linkl...
MySQL何時使用索引 何時不使用索引
mysql何時使用索引 對乙個鍵碼使用 if null和between select from table name where key part1 1 and key part2 5 select from table name where key part1 is null 當使用不以萬用字元開...