Лучшая практика хотел бы предложить вам не.
Каждое приложение отличается, рассматривайте их как таковые. При совместном использовании ресурсов вы создаете неявную зависимость между проектами - если вы меняете общий ресурс, который вы меняете для всех - независимо от того, было ли это предназначено или нет.
Если вы действительно должны делиться ресурсами, делайте это на уровне управления версиями или сборок - гораздо проще нарушить зависимость на этом уровне, чем разбить зависимость после развертывания на рабочем сервере.
Xanadont, разделяя общие библиотеки и т.д. прекрасно (это, по сути, что проекты с открытым исходным кодом, как NHibernate делать), но делает это на уровне папок совместного использования бункера на сервере создает больше проблем, чем решает , О типах повторного использования, о которых вы говорите, лучше всего подходят для создания разделяемых библиотек, которые являются независимыми проектами в исходном управлении с поддерживаемыми двоичными версиями. Проекты, желающие использовать разделяемые библиотеки, затем принимают двоичную зависимость в общей библиотеке, копируя двоичный файл в папку lib из дерева исходных решений и ссылаясь на этот двоичный файл. Это позволяет поддерживать и обновлять общие библиотеки, не вызывая побочных эффектов из-за прямых зависимостей от них, а решения, которые используют библиотеки, могут оценивать исправления/обновления, чтобы определить, как они повлияют на код, который зависит от них, и если обновление стоит.
Скотт, что вы имеете в виду это 1 приложение с изменениями в представлении слоя (шаблоны), не 50 приложений с изменениями в бизнес-логики. Наилучший подход для такого типа приложений - многопользовательский (поскольку я предполагаю, что у вас есть 1 база данных для каждого города), и используйте URL-адрес для определения контекста, из которого вы можете получить доступ к своей базе данных и решить свои пути просмотра (трудно описать лучший подход, не лучше понимающий вашу архитектуру приложения).
Изменение вида на основе URL-адреса может быть выполнено путем реализации механизма просмотра контекстно-зависимых данных (см. http://www.coderjournal.com/2009/05/creating-your-first-mvc-viewengine/ для примера того, как это сделать.
При таком подходе у вас есть только 1 место, которое вам нужно обновить с помощью исправлений, но вы можете легко создать новый «сайт» для другого города, просто добавив новый набор шаблонов и (в зависимости от того, как вы установите маршрутизацию вверх), указав новый домен на своем сайте. Если у вас есть набор шаблонов по умолчанию, ваш механизм просмотра может даже вернуться к ним, если настройки не существуют, поэтому вы можете настроить новый сайт, просто указав новый домен в своем приложении.
Пожалуйста, не задавайте тот же вопрос снова, потому что вы не получили ответ, который вам нужен: http://stackoverflow.com/questions/1155655/asp-net-deployment-how-to-share-bin- по-множественных WebAPP-проектов. –