Веб-приложение MVC Source Control с несколькими конфигурациями выпуска и сборки - PullRequest
0 голосов
/ 04 ноября 2018

У меня есть веб-приложение MVC, разделенное на 4 проекта:

  1. Веб, имеющий представления, базовые контроллеры, контроллеры, скрипты и базу файлы JavaScript.
  2. Ядро с таблицами, представлениями и некоторыми утилитами
  3. Сервис, имеющий бизнес-логику
  4. Данные, имеющие файлы сопоставления для таблиц и представлений

У меня есть один web.config с несколькими базами данных для соответствующих клиентов и источником, контролирующим все решение, но с использованием дерева исходных текстов. Но теперь я хочу, чтобы все это решение было базовым исходным кодом для всего и делало любые варианты использования поверх него. переопределяя существующий код, но не изменяя базовый код.

Позвольте мне объяснить на примере: Теперь, если есть сценарий использования для добавления столбца в таблицу и его отображения в пользовательском интерфейсе, я могу создать сценарий для столбца в sql, изменить класс таблицы, файл отображения, модель и ее представление, чтобы отобразить это новое поле в пользовательском интерфейсе. Но при этом мой базовый код меняется. Поэтому я решил создать специфичные для клиента папки в каждом проекте и сделать все свои таблицы и файлы сопоставления частичными, чтобы я мог добавить новую специфичную для клиента логику, таблицы, контроллеры и т. Д. Но делая это, я не могу переопределить представления, поэтому мне нужно создать совершенно новый вид для каждой папки клиента и web.config для каждой папки клиента. Также я добавил конфигурацию сборки для каждого клиента, чтобы показать путь для компиляции пользовательских файлов.

За счет того, что всего лишь для 2-3 клиентов количество папок значительно увеличилось, web.config стал беспорядком и поэтому создает конфигурации. Решение стало большим и обеспокоенным, если есть сотни клиентов. Существует также огромная проблема конфликтов слияния.

Есть ли способ сохранить базовый код полностью изолированным в качестве базового решения и создать решение для каждого клиента и переопределить базовый код в решениях, специфичных для клиента? Если это возможно, у каждого клиента может быть своя конфигурация сборки / выпуска, в каждом решении только одна база данных клиентов и простой контроль версий. Также я могу объединить конфликты будут минимальными.

...