Как вы централизуете пользовательский интерфейс на нескольких сайтах ASP.NET? - PullRequest
2 голосов
/ 19 июня 2009

Одним из проектов, за который я отвечал как разработчик JSP / Struts у моего последнего работодателя, была библиотека тегов тем (присутствующая на каждом сервере WebSphere в качестве разделяемой библиотеки), которая позволяла любому веб-разработчику Java в компании задействовать любую стандартных тем, таких как интранет, публика и т. д. с минимальными усилиями. Темы включали заголовок, нижний колонтитул, навигацию и ссылки на css & javascript и т. Д. Они могли даже немного настроить вещи, когда мы дали им возможность, например, выбрать выбранную вкладку.

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

С новой работой, которую я начал в декабре, я перешел на использование ASP.NET. Я хотел бы предложить нечто похожее по духу на приложение тем здесь, так как у нас запущено несколько сайтов, которые должны иметь единый внешний вид.

Какой лучший способ сделать это? Я бы предпочел не перекомпилировать что-либо для обновления темы, чтобы эта работа работала.

Edit:

Хотя я надеялся на лучший ответ, боги .NET явно не одобряют того, что я пытался достичь. Вот три найденных варианта:

  1. Скомпилируйте мастер-страницу в DLL и поместите ее в GAC: Это работает в простых случаях, но как хак это слишком хрупко. Я не смог заставить его правильно работать с нашим сайтом.

  2. Создайте виртуальный каталог для главной страницы в каждом веб-приложении: Это действительно работает, хотя и не создает очень удобной среды разработки. Однако одной из вещей, от которых мы пытаемся отойти, является необходимость создания виртуальных каталогов внутри каждого веб-приложения. Без кубиков.

  3. Создайте группу пользовательских элементов управления, скомпилируйте их в DLL и поместите в GAC: Это ответ, который я выбрал. Это наименее централизованный вариант, требующий больше усилий для разработчика каждого сайта, но, похоже, это единственный благословенный путь Microsoft.

В заключение я очень разочарован .NET по этому поводу. В общей схеме мастер-страницы - это просто код, и я не вижу причин, по которым их нельзя было легко централизовать для использования в нескольких веб-приложениях. Похоже, это большая потеря по сравнению с JSP / Java.

1 Ответ

0 голосов
/ 19 июня 2009

Вы можете поместить некоторый пользовательский интерфейс в виде пользовательских элементов управления или серверных элементов управления (если не в MVC), а затем поместить их в GAC, распределяя их. Все ссылки на элементы управления в этой сборке будут извлечены из последней версии в gac. Вы также можете делать что-то через Machine.config, который контролируется на уровне сервера, а не на уровне приложения.

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