1

我目前正在研究幾個功能獨立的.NET Web應用程序(MVC)。我們爲每個封裝的問題保留了我們的項目。因此,我們已經結束了與項目一樣:設計原理如SoC在公共庫中的上下文

App.DataAccess

App.Services

App.WebApi

App.Domain 等

有一個代碼塊這兩部分之間可以有效地分享,並且這些部分已經被分離到他們自己的項目中。

通用/ Core.DataAccess

通用/ Core.Services

通用/ Core.Domain

通用/ Core.WebApi 等

我們現在上固定的工作情況這個'公共代碼'基本上被複制到兩個應用程序中,我們使用過程作爲一種創可貼,以使它們在兩個應用程序之間保持同步。

經過一番研究,我的建議迄今已有:

1)創建一個私人的NuGet飼料(託管自己的服務器上)

2)給出的通用代碼自己的解決方案,並推動它到這個飼料。

3)兩個應用程序現在都將此通用代碼作爲nuget包安裝。

一般來說,每個人都對這種方法感到滿意。意見分歧來自於構建這個新的解決方案。

目前共有9個項目,其中一些項目小到一個班級。最大的項目是< 25個文件大。我覺得我們應該將所有內容整合到一個項目中,並使用文件夾和名稱空間進行封裝。

該團隊擔心的是,由於我們的Web項目將引用此nuget包並訪問某些數據訪問組件,因此將會違反問題分離。

在這裏有一個普遍接受的模式,或者是保持9個項目和9個nuget包以保持SoC滿意的最佳解決方案嗎?

欣賞任何指導!

〜薩加爾

回答

2

有沒有硬指標。

  • 然而,將它們作爲單獨的nuget包管理從長遠來看是有益的。
  • 這通常是因爲很少有9個程序集保持爲純粹的實用程序程序集。遇到像,網絡API,MVC,加密,身份驗證等各種擔憂,他們必然涵蓋助手代碼
  • 所以不是結塊他們作爲1個單項目/ NuGet包,與9個的NuGet包解決方案的9個項目,是您最佳的路線。
  • 否則,你最終不得不網絡API,MVC,驗證,驗證,數據訪問,AWS,天青等在與消費者誰只是需要一個密碼輔助類gazilion不需要依賴這一個巨大的彙編代碼。