У меня есть интернет-магазин .NET для 3 человек. За прошедшие годы мы разработали ряд инструментов для управления контентом, ведения блогов, электронной коммерции, социальных сетей и так далее. Тем не менее, мы никогда не модифицировали программное обеспечение; поэтому перенос функций с одного сайта на другой требует больших затрат (обычно мы просто копируем и вставляем фрагменты кода и другие ресурсы, такие как JS, CSS и изображения, с сайта модели на целевой сайт). У нас есть библиотека элементов управления, которая предоставляет множество общих функций, но поскольку невозможно скомпилировать файлы ASPX или ASCX в библиотеку элементов управления, эти страницы и элементы управления обычно просто размещаются на каждом веб-сайте и копируются и вставляются с одного сайта в следующий.
Мы хотели бы перестроить всю нашу платформу, чтобы упростить стандартизацию и повторное использование модулей. В идеале я хотел бы иметь возможность скопировать папку, содержащую все, что нужно модулю, и сделать так, чтобы целевой веб-сайт распознал ее и зарегистрировал при запуске приложения.
Кроме того, я хотел бы сохранить некоторую гибкость, которую мы имеем в настоящее время, чтобы функциональность модуля (а не только CSS и главные страницы) можно было легко настроить для конкретного сайта. Сценарии могут включать добавление настраиваемого поля в модуль «Контакты» или сбор настраиваемой информации в форме комментариев блога.
Наконец, я бы хотел провести четкую грань между базовым кодом и настройками каждого веб-сайта, чтобы мы могли легко обновить существующий сайт до последней версии основного программного обеспечения, просто доведя основной код до Дата. Я видел бы основной код (включая общие ресурсы, код и файлы ASPX / ASCX), который присутствует в каждом проекте веб-сайта, но синхронизируется через систему контроля версий.
Теперь я достаточно ясно вижу, как мы будем структурировать и кодировать все это сами; однако мне интересно, если бы шаблон фабрики программного обеспечения веб-клиента (WCSF) много купил бы нам то, что нам было бы нужно. Исходя из вашего опыта использования WCSF, считаете ли вы, что это будет правильным для сценария, который я здесь описываю? Из краткого прочтения кажется, что это обеспечит хорошее решение проблемы модульности, но неясно, обеспечит ли это простой способ настройки модуля.