Компания, в которой я работаю в настоящее время, борется с архитектурным решением для нашего диапазона приложений. На данный момент у нас есть несколько приложений, которые имеют общие части (думаю, как календарь). До сих пор мы продолжали копировать код из другого существующего приложения, но в будущем мы хотим превратить наши приложения в более модульный дизайн:
Как вы можете видеть на картинке выше, возможно иметь разные версии модулей для каждого приложения.
Мы рассматриваем возможные решения:
- Построение базовой инфраструктуры приложения, в которой мы можем установить модулей. Мы думаем о таком инструменте, как Nuget, чтобы выполнить это.
- Построение одного приложения, в котором все наши модули включены (= одна база кода), но клиент получает только функциональность, которая активирована для него. Мы рассматриваем некоторые проблемы с версиями здесь.
Любые предложения по этому поводу? Мы не можем быть первой компанией, которая борется с этой проблемой. Все наши приложения - это веб-приложения ASP.NET MVC 4/5, созданные с помощью шаблонов Razor или шаблонов JavaScript (knockout.js). Все наши приложения развернуты на Microsoft Azure, и у нас есть обширные знания о скриптах buildscripts (MSBuild), CI Server...