2016-01-25 100 views
0

我正在構建分層WebAPI。我有分層架構練習

  • 數據訪問層
  • 業務邏輯層
  • (數據庫模型)
  • 表現層(MVC)

數據庫

  • 模式是這樣的:

    Courses 
        - CourseID 
    
    Users 
        - UserID 
        - FirstName 
        - LastName 
    
    Attendants 
        - CourseID * 
        - UserID * 
    
    Dates 
        - CourseID * 
        - Date 
    

    我製作了1:1字段的模型(Model層)在數據庫上。

    現在我想建立一個模型(商業模式?),其中有:

    class Course 
        List<User> Attendants { get; set; } 
        List<DateTime> Dates { get; set; } 
    

    的目標是回到這種模式爲JSON。

    此模型屬於哪個層?

  • 回答

    0

    我會重新字你的層次是這樣的:

    • (DSL)數據存儲層 - SQL數據庫
    • (DAL)數據訪問層 - 實體框架
    • (BOL)業務對象層 - 您的實體(MVC中的模型)
    • (PL)表示層 - 您的控制器邏輯與視圖模型(Controller in MVC)
    • (VL)視圖層 - 您的MVC視圖。 (MVC中的視圖)

    由於您的課程將被裝配在控制水平進入將被傳遞給視圖我建議把它放到表示層視圖模型。

    1

    的目標是回到這個模型JSON

    如果這是唯一的目標,那麼它是不是商業模式,這是一個視圖模型。因此,它將屬於表示層。

    業務模型用於定義和構建域邏輯,而不依賴於任何特定的技術。視圖模型的作用是將數據綁定到特定的演示技術。

    最終,問題是......系統的哪個部分應與特定組件耦合?系統的哪些其他部分需要依賴它?在這種情況下,它與演示技術相結合,只有表示層纔會依賴它。