私の組織には .NET ソリューション (C# MVC) があり、ソリューションを再利用可能にすると同時に拡張可能にしようと少し苦労しています。
私たちは4人のクライアントを持っています
あいうえお
これらの各クライアントには Web サイトが必要であり、各 Web サイトは非常によく似ており、90% 類似しています。そのため、データ層、コア、サービス、および Web 層 (コントローラー/ヘルパー/マッピング/検証を含む) を含む基本テンプレートを作成しました。すべてのクライアントがこのテンプレートを使用します。クライアントがコードを共有しない唯一の部分は、そのクライアントに適用されるマークアップとテーマです。スクリプト/ベース css もクライアント間で共有されます。
これは、現在まで約 7 か月間、比較的うまく機能しています。
クライアント A と B はデプロイされ、運用中です。
現在、クライアント C に取り組んでおり、クライアント D はまだ実装されていません。
クライアント C で作業している間、クライアント A と B もバグ修正/機能変更などを必要とします。ただし、クライアント C で作業しているため、テンプレートは常に「本番環境に対応」しているとは限らず、テストされていないコードでクライアント A と B のコードがリリースされます。 . テンプレートへの変更を避けるために、クライアント C に直接大部分の機能を実装することに頼っています。
もちろん、簡単なオプションは分岐してその分岐で作業することですが、TFS を使用せざるを得ないため、これは困難です。ほとんどの場合、そこから分岐して作業するだけですが、他の人がこの問題をどのように解決するかについて読むための追加のアドバイス (情報源) はありますか?