Одним из проектов, за который я отвечал как разработчик JSP / Struts у моего последнего работодателя, была библиотека тегов тем (присутствующая на каждом сервере WebSphere в качестве разделяемой библиотеки), которая позволяла любому веб-разработчику Java в компании задействовать любую стандартных тем, таких как интранет, публика и т. д. с минимальными усилиями. Темы включали заголовок, нижний колонтитул, навигацию и ссылки на css & javascript и т. Д. Они могли даже немного настроить вещи, когда мы дали им возможность, например, выбрать выбранную вкладку.
Эта установка была идеальной, поскольку мы могли вносить централизованные изменения в любые стандартные элементы пользовательского интерфейса, и они автоматически добавлялись всеми сайтами с использованием тем без каких-либо усилий со стороны разработчика сайта.
С новой работой, которую я начал в декабре, я перешел на использование ASP.NET. Я хотел бы предложить нечто похожее по духу на приложение тем здесь, так как у нас запущено несколько сайтов, которые должны иметь единый внешний вид.
Какой лучший способ сделать это? Я бы предпочел не перекомпилировать что-либо для обновления темы, чтобы эта работа работала.
Edit:
Хотя я надеялся на лучший ответ, боги .NET явно не одобряют того, что я пытался достичь. Вот три найденных варианта:
Скомпилируйте мастер-страницу в DLL и поместите ее в GAC:
Это работает в простых случаях, но как хак это слишком хрупко. Я не смог заставить его правильно работать с нашим сайтом.
Создайте виртуальный каталог для главной страницы в каждом веб-приложении: Это действительно работает, хотя и не создает очень удобной среды разработки. Однако одной из вещей, от которых мы пытаемся отойти, является необходимость создания виртуальных каталогов внутри каждого веб-приложения. Без кубиков.
Создайте группу пользовательских элементов управления, скомпилируйте их в DLL и поместите в GAC: Это ответ, который я выбрал. Это наименее централизованный вариант, требующий больше усилий для разработчика каждого сайта, но, похоже, это единственный благословенный путь Microsoft.
В заключение я очень разочарован .NET по этому поводу. В общей схеме мастер-страницы - это просто код, и я не вижу причин, по которым их нельзя было легко централизовать для использования в нескольких веб-приложениях. Похоже, это большая потеря по сравнению с JSP / Java.