簡體   English   中英

asp.net中的分層架構是什么模式?

[英]What pattern is layered architecture in asp.net?

我是一名 asp.net 開發人員,對模式和架構了解不多。 如果你能在這里指導我,我將非常感激。

在我的 web 應用程序中,我使用了 4 層。

  1. Web 網站項目(有 web forms + 代碼隱藏 cs 文件,用戶控件 + 代碼隱藏 cs 文件,母版頁 + 代碼隱藏 cs 文件)

  2. CustomTypesLayer 一個 class 庫(具有自定義類型、枚舉、DTO、構造函數、get、set 和驗證)

  3. BusinessLogicLayer 一個 class 庫(具有所有業務邏輯、規則和對 DAL 函數的所有調用)

  4. DataAccessLayer 一個 class 庫(只有與數據庫通信的類。)

-我的用戶界面只調用 BusinessLogicLayer。 BusinessLogicLayer 自行處理數據,並調用 DataAccessLayer 函數處理數據。

-Web forms 不直接調用 DAL。

-CustomTypesLayer 由所有圖層共享。

請指導我這種方法是一種模式嗎? 我雖然它可能是 MVC 或 MVP,但頁面也有文件背后的代碼,這讓我感到困惑。

如果沒有模式,它是否接近某種模式?

那不是四層,而是三層,所以它是常規的三層體系結構。

CustomTypesLayer根本不是一個圖層。 如果是這樣,則用戶界面將僅使用自定義類型層,而從不直接與業務層對話,而數據訪問層將永遠不使用自定義類型層。

三層架構是多層架構

就模式而言,我建議您掌握以下內容:

  • 我最喜歡的一項是依賴反轉原理 (DIP),它也通常稱為(或至少非常類似於) 控制反轉 (IoC)和依賴注入。 它們非常受歡迎,因此您應該可以輕松找到更多信息-獲取示例。 對於在接口后面抽象出數據訪問實現非常有用。
  • 延遲加載也很有用。 有趣的是,有時您實際上可能想做相反的事情-一次獲得所需的所有數據。
  • 工廠模式是一個非常著名的模式-這是有充分理由的。
  • 立面模式也幫助我擺脫了麻煩。

假設您還沒有看到Wikipedia,那么它會列出相當不錯的軟件設計模式

最后要牢記的是,存在三種基本類型的模式(加上多線程/並發的第四類); 它可以幫助您了解這些類別,並在進行此類操作時記住這些類別,它們是:

  • 創造力的
  • 結構性
  • 行為的

看一看實體框架或LinqToSQL。 它們都可以從數據庫自動生成數據訪問層。 這將節省您很多(無聊的)工作,並使您可以專注於有趣的圖層。

后台代碼實際上與體系結構沒有任何關系-它更多是一種編碼風格。 這是一種將邏輯與表示分離的方法。 您提到的任何體系結構都可以使用或不使用代碼隱藏。

您似乎正在描述標准的三層體系結構。 MVC是一種模式,用於描述您的圖層和用戶如何交互。 用戶請求一個頁面(由View表示),該頁面向Controller請求其數據。 Controller與您的業務層(模型)進行通信以提取正確的數據,並將其傳遞給您的View以進行顯示。 如果視圖是交互式的,例如它允許用戶更新某些內容,則此用戶操作操作將傳遞回您的控制器,后者將針對業務層調用相關方法以將更新保存到數據庫。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM