Как вы повторно используете html / js / серверный код между проектами asp.net? - PullRequest
2 голосов
/ 12 февраля 2009

У нас есть система блогов, которую мы продали нескольким различным клиентам (включены в различные проекты). Эта система включает в себя несколько различных файлов - несколько страниц aspx, один или два элемента управления ascx, один файл css, один файл javascript и несколько служебных файлов codebehind / vb.net. В целом, 90 +% этого модуля одинаковы для разных клиентов - но, конечно, каждый покупатель хочет внести некоторые изменения - от косметических изменений html / css до настроек логики сервера / клиента.

В настоящее время, чтобы развернуть нашу систему блогов в новом проекте, мы просто копируем файлы (из последнего проекта, над которым мы работали) и настраиваем файлы по мере необходимости… но теперь у нас есть 10 уникальных и несовместимых копий нашей системы блогов. Простая работа системы блогов в каждом проекте занимает достаточно много времени, а распространение улучшений от новых систем блогов к более старым системам и их обслуживанию является настоящей головной болью.

В идеале у нас должна быть единственная «золотая копия» наших системных файлов блогов, которая бы обслуживала общий (90%) случай. Мы могли бы добавить эту золотую копию в новый проект, и система блогов работала бы практически мгновенно, однако затем мы могли бы добавлять или настраивать файлы по мере необходимости. Еще лучше - поскольку мы вносим улучшения в «золотую копию», эти изменения могут быть легко внедрены на всех наших сайтах - при соблюдении настроек, которые мы сделали для наших клиентов.

Я знаю, что мы могли бы добавить новые css-файлы, чтобы изменить базовые классы и добавить новые классы vb.net, которые переопределяют базовую логику на стороне сервера - но я действительно не уверен, как обращаться с файлами aspx, ascx и js. В идеале мы могли бы найти безопасное решение на основе файла или источника - например, если новый файл присутствует с настройками, он автоматически переопределит любую соответствующую разметку / js / etc в золотом файле. Конечно, мы открыты для все решения - это кажется довольно распространенным сценарием, поэтому я надеялся, что кто-то разработает «наилучшую практику». Возможно ли то, что я описываю? Любой совет или направление очень ценятся - заранее спасибо!

Шейн

1 Ответ

0 голосов
/ 13 февраля 2009

Вы можете использовать вашу систему управления версиями и Visual Studio, чтобы сделать это, но это может привести к путанице, если ваш успех (много клиентов) Если бы вы выбрали такой подход, вот как я бы это сделал.

  1. Разделите код на 2 структуры или проекты Visual Studio. общий код (упомянутые вами 90%) и настроенный код (другой 10%).

  2. Создать начальную структуру или базовый уровень в вашем Система контроля источников. Это самая общая версия двух кодов наборы.

  3. Отделение настраиваемой части кода для каждого клиента.

  4. Разветвляют общую часть кода, когда у вас есть исправления ошибок или другие обновления. В Visual Studio вы могли бы либо создайте 1 проект и объедините каталоги или использовать 2 разных проекты, объединенные в рамках одного решения.

Надеюсь, это поможет.

...