Что лучший способ состоит в том, чтобы сделать совместно использованные библиотеки доступными для нескольких приложений?

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

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

Некоторые наши мысли были:

  1. Компиляция классы в единственный DLL и загрузку это в Глобальный кэш сборок (GAC)
  2. Компиляция классы в единственный DLL и сохраняют его к расположенному в центре общему диску, на который будут ссылаться все другие проекты
  3. Компиляция классы в единственный DLL и будет включать, это в каждом проекте
  4. Просто выбирает новые классы при запуске проекта, но не имеет центральной общей библиотеки (наша интерпретация этого: http://www.yosefk.com/blog/redundancy-vs-dependencies-which-is-worse.html )
  5. Внешний облик SVN http://svnbook.red-bean.com/en/1.0/ch07s03.html

я знаю, что это - типичная проблема, и если вы проводите какое-либо время, изучая их или другие опции, вы неизменно находите людей, объясняющих ловушки каждого метода (управление версиями, регрессионное тестирование, "Ад DLL", "GAC сосет", и т.д.). Я могу едва найти любого говорящего о какой РАБОТЫ и почему. Существует ли предпочтительный метод?

10
задан kscott 2 September 2011 в 15:24
поделиться