У меня есть небольшой бизнес, который продает веб-решения для клиентов. Веб-сайты служат той же цели; разрешить клиенту отправлять и планировать SMS-сообщения.
Каждый сайт немного отличается. Например, 1 сайт имеет обязательную информацию, такую как сведения об адресе и имя группы, в то время как другой сайт предъявляет другие требования, такие как регистрация IP-адреса пользователя, но не нуждается в каких-либо деталях адреса.
Все веб-сайты построены с использованием LINQ TO SQL и являются просто веб-сайтами, а не веб-приложениями.
Каждый сайт имеет свою базу данных на моем сервере.
Каждый веб-сайт использует exe для отправки сообщений. Этот exe-файл - это тот же exe-файл, но каждый веб-сайт имеет свою собственную процедуру копирования и планирования, расположенную в каталоге bin сайта, и запускается с помощью запланированных задач Windows.
Каждый веб-сайт использует один и тот же веб-сервис для связи с центральным сервером, который отправляет сообщения и возвращает ответ.
Клиенты могут изменять страницы ASPX, но не код позади.
На данный момент у меня на компьютере разработчика есть файловая структура, которая читает что-то вроде:
Client1Dev
Client1_Published
Client2Dev
Client2_Published
... и так далее
Отдельно есть приложение опроса (консольное приложение Windows)
Когда я делаю изменения, я публикую сайт клиента в его каталоге _Published, а затем копирую DLL из каталога bin на рабочий сервер.
Мой вопрос на самом деле: что бы вы сделали, чтобы управлять этим материалом? Если Клиент 1 захочет внести изменения, я внесу изменения на сайт разработчика, скопирую на опубликованный и затем отправлю на FTP-сервер.
При создании новых сайтов это кошмар, потому что в разных клиентских проектах повсюду могут происходить изменения, которые могут быть полезны для нового клиента.
Если я нахожу ошибку, это настоящий кошмар, так как мне нужно обновить все сайты 1 на 1, чтобы исправление ошибки не нарушало конкретный проект.
Любой совет по этому поводу?