More

    Service層 – 概念篇 (.NET MVC 5 Ch-13)

    在這一篇將會看所謂的Service層。爲什麽需要Service層?並且Service層包含了什麽東西,並且在使用上,會給我們帶來什麽便利。

    同步發表於我的部落格:http://alantsai2007.blogspot.com/2014/10/BuildYourOwnApplicationFrameworkOnMvc-13-service-intro.htm

    什麽是Service層?

    這邊提到的層就是英語所謂的Layer。而Layer就是logical separation of set of functionality (邏輯性的切割一組功能)。舉例來說,和儲存有關的功能就屬於Data Access Layer。

    Layer的主要作用和所謂的SoC(Separation of Concern)是一樣的概念,每一個Layer有屬於自己的範圍。

    在一般任意的Application裡面,通常都有至少3個Layer。Presentation Layer、Service Layer和Data Access Layer。

    Presentation Layer屬於任何和畫面有關的部份。

    Service Layer 屬於比較偏商業邏輯層。

    Data Access Layer – 任何Application最終都需要儲存資料,而Data Access Layer就是儲存資料的層級。

    這三個Layer組起來就是常見所謂的3 Layer Application。

    爲什麽需要Service層

    在Mvc裡面有個3字口訣:

    1. Model要
       :表示處理邏輯都在這邊
    2. Controller要
      :Controller只負責組裝ViewModel的資料和選擇呈現的View
    3. View要
      :不要有過多的邏輯和運算,這邊只是要呈現資料的template

    這邊需要注意到的是Controller。

    由於預設的scaffolding產生出一個基本的CRUD的時候會在Controller裡面直接實例一個DbContext,並且在Action裡面直接和DbContext溝通,導致 和容易就把程式邏輯寫在Action裡面。但是這個對於整個程式的彈性是不好。

    因為假設別的地方也需要用到一樣的邏輯去產生對應的ViewModel,寫在Controller裡面,就沒有辦法共用這個邏輯。

    而Service層才是適合做這件事情。

    3 Layer Application在Mvc裡面的對應

    基本上來說,在Mvc和3 Layer Application的對應大概是:

    3層式架構和Mvc對應

    結語

    在這一篇瞭解到了透過增加Service層,我們能夠讓一些商業邏輯更容易的被共用,並且整個Application的SoC更加的清楚。

    在下一篇將會看到,如何建造Service層,並且Controller如何使用。

    Source : https://ithelp.ithome.com.tw/articles/10158249

    Recent Articles

    spot_img

    Related Stories

    Stay on op - Ge the daily news in your inbox