разделение главной страницы клиента - PullRequest
0 голосов
/ 03 мая 2011

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

Что касается фактических сборок для различных клиентов, я думаю, что мы можем легко добиться чего-то гибкого, используя MEF или IOC.

Область, в которой я не уверен, это веб-сторонавещи.Каждый текущий клиент имеет свою собственную главную страницу, и эти главные страницы довольно радикально отличаются, за исключением того, что они имеют одинаковые области содержимого, и, вероятно, настройка не может быть просто достигнута простым CSS.

Есть ли способ иметь "базовую" мастер-страницу, которая обычно используется, и затем, если мы хотим развернуть ее на клиенте А, мы можем просто каким-то образом внедрить клиент как главную страницу.В настоящее время это обрабатывается всеми страницами содержимого, ссылающимися на Master.master как их главную страницу, и затем существует универсальный Master.master, при развертывании на клиенте A мы переименовываем Master.master во что-то и переименовываем специально настроенную главную страницу для клиентаA (ClientA.master) для Master.master и развертывания.

Недостатком всего этого является то, что все главные страницы хранятся в одном веб-проекте, что выглядит немного неправильно, если мы пытаемсяперейдите в главную ветвь, независимую от клиента, и если другие главные страницы не будут удалены как часть развертывания, клиент получит их копию на своем сервере, даже если они не используются, и желательно, чтобы у нас не было одного клиентавозможность переключиться на просмотр других клиентов и т. д. (не то чтобы это обеспечило безопасность)

1 Ответ

1 голос
/ 03 мая 2011

Вы проверили Темы . Мы использовали темы для такого рода вещей раньше.

Если вам не хватает энергии, вы можете делать то, что вы хотите, на этапе pre_init. Мы используем этот код в некоторых местах

protected void Page_PreInit(object sender, EventArgs e)
    {
        this.MasterPageFile = "~/page.master";
    }

Конечно, вы можете использовать логику, чтобы определить, какую главную страницу вы хотите использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...