2016-03-25 58 views
0

當前正在使用具有Web Api項目/框架的客戶端,它們用於多個客戶端。 98%的代碼被重用,但他們複製並粘貼每個新客戶端的存儲庫。複製和粘貼後,唯一真正改變的是Web.Configs,並且每隔一段時間對OOTB api進行一些擴展。例如。也許他們站在api api/rockets/的自定義模塊或者他們擴展現有的api並添加一些新的方法&行動。C#Web API項目共享策略

我找不到任何方式使用.net將其關閉。目前我想我可以通過git用叉子解決這個問題,但我想知道是否有任何方法可以用.net解決這個問題。有沒有辦法擴展現有的Web項目?

回答

2

git方法是這樣做的一種方式,但我可能會去找Nuget包。

提取所有解決方案中通用的所有解決方案,甚至是資源並製作一個包。 利用軟件包版本控制等。如果你有一個bug,在包裏修改它,只需在項目中運行一個nuget-update,甚至只需設置持續集成即可在任何依賴關係發生變化時重建和更新。

+0

我想這樣做,但是所有基礎webproject中的東西像startup.cs(owin stuff),app_start等呢? – Nix

+0

Nuget的一個重要功能是可以包含配置甚至源代碼,然後在其中進行轉換。 https://docs.nuget.org/Create/Configuration-File-and-Source-Code-Transformations。 無論如何,一個折衷是複雜的。由於沒有銀彈​​,我建議儘量保持簡單。 如果你不得不在Nuget的特性中挖掘得太多,那麼它可能會走向錯誤的方向,如果是這樣的話,那麼在git中分叉方法可能並不是那麼糟糕。 –

0

一個選項是爲使用「區域」的多個客戶端創建單個Web項目。這樣你可以打開/關閉每個人都是單獨的。

您也可以將您的通用業務邏輯放入Nuget包中,並將其導入每個客戶。但是,每次分叉業務邏輯將是一個非常糟糕的主意。如果發現缺陷會發生什麼?您將被迫在N個項目中修復相同的問題。

+0

我們有一些非常嚴格的安全要求來保持envs sep。對我們而言,問題不像分叉我們真正想要擴展和定製它的那麼簡單。我只是無法弄清楚如何在.net中構造它以使其可擴展。 – Nix