У нас есть система блогов, которую мы продали нескольким различным клиентам (включены в различные проекты). Эта система включает в себя несколько различных файлов - несколько страниц aspx, один или два элемента управления ascx, один файл css, один файл javascript и несколько служебных файлов codebehind / vb.net. В целом, 90 +% этого модуля одинаковы для разных клиентов - но, конечно, каждый покупатель хочет внести некоторые изменения - от косметических изменений html / css до настроек логики сервера / клиента.
В настоящее время, чтобы развернуть нашу систему блогов в новом проекте, мы просто копируем файлы (из последнего проекта, над которым мы работали) и настраиваем файлы по мере необходимости… но теперь у нас есть 10 уникальных и несовместимых копий нашей системы блогов. Простая работа системы блогов в каждом проекте занимает достаточно много времени, а распространение улучшений от новых систем блогов к более старым системам и их обслуживанию является настоящей головной болью.
В идеале у нас должна быть единственная «золотая копия» наших системных файлов блогов, которая бы обслуживала общий (90%) случай. Мы могли бы добавить эту золотую копию в новый проект, и система блогов работала бы практически мгновенно, однако затем мы могли бы добавлять или настраивать файлы по мере необходимости. Еще лучше - поскольку мы вносим улучшения в «золотую копию», эти изменения могут быть легко внедрены на всех наших сайтах - при соблюдении настроек, которые мы сделали для наших клиентов.
Я знаю, что мы могли бы добавить новые css-файлы, чтобы изменить базовые классы и добавить новые классы vb.net, которые переопределяют базовую логику на стороне сервера - но я действительно не уверен, как обращаться с файлами aspx, ascx и js. В идеале мы могли бы найти безопасное решение на основе файла или источника - например, если новый файл присутствует с настройками, он автоматически переопределит любую соответствующую разметку / js / etc в золотом файле. Конечно, мы открыты для все решения - это кажется довольно распространенным сценарием, поэтому я надеялся, что кто-то разработает «наилучшую практику». Возможно ли то, что я описываю? Любой совет или направление очень ценятся - заранее спасибо!
Шейн