[英].Net Core 3-tier architecture passing connection string from presentation layer to data layer issue
[英]3-Tier Architecture with multiples presentation layer
我正在嘗試構建一個新的應用程序,並遇到麻煩使其變得干凈。
這樣做的想法是:
- XAML頁面
- 頁面后面的代碼
- 我們所謂的PageViewModel(代表頁面模型的對象)
- 與網站1相同
WebSiteX(表示層)
- 與網站1相同
商業項目
- 服務(將通過頁面后面的代碼調用,將DAL對象轉換為網站可讀的ViewModel)
- ViewModel(代表實際對象可以在多個頁面/網站中使用)
DAL項目
- 管理器(通過服務調用,返回DAL對象)
- DAL(訪問數據庫或其他來源)
我的ViewModels存儲在一個單獨的項目中,如果需要,可以在各種網站中使用。
我對表示規則(例如,應該是數字或必需的)將存儲到業務層(ViewModels內部的屬性)的事實感到不滿。 兩個網站也可能使用相同的對象,但具有不同的展示規則(一種情況下要求,另一種情況下要求)。
我看到的唯一另一種方法是將Services和ViewModels放在每個網站中,但是如果它們使用相似的對象,則代碼將被復制。
你會怎么做?
謝謝閱讀。
我認為演示文稿規則可以在PageViewModel中,也可以在從PageViewModel轉換為BusinessObjects(您將它們稱為“視圖模型”)時具有驗證規則。
另外,您已經提到的內容也可以使用
我看到的唯一另一種方法是將Services和ViewModels放在每個網站中,但是如果它們使用相似的對象,則代碼將被復制。
我將保留重復的ViewModels而不是Services。 是的,代碼是重復的,但這給了我自由,盡管具有相同的基礎業務模型,但也可以用於單獨維護單獨的網站。
我認為這可能是繼承的好例子。 創建您的PageVM類的基本實例,並覆蓋不同站點中的行為。
嘗試將諸如“ requiredness”之類的內容分離為可以被覆蓋的單獨方法,可能在基本實例中將其聲明為抽象,從而迫使您在實現版本中定義該邏輯。
棘手的部分將是PageVM對象的構造,為此,您可能希望研究Factory或Builder模式,以使UI項目創建自定義PageVM對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.