Как объединить главные страницы ASP.NET между приложениями? - PullRequest
2 голосов
/ 24 января 2009

Первый выстрел в вопросе на этих досках, так что, надеюсь, я смогу получить некоторую помощь, вот так:

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

Я имею в виду, что в каждом приложении есть копия одной и той же главной страницы. Все они являются базовыми многоуровневыми приложениями сайта-> WCF-> BL-> DB. Таким образом, у меня есть 4 копии одной и той же главной страницы, которую я должен изменить при внесении изменений в нее.

Клиент НЕ ХОЧЕТ объединить все это в одно решение. Им нравится разделение приложений по сайтам. Я просто не хочу продолжать заниматься множеством обновлений для общих элементов (которых в этих приложениях будет намного больше).

Код хранится на сервере Team Foundation. Мы также НЕ хотим скомпилировать главную страницу в .dll и развернуть ее.

Может ли кто-нибудь дать несколько советов о том, как мне сохранить единую копию этих общих файлов (master, .css и т. Д.) В нескольких приложениях.

заранее спасибо

Ответы [ 6 ]

2 голосов
/ 24 января 2009

Возможно, вы захотите посмотреть Общий доступ к основным страницам в Visual Studio .

Если это не поможет, вы можете попробовать Build Events в Visual Studio. Я бы выбрал один из проектов в качестве «Основного проекта» и отредактировал только главную страницу этого проекта. Когда вы строите проект, он запускает команду, которая копирует эту главную страницу (если она изменилась) в заданные вами места.

0 голосов
/ 18 февраля 2010

В итоге я пошел по маршруту VPP. Я создал провайдера виртуального пути и встроил мою главную страницу в DLL, и это работает. Теперь у меня есть огромная проблема, хотя в том, что страница контента, чья главная страница запаздывает через код, бросает проверку / форматирование, потому что она думает, что она должна быть отдельной страницей. мой CNTRL + K, CNTRL + D не работает на каждой странице, где я сейчас делюсь своей главной страницей. Это очень расстраивает меня и команду

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

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

0 голосов
/ 24 января 2009

РЕДАКТИРОВАТЬ: пропустил часть CSS. Очевидно, что вы не сможете обслуживать эти файлы, поэтому это должно работать только для главной страницы.

Не знаю ваш сценарий, поэтому

ЕСЛИ вы можете управлять DNS / виртуальными каталогами для приложений, вы можете использовать такой формат:

c: \ inetpub \ wwwroot \ Application1
c: \ inetpub \ wwwroot \ Application2
c: \ inetpub \ wwwroot \ Application3
c: \ inetpub \ wwwroot \ Application4
c: \ inetpub \ wwwroot \ Application5
и получите свою главную страницу по адресу c: \ inetpub \ wwwroot \ master.Master,
c: \ inetpub \ wwwroot \ master.Master.cs,
C: \ Inetpub \ Wwwroot \ master.Master.cs.designer

Тогда вы можете сослаться на одну копию главной страницы из /../master.Master. Я быстро сделал это с предварительно скомпилированной главной страницей, чтобы убедиться, что я могу выйти за пределы своего корня. Возможно, вам придется попробовать, чтобы увидеть.

0 голосов
/ 24 января 2009

Если вы используете веб-приложения (скомпилированные в dll), а не веб-сайты, вы можете сделать следующее:

Щелкните правой кнопкой мыши папку, в которой вы хотите сохранить главную страницу, в

Выберите «Добавить существующий элемент ...»

Перейдите на главную страницу в файловой системе и выберите файлы .master и .master.cs.

Затем, вместо того, чтобы нажимать кнопку «Добавить», нажмите маленькую стрелку вниз справа от «Добавить», откроется небольшое меню с параметрами: «Добавить» и «Добавить как ссылку»

Выберите «Добавить как ссылку», это будет ссылаться на файл в вашем проекте, оставляя его в исходном месте в вашей среде разработки - это позволяет вам редактировать его в любом приложении, поддерживая его актуальность в других приложениях .

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

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

0 голосов
/ 24 января 2009

Клиент НЕ ХОЧЕТ объединить все это в один решение. Им нравится разделение приложения на разных сайтах. Я просто не хочу продолжать иметь дело с хлопоты нескольких обновлений для общего элементы (которых будет много больше из этих приложений).

Код хранится в команде фундамент сервера. Мы также не хотим скомпилировать главную страницу в dll и разверните его.

Вы исключили только два реальных варианта. Что все находится на главной странице? Можно ли извлечь элементы HTML UI в один шаблон или серию файлов шаблона HTML и динамически импортировать их на главную страницу? Затем вы можете переместить общий HTML-код в произвольный URL-адрес, и главная страница для каждого приложения будет динамически загружать его.

Редактировать: я солгал. Вы также можете использовать VirtualPathProvider, как Sharepoint, для хранения главной страницы в базе данных или каком-либо другом каталоге, но помните, что VirtualPathProviders не работают в средах MediumTrust.

См:
http://msdn.microsoft.com/en-us/library/system.web.hosting.virtualpathprovider.aspx

...