#.net #dll
#.net #dll
Вопрос:
У меня возникают трудности с управлением всеми библиотеками DLL, используемыми в разных проектах. у нас в компании запущено около 15 различных приложений, и они указывают на разные библиотеки.
Сейчас мы конвертируем все эти asp.net приложения библиотеки для .NET 4.0 и, возможно, переписывание некоторых библиотек с помощью Entity Framework.
Мне интересно, каков наилучший способ организации этих библиотек?
-
Должны ли мы создать одно решение, разделить библиотеки по категориям в разные проекты и добавить эти проекты в одно решение?
-
Должны ли мы создать один проект и распределить библиотеки по разным папкам и собрать как одну библиотеку?
если мы используем 2-й подход, будет ли это какой-либо проблемой с производительностью? Какой подход наиболее эффективен с точки зрения производительности?
Ответ №1:
Для всех библиотек, которые совместно используются несколькими приложениями:
-
Сгруппируйте связанные библиотеки вместе в собственном решении. Это означает, что вы получите одно или несколько решений только для библиотек.
-
Затем используйте собственный nuget размещенный сервис для обработки зависимостей. Поступая таким образом, вы можете легко управлять зависимостями в своих приложениях. Это просто вопрос вызова «update-package» в консоли диспетчера пакетов.
Используя nuget, вы также можете включать шаблоны и тому подобное, показывающие, как использовать каждую библиотеку, и автоматически изменять app / web.config для добавления необходимых ключей.
Комментарии:
1. Это то, что я сделал в компании, где я работаю, и это отличное решение для беспорядка в папке «lib».
2. Спасибо за ваш совет, мы определенно изучаем его. Но самая большая проблема, с которой я сталкиваюсь, связана с моим коллегой, который хочет создать одну большую библиотеку, в которую были бы добавлены все библиотеки. поэтому, когда мы создаем любое новое приложение, нам просто нужно указать на одну dll, а не на конкретные библиотеки.
Ответ №2:
Я удивлен, что слово «Пространство имен» не появилось в вашем вопросе, потому что это один из хороших способов навести порядок в вашем коде, если у вас есть большое количество Class / enum / modules / … Лично я использую пространства имен (и иногда я их вкладываю), что позволяет мне избежать некоторых проблем с конфликтом имен, а также позволяет более удобно использовать intellisense.
Комментарии:
1. Пространства имен, вероятно, не придумывались, поскольку это фундаментальная вещь, которую используют все.
2. вы имеете в виду, точно так же, как «использование размещенной службы» или «группирование в решении»? Да, совершенно верно.