Я ищу совета о том, как упростить настройку и расширение основного продукта для каждого клиента. Я знаю, что это, вероятно, слишком большой вопрос. Однако нам действительно нужно получить некоторые идеи, поскольку, если мы неправильно настроим это, это может вызвать у нас проблемы на годы. У меня нет большого опыта в настройке и расширении существующих продуктов.
У нас есть основной продукт, который мы обычно разрабатываем индивидуально для каждого клиента. Недавно мы переписали продукт на C# 4 с интерфейсом MVC3. Мы провели рефакторинг, и теперь у нас есть 3 проекта, которые составляют решение:
Это решение прекрасно работает как самостоятельный продукт. Наша проблема заключается в расширении и настройке продукта для каждого клиента.Наши клиенты обычно хотят, чтобы версия основного продукта была предоставлена им очень быстро (обычно в течение нескольких дней после подписания контракта) с фирменным CSS и стилем. Однако 70% клиентов хотят, чтобы настройки изменили его работу. Некоторые настройки невелики, например, дополнительные свойства модели предметной области, модели представления и представления и т. д. Другие являются более значительными и требуют совершенно новых моделей предметной области и контроллеров и т. д.
Некоторые настройки кажутся полезными для всех клиентов, поэтому периодически мы хотели бы изменить их от настройки и добавить их в ядро.
В настоящее время мы храним исходный код в TFS. Чтобы начать проект, мы обычно вручную копируем исходный код в новый командный проект. Измените пространство имен, чтобы оно отражало имя клиента, и начните настройку основных частей, а затем выполните развертывание в Azure. Это, очевидно, приводит к полностью дублированной кодовой базе, и я уверен, что это неправильный путь. Я думаю, у нас, вероятно, должно быть что-то, что предоставляет основные функции и расширяет/переопределяет, где это необходимо. Однако я действительно не уверен, как это сделать.
Поэтому я ищу любые советы по наилучшей конфигурации проекта, которая позволила бы:
Любая помощь/совет приветствуется. Рад добавить больше информации, которая, по мнению любого, поможет.