Каков наилучший способ управления библиотеками dll?

#.net #dll

#.net #dll

Вопрос:

У меня возникают трудности с управлением всеми библиотеками DLL, используемыми в разных проектах. у нас в компании запущено около 15 различных приложений, и они указывают на разные библиотеки.

Сейчас мы конвертируем все эти asp.net приложения библиотеки для .NET 4.0 и, возможно, переписывание некоторых библиотек с помощью Entity Framework.

Мне интересно, каков наилучший способ организации этих библиотек?

  1. Должны ли мы создать одно решение, разделить библиотеки по категориям в разные проекты и добавить эти проекты в одно решение?

  2. Должны ли мы создать один проект и распределить библиотеки по разным папкам и собрать как одну библиотеку?

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

Ответ №1:

Для всех библиотек, которые совместно используются несколькими приложениями:

  • Сгруппируйте связанные библиотеки вместе в собственном решении. Это означает, что вы получите одно или несколько решений только для библиотек.

  • Затем используйте собственный nuget размещенный сервис для обработки зависимостей. Поступая таким образом, вы можете легко управлять зависимостями в своих приложениях. Это просто вопрос вызова «update-package» в консоли диспетчера пакетов.

Используя nuget, вы также можете включать шаблоны и тому подобное, показывающие, как использовать каждую библиотеку, и автоматически изменять app / web.config для добавления необходимых ключей.

Комментарии:

1. Это то, что я сделал в компании, где я работаю, и это отличное решение для беспорядка в папке «lib».

2. Спасибо за ваш совет, мы определенно изучаем его. Но самая большая проблема, с которой я сталкиваюсь, связана с моим коллегой, который хочет создать одну большую библиотеку, в которую были бы добавлены все библиотеки. поэтому, когда мы создаем любое новое приложение, нам просто нужно указать на одну dll, а не на конкретные библиотеки.

Ответ №2:

Я удивлен, что слово «Пространство имен» не появилось в вашем вопросе, потому что это один из хороших способов навести порядок в вашем коде, если у вас есть большое количество Class / enum / modules / … Лично я использую пространства имен (и иногда я их вкладываю), что позволяет мне избежать некоторых проблем с конфликтом имен, а также позволяет более удобно использовать intellisense.

Комментарии:

1. Пространства имен, вероятно, не придумывались, поскольку это фундаментальная вещь, которую используют все.

2. вы имеете в виду, точно так же, как «использование размещенной службы» или «группирование в решении»? Да, совершенно верно.