Сложные веб-приложения ASP.NET и NANT - PullRequest
4 голосов
/ 21 января 2009

Работа в интрасети, где у нас есть около 20 различных веб-приложений - некоторые .net, некоторые классические asp.

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

Я пытаюсь настроить структуру, которая позволит нам использовать преимущества функций VS2008, но при этом иметь возможность обновлять одно приложение, не затрагивая другие, при этом все еще используя такие функции, как главные страницы и ресурсы локализации, а также общий сеанс между приложениями (поэтому мы не можем создавать виртуальные каталоги для каждого приложения).

Если я настрою одно решение, которое выглядит следующим образом:

/Root
 - App_GlobalResources/
 - shared
   -- masterpages/
   -- css/
 - App1/
 - App2/
...
 - AppN/
..
 - ClassicASP1/

тогда проблема в том, что при сборке создается только одна DLL (Root.dll) - она ​​просто не будет масштабироваться до 20+ приложений, каждый из которых имеет разные циклы разработки.

Возможно ли (с помощью nant или другого инструмента для сборки) создать несколько DLL? В этом случае я бы хотел получить Root.dll (содержит как минимум глобальные ресурсы), App1.dll и App2.dll.

Любые другие предложения или ссылки, на которые я должен смотреть?

Ответы [ 3 ]

1 голос
/ 21 января 2009

Я не уверен, что вы можете делать то, что хотите, к сожалению. VS имеет тенденцию создавать одну DLL для каждого уникального проекта (а не решения), и кажется, что у вас есть только один проект, поэтому одна DLL.

Я бы предложил вам сохранить один проект (csproj) для каждого приложения, но использовать NANT, чтобы собрать их все (т.е. по одному, вместе, по порядку) и упаковать их все для развертывания. Таким образом, вы можете выполнить развертывание в одной точке, но при этом приложения будут работать отдельно.

Я удивлен, что вы не можете использовать мастер-страницы в подпапках. Вам нужно будет реплицировать их для каждой папки AppN, но, опять же, NANT может использоваться для извлечения их из общего места при создании пакета развертывания.

Написание сценария сборки и развертывания занимает некоторое время, чтобы разобраться, но я обнаружил, что, как только это будет сделано, он окупится очень быстро - даже если единственным платежом будет ваше здравомыслие!

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

Я бы посоветовал использовать MSBuild вместо Nant. Это больше родной для визуальной студии.

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

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

-Edoode

...